editor.js/build/codex-editor.js.map
2018-11-11 01:27:51 +03:00

1 line
791 KiB
XML

{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@babel/polyfill/lib/index.js","webpack://CodexEditor/./node_modules/@babel/register/lib/browser.js","webpack://CodexEditor/./node_modules/@babel/register/lib/index.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/inherits.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/@babel/runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/codex-notifier/dist/bundle.js","webpack://CodexEditor/./node_modules/core-js/es6/index.js","webpack://CodexEditor/./node_modules/core-js/fn/array/includes.js","webpack://CodexEditor/./node_modules/core-js/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/fn/object/values.js","webpack://CodexEditor/./node_modules/core-js/fn/promise/finally.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-end.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-start.js","webpack://CodexEditor/./node_modules/core-js/fn/symbol/async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-number-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-fill.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_bind.js","webpack://CodexEditor/./node_modules/core-js/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-weak.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails-is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/modules/_fix-re-wks.js","webpack://CodexEditor/./node_modules/core-js/modules/_flags.js","webpack://CodexEditor/./node_modules/core-js/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_inherit-if-required.js","webpack://CodexEditor/./node_modules/core-js/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-fround.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-sign.js","webpack://CodexEditor/./node_modules/core-js/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_strict-method.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-context.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-html.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-pad.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-trim.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-ws.js","webpack://CodexEditor/./node_modules/core-js/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed.js","webpack://CodexEditor/./node_modules/core-js/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.every.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.fill.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.filter.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find-index.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.for-each.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.join.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.last-index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.slice.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.some.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.sort.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.species.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.now.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.bind.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.has-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.name.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.acosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.asinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.atanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.clz32.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.fround.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.hypot.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.imul.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log10.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log2.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.tanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.trunc.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.epsilon.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-nan.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-precision.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-properties.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.freeze.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-frozen.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-sealed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.seal.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.has.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.flags.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.match.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.search.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.split.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.anchor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.big.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.blink.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.bold.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.code-point-at.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.ends-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontcolor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontsize.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.from-code-point.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.italics.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.link.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.raw.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.small.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.starts-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.strike.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sub.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sup.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.trim.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.data-view.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float64-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-set.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-end.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-start.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/web.dom.iterable.js","webpack://CodexEditor/./node_modules/core-js/modules/web.immediate.js","webpack://CodexEditor/./node_modules/core-js/modules/web.timers.js","webpack://CodexEditor/./node_modules/core-js/web/index.js","webpack://CodexEditor/./node_modules/css-loader/lib/css-base.js","webpack://CodexEditor/./node_modules/html-janitor/src/html-janitor.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/(webpack)/buildin/global.js","webpack://CodexEditor/./src/codex.js","webpack://CodexEditor/./src/components/__module.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-delete.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-down.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-up.ts","webpack://CodexEditor/./src/components/block.ts","webpack://CodexEditor/./src/components/core.js","webpack://CodexEditor/./src/components/dom.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-bold.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-italic.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-link.ts","webpack://CodexEditor/./src/components/modules sync nonrecursive [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$","webpack://CodexEditor/./src/components/modules/api-blocks.ts","webpack://CodexEditor/./src/components/modules/api-caret.ts","webpack://CodexEditor/./src/components/modules/api-events.ts","webpack://CodexEditor/./src/components/modules/api-listener.ts","webpack://CodexEditor/./src/components/modules/api-notifier.ts","webpack://CodexEditor/./src/components/modules/api-sanitizer.ts","webpack://CodexEditor/./src/components/modules/api-saver.ts","webpack://CodexEditor/./src/components/modules/api-selection.ts","webpack://CodexEditor/./src/components/modules/api-styles.ts","webpack://CodexEditor/./src/components/modules/api-toolbar.ts","webpack://CodexEditor/./src/components/modules/api.ts","webpack://CodexEditor/./src/components/modules/block-events.ts","webpack://CodexEditor/./src/components/modules/blockManager.js","webpack://CodexEditor/./src/components/modules/caret.js","webpack://CodexEditor/./src/components/modules/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.js","webpack://CodexEditor/./src/components/modules/listeners.js","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","webpack://CodexEditor/./src/components/modules/notifier.ts","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.js","webpack://CodexEditor/./src/components/modules/sanitizer.ts","webpack://CodexEditor/./src/components/modules/saver.ts","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar-blockSettings.js","webpack://CodexEditor/./src/components/modules/toolbar-inline.ts","webpack://CodexEditor/./src/components/modules/toolbar-toolbox.js","webpack://CodexEditor/./src/components/modules/toolbar.js","webpack://CodexEditor/./src/components/modules/tools.js","webpack://CodexEditor/./src/components/modules/ui.js","webpack://CodexEditor/./src/components/polyfills.ts","webpack://CodexEditor/./src/components/selection.ts","webpack://CodexEditor/./src/components/tools/paragraph/dist/bundle.js","webpack://CodexEditor/./src/components/utils.ts","webpack://CodexEditor/./src/styles/main.css"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","_babelPolyfill","console","warn","default","revert","args","register","node","assign","arr","Array","isArray","arr2","length","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","obj","iter","iterator","toString","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof2","g","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","e","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","result","keys","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","BACKSPACE","ENTER","ESCAPE","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","u","CMD","SHIFT","ALT","commands","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","show","message","getWrapper","document","body","appendChild","time","confirm","prompt","alert","setTimeout","remove","classList","add","hmr","transform","insertInto","locals","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","concat","join","all","atob","querySelector","HTMLIFrameElement","contentDocument","head","f","id","refs","parts","x","base","css","media","sourceMap","insertAt","nextSibling","insertBefore","firstChild","before","parentNode","removeChild","splice","b","createElement","attrs","setAttribute","singleton","h","URL","createObjectURL","revokeObjectURL","Blob","rel","convertToAbsoluteUrls","href","styleSheet","cssText","createTextNode","DEBUG","y","filter","Boolean","childNodes","location","protocol","host","pathname","replace","trim","test","style","innerHTML","cancelHandler","okHandler","okText","cancelText","placeholder","inputType","entries","getOwnPropertyDescriptors","String","padEnd","padStart","it","cof","msg","UNSCOPABLES","ArrayProto","forbiddenField","isObject","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","end","count","Math","min","inc","aLen","index","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","aFunction","memo","isRight","SPECIES","original","speciesConstructor","arraySlice","factories","partArgs","bound","construct","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","core","version","__e","$defineProperty","createDesc","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toPrimitive","hint","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","MATCH","re","exec","defined","wks","SYMBOL","fns","strfn","rxfn","RegExp","string","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","ITERATOR","iterFn","__g","documentElement","un","propertyIsEnumerable","Iterators","floor","isRegExp","ret","LIBRARY","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","isNode","last","notify","flush","parent","domain","exit","enter","nextTick","navigator","standalone","promise","toggle","observe","characterData","task","$$resolve","$$reject","$assign","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","str","$parseInt","parseInt","ws","hex","radix","newPromiseCapability","promiseCapability","bitmap","SRC","$toString","TPL","inspectSource","isFunction","check","buggy","tag","stat","shared","uid","copyright","toInteger","TO_STRING","pos","charCodeAt","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","max","number","valueOf","$typed","$buffer","propertyDesc","toIndex","classof","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","setProto","existingDescriptor","ownDesc","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","$at","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","$isView","isView","fin","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","getDesc","$values","finally","onFinally","$pad","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$task","MSIE","boundArgs","setInterval","useSourceMap","item","content","cssMapping","sourceMapping","toComment","sourceURLs","cssWithMappingToString","mediaQuery","alreadyImportedModules","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","HTMLJanitor","config","tagDefinitions","tags","validConfigValues","blockElementNames","isBlockElement","nodeName","inlineElementNames","isInlineElement","getAllowedAttrs","shouldRejectNode","allowedAttrs","shouldRejectAttr","attr","attrName","clean","sandbox","implementation","createHTMLDocument","_sanitize","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","removeAttribute","previousElementSibling","nextElementSibling","eval","require","CodexEditor","configuration","_this","_classCallCheck2","onReady","editor","Core","isReady","exportAPI","VERSION","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","$","make","svg","handleClick","needConfirmation","events","off","blocks","stopPropagation","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","nextBlockElement","getBlockByIndex","holder","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","scrollUpOffset","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","compose","tunes","makeTunes","methodName","params","merge","save","pluginsContent","extractedBlock","measuringStart","performance","finishedExtraction","measuringEnd","_utils","isValid","_this3","tunesList","_blockTuneMoveUp","_blockTuneDelete","_blockTuneMoveDown","tune","tunesElement","createDocumentFragment","_dom","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","sanitize","contentless","emptyText","isEmpty","emptyMedia","hasMedia","selected","wrapperStretched","dropTarget","editorModules","onFail","_","holderId","tools","constructModules","configureModules","getModulesDiff","diff","moduleName","modulesToPrepare","_asyncToGenerator2","_regenerator","_callee","_context","prepare","t0","Renderer","initialBlock","initialBlockData","sanitizer","hideToolbar","onChange","Dom","tagName","_el$classList","classNames","_toConsumableArray2","width","height","icon","createElementNS","elements","prepend","el1","el2","temp","getElementById","atLast","child","sibling","ELEMENT_NODE","nodeChild","isSingleTag","isNativeInput","getDeepestNode","DOCUMENT_FRAGMENT_NODE","isElement","textContent","leafs","isNodeEmpty","shift","isLeaf","leaf","childElementCount","BoldInlineTool","commandName","buttonActive","buttonModifier","range","execCommand","selection","isActive","queryCommandState","ItalicInlineTool","LinkInlineTool","commandLink","commandUnlink","ENTER_KEY","buttonUnlink","inputShowed","inputOpened","inlineToolbar","toolbar","_selection","enterPressed","parentAnchor","findParentTag","expandToTag","unlink","closeActions","checkState","toggleActions","anchorTag","openActions","hrefAttr","getAttribute","needFocus","focus","clearSavedSelection","clearSaved","restore","preventDefault","validateURL","prepareLink","insertLink","stopImmediatePropagation","link","addProtocol","isInternal","isAnchor","substring","isProtocolRelative","./api-blocks.ts","./api-caret.ts","./api-events.ts","./api-listener.ts","./api-notifier.ts","./api-sanitizer.ts","./api-saver.ts","./api-selection.ts","./api-styles.ts","./api-toolbar.ts","./api.ts","./block-events.ts","./blockManager.js","./caret.js","./dragNDrop.ts","./events.js","./listeners.js","./modificationsObserver.ts","./notifier.ts","./paste.ts","./renderer.js","./sanitizer.ts","./saver.ts","./shortcuts.ts","./toolbar-blockSettings.js","./toolbar-inline.ts","./toolbar-toolbox.js","./toolbar.js","./tools.js","./ui.js","webpackContext","req","webpackContextResolve","BlocksAPI","_possibleConstructorReturn2","_getPrototypeOf2","BlockManager","Toolbar","move","blockIndex","removeBlock","insert","Caret","setToBlock","currentBlock","navigatePrevious","status","block","stretched","newBlock","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","ListenerAPI","eventType","useCapture","NotifierAPI","options","Notifier","SanitizerAPI","taintString","Sanitizer","SaverAPI","Saver","SelectionAPI","className","StylesAPI","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","ToolbarAPI","caret","notifier","saver","styles","classes","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","defaultHandler","clearHighlightings","needToolbarClosing","InlineToolbar","handleShowingEvent","direction","opened","Toolbox","plusButton","getBlockByChildNode","Tools","toolsAvailable","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","isInitial","BM","isFirstBlock","canMergeBlocks","isAtStart","targetBlock","blockToMerge","mergeable","createShadow","mergeBlocks","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","Blocks","redactor","Proxy","available","bindEvents","keydown","mouseUp","keyup","dragOver","dragLeave","newIndex","composeBlock","_this4","blockToMergeIndex","blockToMergeInfo","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","isLastBlock","nextBlocks","previousBlocks","workingArea","second","secondBlock","deleteCount","previousBlock","insertAdjacentElement","nextBlock","children","position","positions","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","createRange","Selection","selectionStart","selectionEnd","setStart","setEnd","removeAllRanges","addRange","_range$getBoundingCli","bottom","_window","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","current","siblings","contentEditable","force","_this$Editor$BlockMan","nextContentfulBlock","nextInput","isAtEnd","_this$Editor$BlockMan2","previousContentfulBlock","_ref2","previousInput","shadowCaret","sel","newRange","selectNode","isCollapsed","anchorNode","firstNode","firstLetterPosition","leftSiblings","getHigherLevelSiblings","nothingAtLeft","anchorOffset","lastNode","nothingAtRight","rightTrimmedText","DragNDrop","isStartedAtEditor","processDrop","dropEvent","_this$Editor","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","alreadyExist","findOne","existingListeners","findAll","listenersOnElement","listenersWithType","listenersWithHandler","foundListeners","foundByElements","findByElement","mutationDebouncer","debounce","DebounceTimer","setObserver","_codexNotifier","_module","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref3","_slicedToArray2","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref4","_assertThisInitialize","_assertThisInitialize2","_assertThisInitialized2","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","items","plainData","getData","htmlData","customConfig","getAllInlineToolsConfig","cleanData","isHTMLString","processText","blockTools","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref5","_ref6","pattern","getBlock","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref7","_ref8","_ref8$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref9","_callee6","_context6","_this5","insertBlock","_x6","_x7","_caret","_this6","_this$Editor3","initialTool","getNodes","_Tools$blockTools$too","toolTags","getInlineToolsConfig","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","sanitizeConfig","composeToolConfig","deepSanitize","insertedBlock","currentToolSanitizeConfig","substitute","execResult","canReplaceCurrentBlock","_this$Editor6","_this7","reducer","destNode","DocumentFragment","isFragment","_ref10","_ref10$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref11","containsBlockElements","_ref12","chainData","_loop","function","sequence","configCache","inlineToolsConfigCache","blocksData","toolConfig","dataToSanitize","rules","cleanArray","cleanObject","cleanOneItem","sanitizerConfig","sanitizerInstance","createHTMLJanitorInstance","sanitizeGetter","SANITIZE_CONFIG","baseConfig","toolRules","fieldName","rule","toolsConfig","getToolSettings","enableInlineTools","inlineToolName","inline","inlineTool","ruleForItem","arrayItem","currentIterationItem","isRule","_htmlJanitor","extractedData","sanitizeBlocks","allExtractedData","makeOutput","outputData","totalTime","groupCollapsed","extraction","groupEnd","Shortcuts","registeredShortcuts","shortcut","newShortcut","_shortcuts","BlockSettings","toolSettings","defaultSettings","renderSettings","renderTunes","wrapperOpened","addToolSettings","addDefaultSettings","closed","inlineToolbarShowed","buttonsWrapper","actionsWrapper","inlineToolButtonLast","buttons","actions","toolbarVerticalMargin","addTools","allowedToShow","checkToolsState","selectionRect","rect","wrapperOffset","newCoords","filterTools","currentSelection","selectedText","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","IS_INLINE","inlineTools","SHORTCUT","enableShortcuts","surround","toolsInstances","allTools","Map","constructInline","toolbox","activeButtonIndex","displayedToolsCount","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","forceClose","contentOffset","offsetTop","toolbarOpened","settingsTogglerClicked","plusButtonHidden","Paragraph","toolsSettings","toolsUnavailable","_inlineTools","sequenceData","getListOfPrepareFunctions","success","fallback","toolPreparationList","CONFIG","plugin","constructorOptions","notImplementedMethods","IS_CONTENTLESS","IS_PASTE_DISALLOWED","bold","italic","paragraph","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","keyDownOnEditor","hasPointerToBlock","highlightCurrentNode","clickedOnInlineToolbarButton","clickedInsideofEditor","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","getSelection","searchDepth","parentTag","focusNode","boundNodes","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","br","Util","chains","waitNextBlock","_callee2","successCallback","fallbackCallback","_context2","previousValue","currentValue","_x5","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","CTRL","ESC","SPACE"],"mappings":"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","file":"codex-editor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CodexEditor\"] = factory();\n\telse\n\t\troot[\"CodexEditor\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\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\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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<symbol id=\\\"arrow-down\\\" viewBox=\\\"0 0 14 14\\\">\\n <path transform=\\\"matrix(1 0 0 -1 0 14)\\\" d=\\\"M8.024 4.1v8.6a1.125 1.125 0 0 1-2.25 0V4.1L2.18 7.695A1.125 1.125 0 1 1 .59 6.104L6.103.588c.44-.439 1.151-.439 1.59 0l5.516 5.516a1.125 1.125 0 0 1-1.59 1.59L8.023 4.1z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"arrow-up\\\" viewBox=\\\"0 0 14 14\\\">\\n <path d=\\\"M8.024 4.1v8.6a1.125 1.125 0 0 1-2.25 0V4.1L2.18 7.695A1.125 1.125 0 1 1 .59 6.104L6.103.588c.44-.439 1.151-.439 1.59 0l5.516 5.516a1.125 1.125 0 0 1-1.59 1.59L8.023 4.1z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"bold\\\" viewBox=\\\"0 0 13 15\\\">\\n <path d=\\\"M5.996 13.9H1.752c-.613 0-1.05-.137-1.312-.412-.262-.275-.393-.712-.393-1.312V1.737C.047 1.125.18.684.449.416.718.147 1.152.013 1.752.013h4.5a10.5 10.5 0 0 1 1.723.123c.487.082.922.24 1.308.474a3.43 3.43 0 0 1 1.449 1.738c.132.363.199.747.199 1.151 0 1.39-.695 2.406-2.084 3.05 1.825.581 2.737 1.712 2.737 3.391 0 .777-.199 1.477-.596 2.099a3.581 3.581 0 0 1-1.61 1.378c-.424.177-.91.301-1.46.374-.549.073-1.19.109-1.922.109zm-.209-6.167H2.86v4.055h3.022c1.9 0 2.851-.686 2.851-2.056 0-.7-.246-1.21-.739-1.525-.492-.316-1.228-.474-2.207-.474zM2.86 2.125v3.59h2.577c.7 0 1.242-.066 1.624-.198a1.55 1.55 0 0 0 .876-.758c.158-.265.237-.562.237-.89 0-.702-.25-1.167-.748-1.398-.499-.23-1.26-.346-2.283-.346H2.86z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"cross\\\" viewBox=\\\"0 0 237 237\\\">\\n <path transform=\\\"rotate(45 280.675 51.325)\\\" d=\\\"M191 191V73c0-5.523 4.477-10 10-10h25c5.523 0 10 4.477 10 10v118h118c5.523 0 10 4.477 10 10v25c0 5.523-4.477 10-10 10H236v118c0 5.523-4.477 10-10 10h-25c-5.523 0-10-4.477-10-10V236H73c-5.523 0-10-4.477-10-10v-25c0-5.523 4.477-10 10-10h118z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"dots\\\" viewBox=\\\"0 0 18 4\\\">\\n <g fill-rule=\\\"evenodd\\\">\\n <circle cx=\\\"9\\\" cy=\\\"2\\\" r=\\\"2\\\"/>\\n <circle cx=\\\"2\\\" cy=\\\"2\\\" r=\\\"2\\\"/>\\n <circle cx=\\\"16\\\" cy=\\\"2\\\" r=\\\"2\\\"/>\\n </g>\\n\\n</symbol>\\n<symbol id=\\\"italic\\\" viewBox=\\\"0 0 6 15\\\">\\n <path d=\\\"M4 5.2l-1.368 7.474c-.095.518-.29.91-.585 1.175a1.468 1.468 0 0 1-1.01.398c-.379 0-.662-.136-.85-.407-.186-.272-.234-.66-.141-1.166L1.4 5.276c.093-.511.282-.896.567-1.155a1.43 1.43 0 0 1 .994-.389c.38 0 .668.13.867.389.199.259.256.618.172 1.08zm-.79-2.67c-.36 0-.648-.111-.863-.332-.215-.221-.286-.534-.212-.938.067-.366.253-.668.559-.905A1.57 1.57 0 0 1 3.673 0c.334 0 .612.107.831.322.22.215.292.527.217.938-.073.398-.256.709-.55.933a1.55 1.55 0 0 1-.961.336z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"link\\\" viewBox=\\\"0 0 15 14\\\">\\n <path transform=\\\"rotate(-45 11.83 6.678)\\\" d=\\\"M11.332 4.013a51.07 51.07 0 0 1-2.28.001A1.402 1.402 0 0 0 7.7 2.25H3.65a1.4 1.4 0 1 0 0 2.8h.848c.206.86.693 1.61 1.463 2.25H3.65a3.65 3.65 0 1 1 0-7.3H7.7a3.65 3.65 0 0 1 3.632 4.013zM10.9 0h2a3.65 3.65 0 0 1 0 7.3H8.85a3.65 3.65 0 0 1-3.632-4.011A62.68 62.68 0 0 1 7.5 3.273 1.401 1.401 0 0 0 8.85 5.05h4.05a1.4 1.4 0 0 0 0-2.8h-.48C12.274 1.664 11.694.785 10.9 0z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"plus\\\" viewBox=\\\"0 0 14 14\\\">\\n <path d=\\\"M8.05 5.8h4.625a1.125 1.125 0 0 1 0 2.25H8.05v4.625a1.125 1.125 0 0 1-2.25 0V8.05H1.125a1.125 1.125 0 0 1 0-2.25H5.8V1.125a1.125 1.125 0 0 1 2.25 0V5.8z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"unlink\\\" viewBox=\\\"0 0 16 18\\\">\\n <path transform=\\\"rotate(-45 8.358 11.636)\\\" d=\\\"M9.14 9.433c.008-.12-.087-.686-.112-.81a1.4 1.4 0 0 0-1.64-1.106l-3.977.772a1.4 1.4 0 0 0 .535 2.749l.935-.162s.019 1.093.592 2.223l-1.098.148A3.65 3.65 0 1 1 2.982 6.08l3.976-.773c1.979-.385 3.838.919 4.28 2.886.51 2.276-1.084 2.816-1.073 2.935.011.12-.394-1.59-1.026-1.696zm3.563-.875l2.105 3.439a3.65 3.65 0 0 1-6.19 3.868L6.47 12.431c-1.068-1.71-.964-2.295-.49-3.07.067-.107 1.16-1.466 1.48-.936-.12.036.9 1.33.789 1.398-.656.41-.28.76.13 1.415l2.145 3.435a1.4 1.4 0 0 0 2.375-1.484l-1.132-1.941c.42-.435 1.237-1.054.935-2.69zm1.88-2.256h3.4a1.125 1.125 0 0 1 0 2.25h-3.4a1.125 1.125 0 0 1 0-2.25zM11.849.038c.62 0 1.125.503 1.125 1.125v3.4a1.125 1.125 0 0 1-2.25 0v-3.4c0-.622.503-1.125 1.125-1.125z\\\"/>\\n\\n</symbol></svg>\"","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-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\nif (global._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\nglobal._babelPolyfill = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = register;\nexports.revert = revert;\n\nfunction register() {}\n\nfunction revert() {}","exports = module.exports = function (...args) {\n return register(...args);\n};\n\nexports.__esModule = true;\n\nconst node = require(\"./node\");\n\nconst register = node.default;\nObject.assign(exports, node);","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\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 var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\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 runtime.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 runtime.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 runtime.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 runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\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 Promise.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 Promise.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 Promise(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 runtime.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 runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.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 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 runtime.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 runtime.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 // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Library for handling keyboard shortcuts\n * @copyright undefined\n * @license MIT\n * @author CodeX (https://ifmo.su)\n * @version 1.0.0\n */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i={0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,BACKSPACE:8,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DELETE:46},u={CMD:[\"CMD\",\"CONTROL\",\"COMMAND\",\"WINDOWS\",\"CTRL\"],SHIFT:[\"SHIFT\"],ALT:[\"ALT\",\"OPTION\"]},c=function(){function e(t){var n=this;r(this,e),this.commands={},this.keys={},this.parseShortcutName(t.name),this.element=t.on,this.callback=t.callback,this.executeShortcut=function(e){n.execute(e)},this.element.addEventListener(\"keydown\",this.executeShortcut,!1)}return o(e,[{key:\"parseShortcutName\",value:function(e){e=e.split(\"+\");for(var t=0;t<e.length;t++)if(e[t]=e[t].toUpperCase(),e[t].length>1)for(var n in u)u[n].includes(e[t])&&(this.commands[n]=!0);else this.keys[e[t]]=!0}},{key:\"execute\",value:function(e){var t=e.ctrlKey||e.metaKey,n=e.shiftKey,r=e.altKey,o={CMD:t,SHIFT:n,ALT:r},u=void 0,c=!0;for(u in this.commands)c=c&&o[u];var a=void 0,s=!0;for(a in this.keys)s=s&&e.keyCode===i[a];c&&s&&this.callback(e)}},{key:\"remove\",value:function(){this.element.removeEventListener(\"keydown\",this.executeShortcut)}}]),e}();t.default=c}])});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.notifier=e():t.notifier=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";n(1),\n/*!\n * Codex JavaScript Notification module\n * https://github.com/codex-team/js-notifier\n */\nt.exports=function(){var t=n(6),e=\"cdx-notify--bounce-in\",r=null;return{show:function(n){if(n.message){!function(){if(r)return!0;r=t.getWrapper(),document.body.appendChild(r)}();var o=null,i=n.time||8e3;switch(n.type){case\"confirm\":o=t.confirm(n);break;case\"prompt\":o=t.prompt(n);break;default:o=t.alert(n),window.setTimeout(function(){o.remove()},i)}r.appendChild(o),o.classList.add(e)}}}}()},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,'.cdx-notify--error{background:#fffbfb!important}.cdx-notify--error::before{background:#fb5d5d!important}.cdx-notify__input{max-width:130px;padding:5px 10px;background:#f7f7f7;border:0;border-radius:3px;font-size:13px;color:#656b7c;outline:0}.cdx-notify__input:-ms-input-placeholder{color:#656b7c}.cdx-notify__input::placeholder{color:#656b7c}.cdx-notify__input:focus:-ms-input-placeholder{color:rgba(101,107,124,.3)}.cdx-notify__input:focus::placeholder{color:rgba(101,107,124,.3)}.cdx-notify__button{border:none;border-radius:3px;font-size:13px;padding:5px 10px;cursor:pointer}.cdx-notify__button:last-child{margin-left:10px}.cdx-notify__button--cancel{background:#f2f5f7;box-shadow:0 2px 1px 0 rgba(16,19,29,0);color:#656b7c}.cdx-notify__button--cancel:hover{background:#eee}.cdx-notify__button--confirm{background:#34c992;box-shadow:0 1px 1px 0 rgba(18,49,35,.05);color:#fff}.cdx-notify__button--confirm:hover{background:#33b082}.cdx-notify__btns-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-top:5px}.cdx-notify__cross{position:absolute;top:5px;right:5px;width:10px;height:10px;padding:5px;opacity:.54;cursor:pointer}.cdx-notify__cross::after,.cdx-notify__cross::before{content:\\'\\';position:absolute;left:9px;top:5px;height:12px;width:2px;background:#575d67}.cdx-notify__cross::before{transform:rotate(-45deg)}.cdx-notify__cross::after{transform:rotate(45deg)}.cdx-notify__cross:hover{opacity:1}.cdx-notifies{position:fixed;z-index:2;bottom:20px;left:20px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif}.cdx-notify{position:relative;width:220px;margin-top:15px;padding:13px 16px;background:#fff;box-shadow:0 11px 17px 0 rgba(23,32,61,.13);border-radius:5px;font-size:14px;line-height:1.4em;word-wrap:break-word}.cdx-notify::before{content:\\'\\';position:absolute;display:block;top:0;left:0;width:3px;height:calc(100% - 6px);margin:3px;border-radius:5px;background:0 0}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.cdx-notify--bounce-in{animation-name:bounceIn;animation-duration:.6s;animation-iteration-count:1}.cdx-notify--success{background:#fafffe!important}.cdx-notify--success::before{background:#41ffb1!important}',\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];\"number\"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];\"number\"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),e.push(a))}},e}},function(t,e,n){var r={},o=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),i=function(t){var e={};return function(t){if(\"function\"==typeof t)return t();if(void 0===e[t]){var n=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),a=null,c=0,s=[],f=n(5);function d(t,e){for(var n=0;n<t.length;n++){var o=t[n],i=r[o.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](o.parts[a]);for(;a<o.parts.length;a++)i.parts.push(x(o.parts[a],e))}else{var c=[];for(a=0;a<o.parts.length;a++)c.push(x(o.parts[a],e));r[o.id]={id:o.id,refs:1,parts:c}}}}function u(t,e){for(var n=[],r={},o=0;o<t.length;o++){var i=t[o],a=e.base?i[0]+e.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(c):n.push(r[a]={id:a,parts:[c]})}return n}function l(t,e){var n=i(t.insertInto);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var r=s[s.length-1];if(\"top\"===t.insertAt)r?r.nextSibling?n.insertBefore(e,r.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),s.push(e);else if(\"bottom\"===t.insertAt)n.appendChild(e);else{if(\"object\"!=typeof t.insertAt||!t.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var o=i(t.insertInto+\" \"+t.insertAt.before);n.insertBefore(e,o)}}function p(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=s.indexOf(t);e>=0&&s.splice(e,1)}function b(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(e,t.attrs),l(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function x(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var s=c++;n=a||(a=b(e)),r=h.bind(null,n,s,!1),o=h.bind(null,n,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(e,t.attrs),l(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),c=t.href;t.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,e),o=function(){p(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){p(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=u(t,e);return d(n,e),function(t){for(var o=[],i=0;i<n.length;i++){var a=n[i];(c=r[a.id]).refs--,o.push(c)}t&&d(u(t,e),e);for(i=0;i<o.length;i++){var c;if(0===(c=o[i]).refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete r[c.id]}}}};var y=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join(\"\\n\")}}();function h(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}},function(t,e){t.exports=function(t){var e=\"undefined\"!=typeof window&&window.location;if(!e)throw new Error(\"fixUrls requires window.location\");if(!t||\"string\"!=typeof t)return t;var n=e.protocol+\"//\"+e.host,r=n+e.pathname.replace(/\\/[^\\/]*$/,\"/\");return t.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,function(t,e){var o,i=e.trim().replace(/^\"(.*)\"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(i)?t:(o=0===i.indexOf(\"//\")?i:0===i.indexOf(\"/\")?n+i:r+i.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(o)+\")\")})}},function(t,e,n){\"use strict\";t.exports=function(){var t=\"cdx-notifies\",e=\"cdx-notify\",n=\"cdx-notify__cross\",r=\"cdx-notify__button--confirm\",o=\"cdx-notify__button--cancel\",i=\"cdx-notify__input\",a=\"cdx-notify__button\",c=\"cdx-notify__btns-wrapper\",s=function(t){var r=document.createElement(\"DIV\"),o=document.createElement(\"DIV\"),i=t.message,a=t.style;return r.classList.add(e),a&&r.classList.add(e+\"--\"+a),r.innerHTML=i,o.classList.add(n),o.addEventListener(\"click\",r.remove.bind(r)),r.appendChild(o),r};return{alert:s,confirm:function(t){var e=s(t),i=document.createElement(\"div\"),f=document.createElement(\"button\"),d=document.createElement(\"button\"),u=e.querySelector(\".\"+n),l=t.cancelHandler,p=t.okHandler;return i.classList.add(c),f.innerHTML=t.okText||\"Confirm\",d.innerHTML=t.cancelText||\"Cancel\",f.classList.add(a),d.classList.add(a),f.classList.add(r),d.classList.add(o),l&&\"function\"==typeof l&&(d.addEventListener(\"click\",l),u.addEventListener(\"click\",l)),p&&\"function\"==typeof p&&f.addEventListener(\"click\",p),f.addEventListener(\"click\",e.remove.bind(e)),d.addEventListener(\"click\",e.remove.bind(e)),i.appendChild(f),i.appendChild(d),e.appendChild(i),e},prompt:function(t){var e=s(t),o=document.createElement(\"div\"),f=document.createElement(\"button\"),d=document.createElement(\"input\"),u=e.querySelector(\".\"+n),l=t.cancelHandler,p=t.okHandler;return o.classList.add(c),f.innerHTML=t.okText||\"Ok\",f.classList.add(a),f.classList.add(r),d.classList.add(i),t.placeholder&&d.setAttribute(\"placeholder\",t.placeholder),t.default&&(d.value=t.default),t.inputType&&(d.type=t.inputType),l&&\"function\"==typeof l&&u.addEventListener(\"click\",l),p&&\"function\"==typeof p&&f.addEventListener(\"click\",function(){p(d.value)}),f.addEventListener(\"click\",e.remove.bind(e)),o.appendChild(d),o.appendChild(f),e.appendChild(o),e},getWrapper:function(){var e=document.createElement(\"DIV\");return e.classList.add(t),e}}}()}])});","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.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","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","require('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","'use strict';\nrequire('../../modules/es6.promise');\nrequire('../../modules/es7.promise.finally');\nmodule.exports = require('../../modules/_core').Promise['finally'];\n","require('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n","require('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n","require('../../modules/es7.symbol.async-iterator');\nmodule.exports = require('../../modules/_wks-ext').f('asyncIterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\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","// 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","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 isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\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","// 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","// 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","// 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 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","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","// 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","'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","// 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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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","'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 core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\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","// 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","'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","'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","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar 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","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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\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","'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","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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","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","// 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","// 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","// 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","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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","// 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","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","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","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\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","// 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.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","// 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","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","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\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) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var 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) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\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","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 $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","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var 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","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 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","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\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","// 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","// 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","'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","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\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","'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","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","// 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","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, '&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","// 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","'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","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 = '\\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 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","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","// 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","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'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","'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","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","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\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","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","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.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","'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","// 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';\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';\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","'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';\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","'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 $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","// 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 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// 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 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","'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 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';\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 $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 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 $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 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","require('./_set-species')('Array');\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","// 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';\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","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","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","// 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","'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 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 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","// 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.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","'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","// 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","'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","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.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.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.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\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.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.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.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\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.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.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.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","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","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","'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","// 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.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.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.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.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","// 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","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","// 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","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\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 }, $match];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\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 }, $replace];\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\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 }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\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 var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = 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 ? 4294967295 : 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 separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\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 $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\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';\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';\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';\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","'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","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","// 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","'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';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// 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","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","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","'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","// 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.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","'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';\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 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 $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';\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 require('./_object-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// 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","'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')('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","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')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\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')('Uint16', 2, function (init) {\n return function Uint16Array(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')('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","'use strict';\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 fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\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 (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\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';\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","// 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","// 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","// 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","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-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\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\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\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('./_wks-define')('asyncIterator');\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","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\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","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('html-janitor', factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.HTMLJanitor = factory();\n }\n}(this, function () {\n\n /**\n * @param {Object} config.tags Dictionary of allowed tags.\n * @param {boolean} config.keepNestedBlockElements Default false.\n */\n function HTMLJanitor(config) {\n\n var tagDefinitions = config['tags'];\n var tags = Object.keys(tagDefinitions);\n\n var validConfigValues = tags\n .map(function(k) { return typeof tagDefinitions[k]; })\n .every(function(type) { return type === 'object' || type === 'boolean' || type === 'function'; });\n\n if(!validConfigValues) {\n throw new Error(\"The configuration was invalid\");\n }\n\n this.config = config;\n }\n\n // TODO: not exhaustive?\n var blockElementNames = ['P', 'LI', 'TD', 'TH', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'PRE'];\n function isBlockElement(node) {\n return blockElementNames.indexOf(node.nodeName) !== -1;\n }\n\n var inlineElementNames = ['A', 'B', 'STRONG', 'I', 'EM', 'SUB', 'SUP', 'U', 'STRIKE'];\n function isInlineElement(node) {\n return inlineElementNames.indexOf(node.nodeName) !== -1;\n }\n\n HTMLJanitor.prototype.clean = function (html) {\n const sandbox = document.implementation.createHTMLDocument();\n const root = sandbox.createElement(\"div\");\n root.innerHTML = html;\n\n this._sanitize(sandbox, root);\n\n return root.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (document, parentNode) {\n var treeWalker = createTreeWalker(document, parentNode);\n var node = treeWalker.firstChild();\n\n if (!node) { return; }\n\n do {\n if (node.nodeType === Node.TEXT_NODE) {\n // If this text node is just whitespace and the previous or next element\n // sibling is a block element, remove it\n // N.B.: This heuristic could change. Very specific to a bug with\n // `contenteditable` in Firefox: http://jsbin.com/EyuKase/1/edit?js,output\n // FIXME: make this an option?\n if (node.data.trim() === ''\n && ((node.previousElementSibling && isBlockElement(node.previousElementSibling))\n || (node.nextElementSibling && isBlockElement(node.nextElementSibling)))) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n } else {\n continue;\n }\n }\n\n // Remove all comments\n if (node.nodeType === Node.COMMENT_NODE) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n }\n\n var isInline = isInlineElement(node);\n var containsBlockElement;\n if (isInline) {\n containsBlockElement = Array.prototype.some.call(node.childNodes, isBlockElement);\n }\n\n // Block elements should not be nested (e.g. <li><p>...); if\n // they are, we want to unwrap the inner block element.\n var isNotTopContainer = !! parentNode.parentNode;\n var isNestedBlockElement =\n isBlockElement(parentNode) &&\n isBlockElement(node) &&\n isNotTopContainer;\n\n var nodeName = node.nodeName.toLowerCase();\n\n var allowedAttrs = getAllowedAttrs(this.config, nodeName, node);\n\n var isInvalid = isInline && containsBlockElement;\n\n // Drop tag entirely according to the whitelist *and* if the markup\n // is invalid.\n if (isInvalid || shouldRejectNode(node, allowedAttrs)\n || (!this.config.keepNestedBlockElements && isNestedBlockElement)) {\n // Do not keep the inner text of SCRIPT/STYLE elements.\n if (! (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE')) {\n while (node.childNodes.length > 0) {\n parentNode.insertBefore(node.childNodes[0], node);\n }\n }\n parentNode.removeChild(node);\n\n this._sanitize(document, parentNode);\n break;\n }\n\n // Sanitize attributes\n for (var a = 0; a < node.attributes.length; a += 1) {\n var attr = node.attributes[a];\n\n if (shouldRejectAttr(attr, allowedAttrs, node)) {\n node.removeAttribute(attr.name);\n // Shift the array to continue looping.\n a = a - 1;\n }\n }\n\n // Sanitize children\n this._sanitize(document, node);\n\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(document, node) {\n return document.createTreeWalker(node,\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n null, false);\n }\n\n function getAllowedAttrs(config, nodeName, node){\n if (typeof config.tags[nodeName] === 'function') {\n return config.tags[nodeName](node);\n } else {\n return config.tags[nodeName];\n }\n }\n\n function shouldRejectNode(node, allowedAttrs){\n if (typeof allowedAttrs === 'undefined') {\n return true;\n } else if (typeof allowedAttrs === 'boolean') {\n return !allowedAttrs;\n }\n\n return false;\n }\n\n function shouldRejectAttr(attr, allowedAttrs, node){\n var attrName = attr.name.toLowerCase();\n\n if (allowedAttrs === true){\n return false;\n } else if (typeof allowedAttrs[attrName] === 'function'){\n return !allowedAttrs[attrName](attr.value, node);\n } else if (typeof allowedAttrs[attrName] === 'undefined'){\n return true;\n } else if (allowedAttrs[attrName] === false) {\n return true;\n } else if (typeof allowedAttrs[attrName] === 'string') {\n return (allowedAttrs[attrName] !== attr.value);\n }\n\n return false;\n }\n\n return HTMLJanitor;\n\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\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 var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\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 runtime.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 runtime.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 runtime.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 runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\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 Promise.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 Promise.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. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(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 runtime.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 runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.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 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 runtime.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 runtime.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 // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\n/**\n * Apply polyfills\n */\nimport '@babel/register';\nif (!window || !window._babelPolyfill) require('@babel/polyfill');\nimport 'components/polyfills';\nimport Core from './components/core';\n\n/**\n * Codex Editor\n *\n * Short Description (눈_눈;)\n * @version 2.0\n *\n * @author CodeX-Team <https://ifmo.su>\n */\nexport default class CodexEditor {\n /** Editor version */\n static get version() {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig|String} [configuration] - user configuration\n */\n constructor(configuration) {\n /**\n * Set default onReady function\n */\n let onReady = () => {};\n\n /**\n * If `onReady` was passed in `configuration` then redefine onReady function\n */\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\n onReady = configuration.onReady;\n }\n\n /**\n * Create a CodeX Editor instance\n */\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor\n * as it can be used before other API methods are exported\n * @type {Promise<any | never>}\n */\n this.isReady = editor.isReady.then(() => {\n this.exportAPI(editor);\n onReady();\n });\n }\n\n /**\n * Export external API methods\n *\n * @param editor\n */\n exportAPI(editor) {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor.moduleInstances.ModificationsObserver.destroy();\n editor = null;\n\n for (const field in this) {\n delete this[field];\n }\n\n Object.setPrototypeOf(this, null);\n };\n\n fieldsToExport.forEach(field => {\n this[field] = editor[field];\n });\n\n this.destroy = destroy;\n\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\n\n delete this['exportAPI'];\n }\n}\n","import IEditor from './interfaces/editor';\nimport IEditorConfig from './interfaces/editor-config';\nimport IModuleConfig from './interfaces/module-config';\n\n/**\n * @abstract\n * @class Module\n * @classdesc All modules inherits from this class.\n *\n * @typedef {Module} Module\n * @property {Object} config - Editor user settings\n * @property {IEditorConfig} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {IEditor}\n */\n protected Editor: IEditor;\n\n /**\n * Editor configuration object\n * @type {IEditorConfig}\n */\n protected config: IEditorConfig;\n\n /**\n * @constructor\n * @param {IModuleConfig}\n */\n constructor({config}: IModuleConfig) {\n if (new.target === Module) {\n throw new TypeError('Constructors for abstract class Module are not allowed.');\n }\n\n this.config = config;\n }\n\n /**\n * Editor modules setter\n * @param {IEditor} Editor\n */\n set state(Editor) {\n this.Editor = Editor;\n }\n}\n","/**\n * @class DeleteTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright <CodeX Team> 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class DeleteTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n wrapper: 'ass',\n button: 'ce-settings__button',\n buttonDelete: 'ce-settings__button--delete',\n buttonConfirm: 'ce-settings__button--confirm',\n };\n\n /**\n * Delete confirmation\n */\n private needConfirmation: boolean;\n\n /**\n * set false confirmation state\n */\n private resetConfirmation: () => void;\n\n /**\n * Tune nodes\n */\n private nodes = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {Object} api\n */\n constructor({api}) {\n this.api = api;\n\n this.resetConfirmation = () => {\n this.setConfirmation(false);\n };\n }\n\n /**\n * Create \"Delete\" button and add click event listener\n * @returns [Element}\n */\n public render() {\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\n this.nodes.button.appendChild($.svg('cross', 12, 12));\n this.api.listener.on(this.nodes.button, 'click', (event) => this.handleClick(event), false);\n return this.nodes.button;\n }\n\n /**\n * Delete block conditions passed\n * @param {MouseEvent} event\n */\n public handleClick(event: MouseEvent): void {\n\n /**\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\n * otherwise delete block\n */\n if (!this.needConfirmation) {\n this.setConfirmation(true);\n\n /**\n * Subscribe on event.\n * When toolbar block settings is closed but block deletion is not confirmed,\n * then reset confirmation state\n */\n this.api.events.on('block-settings-closed', this.resetConfirmation);\n\n } else {\n\n /**\n * Unsubscribe from block-settings closing event\n */\n this.api.events.off('block-settings-closed', this.resetConfirmation);\n\n this.api.blocks.delete();\n\n /**\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\n */\n event.stopPropagation();\n }\n }\n\n /**\n * change tune state\n */\n private setConfirmation(state): void {\n this.needConfirmation = state;\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\n }\n\n}\n","/**\n * @class MoveDownTune\n * @classdesc Editor's default tune - Moves down highlighted block\n *\n * @copyright <CodeX Team> 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveDownTune implements IBlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-down',\n animation: 'wobble',\n };\n\n /**\n * MoveDownTune constructor\n *\n * @param {Object} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Return 'move down' button\n */\n public render() {\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\n this.api.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\n return moveDownButton;\n }\n\n /**\n * Handle clicks on 'move down' button\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement) {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n // If Block is last do nothing\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1).holder,\n nextBlockCoords = nextBlockElement.getBoundingClientRect();\n\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\n\n /**\n * Next block ends on screen.\n * Increment scroll by next block's height to save element onscreen-position\n */\n if (nextBlockCoords.top < window.innerHeight) {\n\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\n\n }\n\n window.scrollTo(0, scrollOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\n\n }\n}\n","/**\n * @class MoveUpTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright <CodeX Team> 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveUpTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-up',\n animation: 'wobble',\n };\n\n /**\n * MoveUpTune constructor\n *\n * @param {Object} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Create \"MoveUp\" button and add click event listener\n * @returns [HTMLElement}\n */\n public render(): HTMLElement {\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\n this.api.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\n return moveUpButton;\n }\n\n /**\n * Move current block up\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement): void {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n if (currentBlockIndex === 0) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex).holder,\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\n\n /**\n * Here is two cases:\n * - when previous block has negative offset and part of it is visible on window, then we scroll\n * by window's height and add offset which is mathematically difference between two blocks\n *\n * - when previous block is visible and has offset from the window,\n * than we scroll window to the difference between this offsets.\n */\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\n\n let scrollUpOffset;\n\n if (previousBlockCoords.top > 0) {\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\n } else {\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\n }\n\n window.scrollBy(0, -1 * scrollUpOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\n }\n}\n","import IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\nimport $ from './dom';\nimport _ from './utils';\n\ntype Tool = any;\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {Tool} tool — current block tool (Paragraph, for example)\n * @property {Object} CSS — block`s css classes\n *\n */\n\n/** Import default tunes */\nimport MoveUpTune from './block-tunes/block-tune-move-up';\nimport DeleteTune from './block-tunes/block-tune-delete';\nimport MoveDownTune from './block-tunes/block-tune-move-down';\nimport {IAPI} from './interfaces/api';\n\n/**\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\n *\n * @property tool - Tool instance\n * @property html - Returns HTML content of plugin\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\n * @property pluginsContent - HTML content that returns by Tool's render function\n */\nexport default class Block {\n\n /**\n * CSS classes for the Block\n * @return {{wrapper: string, content: string}}\n */\n static get CSS(): {wrapper: string, wrapperStretched: string, content: string, selected: string, dropTarget: string} {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n selected: 'ce-block--selected',\n dropTarget: 'ce-block--drop-target',\n };\n }\n\n /**\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\n *\n * @returns {HTMLElement[]}\n */\n get inputs(): HTMLElement[] {\n const content = this.holder;\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\n\n const selector = '[contenteditable], textarea, input, '\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\n\n const inputs = _.array(content.querySelectorAll(selector));\n\n /**\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\n */\n if (this.inputIndex > inputs.length - 1) {\n this.inputIndex = inputs.length - 1;\n }\n\n return inputs;\n }\n\n /**\n * Return current Tool`s input\n *\n * @returns {HTMLElement}\n */\n get currentInput(): HTMLElement {\n return this.inputs[this.inputIndex];\n }\n\n /**\n * Set input index to the passed element\n *\n * @param {HTMLElement} element\n */\n set currentInput(element: HTMLElement) {\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\n\n if (index !== -1) {\n this.inputIndex = index;\n }\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get firstInput(): HTMLElement {\n return this.inputs[0];\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get lastInput(): HTMLElement {\n const inputs = this.inputs;\n\n return inputs[inputs.length - 1];\n }\n\n /**\n * Return next Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get nextInput(): HTMLElement {\n return this.inputs[this.inputIndex + 1];\n }\n\n /**\n * Return previous Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get previousInput(): HTMLElement {\n return this.inputs[this.inputIndex - 1];\n }\n\n /**\n * Returns Plugins content\n * @return {Node}\n */\n get pluginsContent(): Node {\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\n\n if (pluginsContent && pluginsContent.childNodes.length) {\n return pluginsContent.childNodes[0];\n }\n\n return null;\n }\n\n /**\n * Get Block's JSON data\n * @return {Object}\n */\n get data(): object {\n return this.save();\n }\n\n /**\n * Returns tool's sanitizer config\n * @return {object}\n */\n get sanitize(): object {\n return this.tool.sanitize;\n }\n\n /**\n * is block mergeable\n * We plugin have merge function then we call it mergable\n * @return {boolean}\n */\n get mergeable(): boolean {\n return typeof this.tool.merge === 'function';\n }\n\n /**\n * Check block for emptiness\n * @return {Boolean}\n */\n get isEmpty(): boolean {\n /**\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\n * That Tools are not empty\n */\n if (this.class.contentless) {\n return false;\n }\n\n const emptyText = $.isEmpty(this.pluginsContent),\n emptyMedia = !this.hasMedia;\n\n return emptyText && emptyMedia;\n }\n\n /**\n * Check if block has a media content such as images, iframes and other\n * @return {Boolean}\n */\n get hasMedia(): boolean {\n /**\n * This tags represents media-content\n * @type {string[]}\n */\n const mediaTags = [\n 'img',\n 'iframe',\n 'video',\n 'audio',\n 'source',\n 'input',\n 'textarea',\n 'twitterwidget',\n ];\n\n return !!this.holder.querySelector(mediaTags.join(','));\n }\n\n /**\n * Set selected state\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n /**\n * We don't need to mark Block as Selected when it is not empty\n */\n if (state === true && !this.isEmpty) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\n }\n\n /**\n * Set stretched state\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\n */\n set stretched(state: boolean) {\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\n }\n\n public name: string;\n public tool: Tool;\n public class: any;\n public settings: object;\n public holder: HTMLDivElement;\n public tunes: IBlockTune[];\n private readonly api: IAPI;\n private inputIndex = 0;\n\n /**\n * @constructor\n * @param {String} toolName - Tool name that passed on initialization\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\n * @param {Object} toolClass — Tool's class\n * @param {Object} settings - default settings\n * @param {Object} apiMethods - Editor API\n */\n constructor(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: IAPI) {\n this.name = toolName;\n this.tool = toolInstance;\n this.class = toolClass;\n this.settings = settings;\n this.api = apiMethods;\n this.holder = this.compose();\n\n /**\n * @type {IBlockTune[]}\n */\n this.tunes = this.makeTunes();\n }\n\n /**\n * Calls Tool's method\n *\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\n *\n * @param {String} methodName\n * @param {Object} params\n */\n public call(methodName: string, params: object) {\n /**\n * call Tool's method with the instance context\n */\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\n this.tool[methodName].call(this.tool, params);\n }\n }\n\n /**\n * Call plugins merge method\n * @param {Object} data\n */\n public mergeWith(data: object): Promise<void> {\n return Promise.resolve()\n .then(() => {\n this.tool.merge(data);\n });\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public async save(): Promise<void|{tool: string, data: any, time: number}> {\n const extractedBlock = await this.tool.save(this.pluginsContent);\n\n /**\n * Measuring execution time\n */\n const measuringStart = window.performance.now();\n let measuringEnd;\n\n return Promise.resolve(extractedBlock)\n .then((finishedExtraction) => {\n /** measure promise execution */\n measuringEnd = window.performance.now();\n\n return {\n tool: this.name,\n data: finishedExtraction,\n time : measuringEnd - measuringStart,\n };\n })\n .catch(function(error) {\n _.log(`Saving proccess for ${this.tool.name} tool failed due to the ${error}`, 'log', 'red');\n });\n }\n\n /**\n * Uses Tool's validation method to check the correctness of output data\n * Tool's validation method is optional\n *\n * @description Method also can return data if it passed the validation\n *\n * @param {Object} data\n * @returns {Boolean|Object} valid\n */\n public validateData(data: object): object|false {\n let isValid = true;\n\n if (this.tool.validate instanceof Function) {\n isValid = this.tool.validate(data);\n }\n\n if (!isValid) {\n return false;\n }\n\n return data;\n }\n\n /**\n * Make an array with default settings\n * Each block has default tune instance that have states\n * @return {IBlockTune[]}\n */\n public makeTunes(): IBlockTune[] {\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\n\n // Pluck tunes list and return tune instances with passed Editor API and settings\n return tunesList.map( (tune: IBlockTuneConstructor) => {\n return new tune({\n api: this.api,\n settings: this.settings,\n });\n });\n }\n\n /**\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\n * @return {DocumentFragment}\n */\n public renderTunes(): DocumentFragment {\n const tunesElement = document.createDocumentFragment();\n\n this.tunes.forEach( (tune) => {\n $.append(tunesElement, tune.render());\n });\n\n return tunesElement;\n }\n\n /**\n * Toggle drop target state\n * @param {boolean} state\n */\n public set dropTarget(state) {\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\n }\n\n /**\n * Make default Block wrappers and put Tool`s content there\n * @returns {HTMLDivElement}\n */\n private compose(): HTMLDivElement {\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\n contentNode = $.make('div', Block.CSS.content),\n pluginsContent = this.tool.render();\n\n contentNode.appendChild(pluginsContent);\n wrapper.appendChild(contentNode);\n return wrapper;\n }\n}\n","/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Dynamically imported utils\n *\n * @typedef {Dom} $ - {@link components/dom.js}\n * @typedef {Util} _ - {@link components/utils.js}\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\n// eslint-disable-next-line\nlet modules = editorModules.map( module => require('./modules/' + module ));\n\n/**\n * @class Core\n *\n * @classdesc CodeX Editor core class\n *\n * @property this.config - all settings\n * @property this.moduleInstances - constructed editor components\n *\n * @type {Core}\n */\nexport default class Core {\n /**\n * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config) {\n /**\n * Configuration object\n * @type {EditorConfig}\n */\n this.config = {};\n\n /**\n * @typedef {Object} EditorComponents\n * @property {BlockManager} BlockManager\n * @property {Tools} Tools\n * @property {Events} Events\n * @property {UI} UI\n * @property {Toolbar} Toolbar\n * @property {Toolbox} Toolbox\n * @property {BlockSettings} BlockSettings\n * @property {Renderer} Renderer\n * @property {InlineToolbar} InlineToolbar\n */\n this.moduleInstances = {};\n\n /**\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\n */\n let onReady, onFail;\n\n this.isReady = new Promise((resolve, reject) => {\n onReady = resolve;\n onFail = reject;\n });\n\n Promise.resolve()\n .then(() => {\n this.configuration = config;\n })\n .then(() => this.validate())\n .then(() => this.init())\n .then(() => this.start())\n .then(() => {\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\n\n setTimeout(() => {\n /**\n * Resolve this.isReady promise\n */\n onReady();\n }, 500);\n })\n .catch(error => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n\n /**\n * Reject this.isReady promise\n */\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {IEditorConfig|string|null} config\n */\n set configuration(config) {\n /**\n * Process zero-configuration or with only holderId\n */\n if (typeof config === 'string' || typeof config === 'undefined') {\n config = {\n holderId: config\n };\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = config.initialBlock || 'paragraph';\n\n /**\n * Initial block type\n * Uses in case when there is no blocks passed\n * @type {{type: (*), data: {text: null}}}\n */\n let initialBlockData = {\n type : this.config.initialBlock,\n data : {}\n };\n\n this.config.holderId = config.holderId || 'codex-editor';\n this.config.placeholder = config.placeholder || 'write your story...';\n this.config.sanitizer = config.sanitizer || {\n p: true,\n b: true,\n a: true\n };\n\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\n this.config.tools = config.tools || {};\n this.config.data = config.data || {};\n this.config.onReady = config.onReady || function () {};\n this.config.onChange = config.onChange || function () {};\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {};\n this.config.data.blocks = [ initialBlockData ];\n } else {\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\n this.config.data.blocks = [ initialBlockData ];\n }\n }\n }\n\n /**\n * Returns private property\n * @returns {EditorConfig}\n */\n get configuration() {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {void|Promise<string>}\n */\n validate() {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n return Promise.reject('«holderId» param must being not empty');\n }\n\n /**\n * Check for a holder element's existence\n */\n if (!$.get(this.config.holderId)) {\n return Promise.reject(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\n }\n\n /**\n * Check Tools for a class containing\n */\n for (let toolName in this.config.tools) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n init() {\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n this.constructModules();\n\n /**\n * Modules configuration\n */\n this.configureModules();\n }\n\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n constructModules() {\n modules.forEach( Module => {\n try {\n /**\n * We use class name provided by displayName property\n *\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\n */\n this.moduleInstances[Module.displayName] = new Module({\n config : this.configuration\n });\n } catch ( e ) {\n console.log('Module %o skipped because %o', Module, e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n configureModules() {\n for(let name in this.moduleInstances) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff( name );\n }\n }\n\n /**\n * Return modules without passed name\n */\n getModulesDiff( name ) {\n let diff = {};\n\n for(let moduleName in this.moduleInstances) {\n /**\n * Skip module with passed name\n */\n if (moduleName === name) {\n continue;\n }\n diff[moduleName] = this.moduleInstances[moduleName];\n }\n\n return diff;\n }\n\n /**\n * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n async start() {\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste', 'DragNDrop', 'ModificationsObserver'];\n\n await modulesToPrepare.reduce(\n (promise, module) => promise.then(async () => {\n _.log(`Preparing ${module} module`, 'time');\n\n try {\n await this.moduleInstances[module].prepare();\n } catch (e) {\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\n }\n _.log(`Preparing ${module} module`, 'timeEnd');\n }),\n Promise.resolve()\n );\n\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\n }\n};\n","/**\n * DOM manipulations helper\n */\nexport default class Dom {\n /**\n * Check if passed tag has no closed tag\n * @param {HTMLElement} tag\n * @return {Boolean}\n */\n public static isSingleTag(tag: HTMLElement): boolean {\n return tag.tagName && [\n 'AREA',\n 'BASE',\n 'BR',\n 'COL',\n 'COMMAND',\n 'EMBED',\n 'HR',\n 'IMG',\n 'INPUT',\n 'KEYGEN',\n 'LINK',\n 'META',\n 'PARAM',\n 'SOURCE',\n 'TRACK',\n 'WBR',\n ].includes(tag.tagName);\n }\n\n /**\n * Helper for making Elements with classname and attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {array|string} classNames - list or name of CSS classname(s)\n * @param {Object} attributes - any attributes\n * @return {Element}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\n const el = document.createElement(tagName);\n\n if ( Array.isArray(classNames) ) {\n el.classList.add(...classNames);\n } else if ( classNames ) {\n el.classList.add(classNames);\n }\n\n for (const attrName in attributes) {\n if (attributes.hasOwnProperty(attrName)) {\n el[attrName] = attributes[attrName];\n }\n }\n\n return el;\n }\n\n /**\n * Creates Text Node with the passed content\n * @param {String} content - text content\n * @return {Text}\n */\n public static text(content: string): Text {\n return document.createTextNode(content);\n }\n\n /**\n * Creates SVG icon linked to the sprite\n * @param {string} name - name (id) of icon from sprite\n * @param {number} width\n * @param {number} height\n * @return {SVGElement}\n */\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n icon.classList.add('icon', 'icon--' + name);\n icon.setAttribute('width', width + 'px');\n icon.setAttribute('height', height + 'px');\n icon.innerHTML = `<use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#${name}\"></use>`;\n\n return icon;\n }\n\n /**\n * Append one or several elements to the parent\n *\n * @param {Element|DocumentFragment} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements.forEach( (el) => parent.appendChild(el) );\n } else {\n parent.appendChild(elements);\n }\n }\n\n /**\n * Append element or a couple to the beginning of the parent elements\n *\n * @param {Element} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static prepend(parent: Element, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements = elements.reverse();\n elements.forEach( (el) => parent.prepend(el) );\n } else {\n parent.prepend(elements);\n }\n }\n\n /**\n * Swap two elements in parent\n * @param {HTMLElement} el1 - from\n * @param {HTMLElement} el2 - to\n */\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\n // create marker element and insert it where el1 is\n const temp = document.createElement('div'),\n parent = el1.parentNode;\n\n parent.insertBefore(temp, el1);\n\n // move el1 to right before el2\n parent.insertBefore(el1, el2);\n\n // move el2 to right before where el1 used to be\n parent.insertBefore(el2, temp);\n\n // remove temporary marker node\n parent.removeChild(temp);\n }\n\n /**\n * Selector Decorator\n *\n * Returns first match\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n *\n * @returns {Element}\n */\n public static find(el: Element|Document = document, selector: string): Element {\n return el.querySelector(selector);\n }\n\n /**\n * Get Element by Id\n *\n * @param {string} id\n * @returns {HTMLElement | null}\n */\n public static get(id: string): HTMLElement {\n return document.getElementById(id);\n }\n\n /**\n * Selector Decorator.\n *\n * Returns all matches\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n * @returns {NodeList}\n */\n public static findAll(el: Element|Document = document, selector: string): NodeList {\n return el.querySelectorAll(selector);\n }\n\n /**\n * Search for deepest node which is Leaf.\n * Leaf is the vertex that doesn't have any child nodes\n *\n * @description Method recursively goes throw the all Node until it finds the Leaf\n *\n * @param {Node} node - root Node. From this vertex we start Deep-first search\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\n * @param {Boolean} atLast - find last text node\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\n */\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\n /**\n * Current function have two directions:\n * - starts from first child and every time gets first or nextSibling in special cases\n * - starts from last child and gets last or previousSibling\n * @type {string}\n */\n const child = atLast ? 'lastChild' : 'firstChild',\n sibling = atLast ? 'previousSibling' : 'nextSibling';\n\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\n let nodeChild = node[child];\n\n /**\n * special case when child is single tag that can't contain any content\n */\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\n /**\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\n * from sibling\n *\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\n * In case of Node Element continue searching\n *\n * 3) If none of conditions above happened return parent Node Element\n */\n if (nodeChild[sibling]) {\n nodeChild = nodeChild[sibling];\n } else if (nodeChild.parentNode[sibling]) {\n nodeChild = nodeChild.parentNode[sibling];\n } else {\n return nodeChild.parentNode;\n }\n }\n\n return this.getDeepestNode(nodeChild, atLast);\n }\n\n return node;\n }\n\n /**\n * Check if object is DOM node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isElement(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Check if object is DocumentFragmemt node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isFragment(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n\n /**\n * Checks target if it is native input\n * @param {Element|String|Node} target - HTML element or string\n * @return {Boolean}\n */\n public static isNativeInput(target: any): boolean {\n const nativeInputs = [\n 'INPUT',\n 'TEXTAREA',\n ];\n\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\n }\n\n /**\n * Checks node if it is empty\n *\n * @description Method checks simple Node without any childs for emptiness\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\n *\n * @param {Node} node\n * @return {Boolean} true if it is empty\n */\n public static isNodeEmpty(node: Node): boolean {\n let nodeText;\n\n if ( this.isElement(node) && this.isNativeInput(node) ) {\n nodeText = (node as HTMLInputElement).value;\n } else {\n nodeText = node.textContent.replace('\\u200B', '');\n }\n\n return nodeText.trim().length === 0;\n }\n\n /**\n * checks node if it is doesn't have any child nodes\n * @param {Node} node\n * @return {boolean}\n */\n public static isLeaf(node: Node): boolean {\n if (!node) {\n return false;\n }\n\n return node.childNodes.length === 0;\n }\n\n /**\n * breadth-first search (BFS)\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\n *\n * @description Pushes to stack all DOM leafs and checks for emptiness\n *\n * @param {Node} node\n * @return {boolean}\n */\n public static isEmpty(node: Node): boolean {\n const treeWalker = [],\n leafs = [];\n\n if (!node) {\n return true;\n }\n\n if (!node.childNodes.length) {\n return this.isNodeEmpty(node);\n }\n\n treeWalker.push(node.firstChild);\n\n while ( treeWalker.length > 0 ) {\n node = treeWalker.shift();\n\n if (!node) { continue; }\n\n if ( this.isLeaf(node) ) {\n leafs.push(node);\n } else {\n treeWalker.push(node.firstChild);\n }\n\n while ( node && node.nextSibling ) {\n node = node.nextSibling;\n\n if (!node) { continue; }\n\n treeWalker.push(node);\n }\n\n /**\n * If one of childs is not empty, checked Node is not empty too\n */\n if (node && !this.isNodeEmpty(node)) {\n return false;\n }\n }\n\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\n }\n\n /**\n * Check if string contains html elements\n *\n * @returns {boolean}\n * @param {String} str\n */\n public static isHTMLString(str: string): boolean {\n const wrapper = Dom.make('div');\n\n wrapper.innerHTML = str;\n\n return wrapper.childElementCount > 0;\n }\n\n /**\n * Return length of node`s text content\n *\n * @param {Node} node\n * @returns {number}\n */\n public static getContentLength(node: Node): number {\n if (Dom.isNativeInput(node)) {\n return (node as HTMLInputElement).value.length;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node as Text).length;\n }\n\n return node.textContent.length;\n }\n\n /**\n * Return array of names of block html elements\n *\n * @returns {string[]}\n */\n static get blockElements(): string[] {\n return [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'ruby',\n 'section',\n 'table',\n 'tr',\n 'tfoot',\n 'ul',\n 'video',\n ];\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\n\n/**\n * Bold Tool\n *\n * Inline Toolbar Tool\n *\n * Makes selected text bolder\n */\nexport default class BoldInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave <b> tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n b: {},\n };\n }\n\n /**\n * Native Document's command that uses for Bold\n */\n private readonly commandName: string = 'bold';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--bold',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: undefined,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('bold', 13, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with <b> tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are <b> tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+B';\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\n\n/**\n * Italic Tool\n *\n * Inline Toolbar Tool\n *\n * Style selected text with italic\n */\nexport default class ItalicInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave <i> tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n i: {},\n };\n }\n\n /**\n * Native Document's command that uses for Italic\n */\n private readonly commandName: string = 'italic';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--italic',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: null,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('italic', 6, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with <i> tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are <i> tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+I';\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\ndeclare var _: any;\n\n/**\n * Link Tool\n *\n * Inline Toolbar Tool\n *\n * Wrap selected text with <a> tag\n */\nexport default class LinkInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave <a> tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow',\n },\n };\n }\n\n /**\n * Native Document's commands for link/unlink\n */\n private readonly commandLink: string = 'createLink';\n private readonly commandUnlink: string = 'unlink';\n\n /**\n * Enter key code\n */\n private readonly ENTER_KEY: number = 13;\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--link',\n buttonUnlink: 'ce-inline-tool--unlink',\n input: 'ce-inline-tool-input',\n inputShowed: 'ce-inline-tool-input--showed',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement, input: HTMLInputElement} = {\n button: null,\n input: null,\n };\n\n /**\n * SelectionUtils instance\n */\n private selection: SelectionUtils;\n\n /**\n * Input opening state\n */\n private inputOpened: boolean = false;\n\n /**\n * Available Inline Toolbar methods (open/close)\n */\n private inlineToolbar: any;\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n this.inlineToolbar = api.toolbar;\n this.selection = new SelectionUtils();\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('link', 15, 14));\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\n return this.nodes.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n this.nodes.input = document.createElement('input');\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event) => {\n if (event.keyCode === this.ENTER_KEY ) {\n this.enterPressed(event);\n }\n });\n return this.nodes.input;\n }\n\n /**\n * Handle clicks on the Inline Toolbar icon\n * @param {Range} range\n */\n public surround(range: Range): void {\n /**\n * Range will be null when user makes second click on the 'link icon' to close opened input\n */\n if (range) {\n /**\n * Save selection before change focus to the input\n */\n this.selection.save();\n const parentAnchor = this.selection.findParentTag('A');\n\n /**\n * Unlink icon pressed\n */\n if (parentAnchor) {\n this.selection.expandToTag(parentAnchor);\n this.unlink();\n this.closeActions();\n this.checkState();\n this.inlineToolbar.close();\n return;\n }\n }\n\n this.toggleActions();\n }\n\n /**\n * Check selection and set activated state to button if there are <a> tag\n * @param {Selection} selection\n */\n public checkState(selection?: Selection): boolean {\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\n this.nodes.button.classList.add(this.CSS.buttonActive);\n this.openActions();\n\n /**\n * Fill input value with link href\n */\n const hrefAttr = anchorTag.getAttribute('href');\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\n\n this.selection.save();\n } else {\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\n this.nodes.button.classList.remove(this.CSS.buttonActive);\n }\n\n return !!anchorTag;\n }\n\n /**\n * Function called with Inline Toolbar closing\n */\n public clear(): void {\n this.closeActions();\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+K';\n }\n\n private toggleActions(): void {\n if (!this.inputOpened) {\n this.openActions(true);\n } else {\n this.closeActions(false);\n }\n }\n\n /**\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\n */\n private openActions(needFocus: boolean = false): void {\n this.nodes.input.classList.add(this.CSS.inputShowed);\n if (needFocus) {\n this.nodes.input.focus();\n }\n this.inputOpened = true;\n }\n\n /**\n * Close input\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\n * on toggle-clicks on the icon of opened Toolbar\n */\n private closeActions(clearSavedSelection: boolean = true): void {\n this.nodes.input.classList.remove(this.CSS.inputShowed);\n this.nodes.input.value = '';\n if (clearSavedSelection) {\n this.selection.clearSaved();\n }\n this.inputOpened = false;\n }\n\n /**\n * Enter pressed on input\n * @param {KeyboardEvent} event\n */\n private enterPressed(event: KeyboardEvent): void {\n let value = this.nodes.input.value || '';\n\n if (!value.trim()) {\n this.selection.restore();\n this.unlink();\n event.preventDefault();\n this.closeActions();\n }\n\n if (!this.validateURL(value)) {\n /**\n * @todo show notification 'Incorrect Link'\n */\n _.log('Incorrect Link pasted', 'warn', value);\n return;\n }\n\n value = this.prepareLink(value);\n\n this.selection.restore();\n this.insertLink(value);\n\n /**\n * Preventing events that will be able to happen\n */\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n this.closeActions();\n this.inlineToolbar.close();\n this.checkState();\n }\n\n /**\n * Detects if passed string is URL\n * @param {string} str\n * @return {Boolean}\n */\n private validateURL(str: string): boolean {\n /**\n * Don't allow spaces\n */\n return !/\\s/.test(str);\n }\n\n /**\n * Process link before injection\n * - sanitize\n * - add protocol for links like 'google.com'\n * @param {string} link - raw user input\n */\n private prepareLink(link: string): string {\n link = link.trim();\n link = this.addProtocol(link);\n return link;\n }\n\n /**\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\n * @param {String} link\n */\n private addProtocol(link: string): string {\n /**\n * If protocol already exists, do nothing\n */\n if (/^(\\w+):\\/\\//.test(link)) {\n return link;\n }\n\n /**\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\n * 1) Internal links like \"/general\"\n * 2) Anchors looks like \"#results\"\n * 3) Protocol-relative URLs like \"//google.com\"\n */\n const isInternal = /^\\/[^\\/\\s]/.test(link),\n isAnchor = link.substring(0, 1) === '#',\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\n\n if (!isInternal && !isAnchor && !isProtocolRelative) {\n link = 'http://' + link;\n }\n\n return link;\n }\n\n /**\n * Inserts <a> tag with \"href\"\n * @param {string} link - \"href\" value\n */\n private insertLink(link: string): void {\n\n /**\n * Edit all link, not selected part\n */\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.selection.expandToTag(anchorTag);\n }\n\n document.execCommand(this.commandLink, false, link);\n }\n\n /**\n * Removes <a> tag\n */\n private unlink(): void {\n document.execCommand(this.commandUnlink);\n }\n}\n","var map = {\n\t\"./api-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-notifier.ts\": \"./src/components/modules/api-notifier.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./notifier.ts\": \"./src/components/modules/notifier.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer.ts\": \"./src/components/modules/sanitizer.ts\",\n\t\"./saver.ts\": \"./src/components/modules/saver.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui.js\": \"./src/components/modules/ui.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/components/modules sync [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$\";","declare var Module: any;\n\nimport { IBlocksAPI } from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module implements IBlocksAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IBlocksAPI}\n */\n get methods(): IBlocksAPI {\n return {\n clear: () => this.clear(),\n render: (data: IInputOutputData) => this.render(data),\n delete: () => this.delete(),\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\n getBlocksCount: () => this.getBlocksCount(),\n stretchBlock: (index: number, status: boolean) => this.stretchBlock(index, status),\n insertNewBlock: () => this.insertNewBlock(),\n };\n }\n\n /**\n * Returns Blocks count\n * @return {number}\n */\n public getBlocksCount(): number {\n return this.Editor.BlockManager.blocks.length;\n }\n\n /**\n * Returns current block index\n * @return {number}\n */\n public getCurrentBlockIndex(): number {\n return this.Editor.BlockManager.currentBlockIndex;\n }\n\n /**\n * Returns Current Block\n * @param {Number} index\n *\n * @return {Object}\n */\n public getBlockByIndex(index: number): object {\n return this.Editor.BlockManager.getBlockByIndex(index);\n }\n\n /**\n * Call Block Manager method that swap Blocks\n * @param {number} fromIndex - position of first Block\n * @param {number} toIndex - position of second Block\n */\n public swap(fromIndex: number, toIndex: number): void {\n this.Editor.BlockManager.swap(fromIndex, toIndex);\n\n /**\n * Move toolbar\n * DO not close the settings\n */\n this.Editor.Toolbar.move(false);\n }\n\n /**\n * Deletes Block\n * @param blockIndex\n */\n public delete(blockIndex?: number): void {\n this.Editor.BlockManager.removeBlock(blockIndex);\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Clear Editor's area\n */\n public clear(): void {\n this.Editor.BlockManager.clear(true);\n }\n\n /**\n * Fills Editor with Blocks data\n * @param {IInputOutputData} data — Saved Editor data\n */\n public render(data: IInputOutputData): void {\n this.Editor.BlockManager.clear();\n this.Editor.Renderer.render(data.blocks);\n }\n\n /**\n * Stretch Block's content\n * @param {number} index\n * @param {boolean} status - true to enable, false to disable\n */\n public stretchBlock(index: number, status: boolean): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status !== undefined ? status : true;\n }\n\n /**\n * Insert new Block\n * After set caret to this Block\n */\n public insertNewBlock() {\n const newBlock = this.Editor.BlockManager.insert();\n this.Editor.Caret.setToBlock(newBlock);\n }\n}\n","declare var Module: any;\n\nimport {ICaretAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module implements ICaretAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ICaretAPI}\n */\n get methods(): ICaretAPI {\n return {};\n }\n}\n","declare var Module: any;\n\nimport {IEventsAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module implements IEventsAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IEventsAPI}\n */\n get methods(): IEventsAPI {\n return {\n emit: (eventName: string, data: object) => this.emit(eventName, data),\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\n };\n }\n\n /**\n * Subscribe on Events\n * @param {String} eventName\n * @param {Function} callback\n */\n public on(eventName, callback): void {\n this.Editor.Events.on(eventName, callback);\n }\n\n /**\n * Emit event with data\n * @param {String} eventName\n * @param {Object} data\n */\n public emit(eventName, data): void {\n this.Editor.Events.emit(eventName, data);\n }\n\n /**\n * Unsubscribe from Event\n * @param {String} eventName\n * @param {Function} callback\n */\n public off(eventName, callback): void {\n this.Editor.Events.off(eventName, callback);\n }\n\n}\n","declare var Module: any;\n\nimport {IListenerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides with methods working with DOM Listener\n */\nexport default class ListenerAPI extends Module implements IListenerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IListenerAPI {\n return {\n on: (element, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\n off: (element, eventType, handler) => this.off(element, eventType, handler),\n };\n }\n\n /**\n * adds DOM event listener\n *\n * @param {HTMLElement} element\n * @param {string} eventType\n * @param {() => void} handler\n * @param {boolean} useCapture\n */\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\n }\n\n /**\n * Removes DOM listener from element\n *\n * @param element\n * @param eventType\n * @param handler\n */\n public off(element, eventType, handler): void {\n this.Editor.Listeners.off(element, eventType, handler);\n }\n}\n","import Module from '../__module';\nimport {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\nexport default class NotifierAPI extends Module {\n\n /**\n * Available methods\n */\n get methods() {\n return {\n show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options),\n };\n }\n\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n return this.Editor.Notifier.show(options);\n }\n}\n","declare var Module: any;\n\nimport {ISanitizerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISanitizerAPI}\n */\n get methods(): ISanitizerAPI {\n return {\n clean: (taintString, config) => this.clean(taintString, config),\n };\n }\n\n public clean(taintString, config) {\n return this.Editor.Sanitizer.clean(taintString, config);\n }\n\n}\n","declare var Module: any;\n\nimport {ISaverAPI} from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module implements ISaverAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISaverAPI}\n */\n get methods(): ISaverAPI {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): IInputOutputData {\n return this.Editor.Saver.save();\n }\n}\n","declare var Module: any;\n\nimport {ISelectionAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\nimport Selection from '../selection';\n\n/**\n * @class API\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module implements ISelectionAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISelectionAPI}\n */\n get methods(): ISelectionAPI {\n return {\n findParentTag: (tagName: string, className: string) => this.findParentTag(tagName, className),\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\n };\n }\n\n /**\n * Looks ahead from selection and find passed tag with class name\n * @param {string} tagName - tag to find\n * @param {string} className - tag's class name\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className: string): HTMLElement|null {\n return new Selection().findParentTag(tagName, className);\n }\n\n /**\n * Expand selection to passed tag\n * @param {HTMLElement} node - tag that should contain selection\n */\n public expandToTag(node: HTMLElement): void {\n new Selection().expandToTag(node);\n }\n\n}\n","declare var Module: any;\n\nimport IModuleConfig from '../interfaces/module-config';\nimport {IStylesAPI} from '../interfaces/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n\n /**\n * Save Editor config\n * API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n get classes(): IStylesAPI {\n return {\n /**\n * Base Block styles\n */\n block: 'cdx-block',\n\n /**\n * Inline Tools styles\n */\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonActive: 'ce-inline-tool--active',\n\n /**\n * UI elements\n */\n input: 'cdx-input',\n loader: 'cdx-loader',\n button: 'cdx-button',\n\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","declare var Module: any;\n\nimport {IToolbarAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class ToolbarsAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IToolbarAPI {\n return {\n close: () => this.close(),\n open: () => this.open(),\n };\n }\n\n /**\n * Open toolbar\n */\n public open(): void {\n this.Editor.Toolbar.open();\n }\n\n /**\n * Close toolbar and all included elements\n */\n public close(): void {\n this.Editor.Toolbar.close();\n }\n\n}\n","/**\n * @module API\n * @copyright <CodeX Team> 2018\n *\n * Each block has an Editor API instance to use provided public methods\n * if you cant to read more about how API works, please see docs\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nimport { IAPI } from '../interfaces/api';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public get methods(): IAPI {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listener: this.Editor.ListenerAPI.methods,\n notifier: this.Editor.NotifierAPI.methods,\n sanitizer: this.Editor.SanitizerAPI.methods,\n saver: this.Editor.SaverAPI.methods,\n selection: this.Editor.SelectionAPI.methods,\n styles: this.Editor.StylesAPI.classes,\n toolbar: this.Editor.ToolbarAPI.methods,\n };\n }\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class BlockEvents extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * All keydowns on Block\n * @param {KeyboardEvent} event - keydown\n */\n public keydown(event: KeyboardEvent): void {\n /**\n * Run common method for all keydown events\n */\n this.beforeKeydownProcessing(event);\n\n /**\n * Fire keydown processor by event.keyCode\n */\n switch (event.keyCode) {\n case _.keyCodes.BACKSPACE:\n this.backspace(event);\n break;\n\n case _.keyCodes.ENTER:\n this.enter(event);\n break;\n\n case _.keyCodes.DOWN:\n case _.keyCodes.RIGHT:\n this.arrowRightAndDown(event);\n break;\n\n case _.keyCodes.UP:\n case _.keyCodes.LEFT:\n this.arrowLeftAndUp(event);\n break;\n\n case _.keyCodes.TAB:\n this.tabPressed(event);\n break;\n\n default:\n this.defaultHandler();\n break;\n }\n }\n\n /**\n * Fires on keydown before event processing\n * @param {KeyboardEvent} event - keydown\n */\n public beforeKeydownProcessing(event): void {\n /**\n * Clear all highlightings\n */\n this.Editor.BlockManager.clearHighlightings();\n\n /**\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\n */\n if (!this.needToolbarClosing(event)) {\n return;\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Key up on Block:\n * - shows Inline Toolbar if something selected\n */\n public keyup(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Mouse up on Block:\n * - shows Inline Toolbar if something selected\n */\n public mouseUp(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Open Toolbox to leaf Tools\n * @param {KeyboardEvent} event\n */\n public tabPressed(event): void {\n\n const {currentBlock} = this.Editor.BlockManager;\n\n /** Prevent Default behaviour */\n event.preventDefault();\n event.stopPropagation();\n\n /** this property defines leaf direction */\n const shiftKey = event.shiftKey,\n direction = shiftKey ? 'left' : 'right';\n\n if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\n this.Editor.Toolbox.open();\n } else if (currentBlock.isEmpty) {\n this.Editor.Toolbar.open();\n this.Editor.Toolbar.plusButton.show();\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\n }\n\n /**\n * Add drop target styles\n *\n * @param {DragEvent} e\n */\n public dragOver(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\n\n block.dropTarget = true;\n }\n\n /**\n * Remove drop target style\n *\n * @param {DragEvent} e\n */\n public dragLeave(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\n\n block.dropTarget = false;\n }\n\n /**\n * ENTER pressed on block\n * @param {KeyboardEvent} event - keydown\n */\n private enter(event: KeyboardEvent): void {\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\n\n /**\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\n * Uses for Tools like <code> where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\n return;\n }\n\n /**\n * Allow to create linebreaks by Shift+Enter\n */\n if (event.shiftKey) {\n return;\n }\n /**\n * Split the Current Block into two blocks\n * Renew local current node after split\n */\n const newCurrent = this.Editor.BlockManager.split();\n\n this.Editor.Caret.setToBlock(newCurrent);\n\n /**\n * If new Block is empty\n */\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\n /**\n * Show Toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Show Plus Button\n */\n this.Editor.Toolbar.plusButton.show();\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handle backspace keydown on Block\n * @param {KeyboardEvent} event - keydown\n */\n private backspace(event: KeyboardEvent): void {\n const BM = this.Editor.BlockManager;\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\n\n /**\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\n * Uses for Tools like <code> where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n const isFirstBlock = BM.currentBlockIndex === 0,\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\n\n /** If current Block is empty just remove this Block */\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\n this.Editor.BlockManager.removeBlock();\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n * After BlockManager removes the Block (which is current now),\n * pointer that references to the current Block, now points to the Next\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n return;\n }\n\n if (!canMergeBlocks) {\n return;\n }\n\n // preventing browser default behaviour\n event.preventDefault();\n\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\n blockToMerge = BM.currentBlock;\n\n /**\n * Blocks that can be merged:\n * 1) with the same Name\n * 2) Tool has 'merge' method\n *\n * other case will handle as usual ARROW LEFT behaviour\n */\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\n if (this.Editor.Caret.navigatePrevious()) {\n this.Editor.Toolbar.close();\n }\n\n return;\n }\n\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\n BM.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\n targetBlock.pluginsContent.normalize();\n this.Editor.Toolbar.close();\n });\n }\n\n /**\n * Handle right and down keyboard keys\n */\n private arrowRightAndDown(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigateNext()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Handle left and up keyboard keys\n */\n private arrowLeftAndUp(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigatePrevious()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Default keydown handler\n */\n private defaultHandler(): void {}\n\n /**\n * Cases when we need to close Toolbar\n */\n private needToolbarClosing(event) {\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\n\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\n }\n\n}\n","/**\n * @class BlockManager\n * @classdesc Manage editor`s blocks storage and appearance\n *\n * @module BlockManager\n *\n * @version 2.0.0\n */\n\nimport Block from '../block';\n\n/**\n * @typedef {BlockManager} BlockManager\n * @property {Number} currentBlockIndex - Index of current working block\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\n */\nexport default class BlockManager extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = null;\n\n /**\n * Index of current working block\n *\n * @type {number}\n * @private\n */\n this.currentBlockIndex = -1;\n }\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n prepare() {\n return new Promise(resolve => {\n let blocks = new Blocks(this.Editor.UI.nodes.redactor);\n\n /**\n * We need to use Proxy to overload set/get [] operator.\n * So we can use array-like syntax to access blocks\n *\n * @example\n * this._blocks[0] = new Block(...);\n *\n * block = this._blocks[0];\n *\n * @todo proxy the enumerate method\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = new Proxy(blocks, {\n set: Blocks.set,\n get: Blocks.get\n });\n\n resolve();\n });\n }\n\n /**\n * Creates Block instance by tool name\n *\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\n * @param {Object} data - constructor params\n * @param {Object} settings - block settings\n *\n * @return {Block}\n */\n composeBlock(toolName, data, settings) {\n let toolInstance = this.Editor.Tools.construct(toolName, data),\n toolClass = this.Editor.Tools.available[toolName],\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n /**\n * Apply callback before inserting html\n */\n block.call('appendCallback', {});\n\n return block;\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n bindEvents(block) {\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\n this.Editor.Listeners.on(block.holder, 'dragover', (event) => this.Editor.BlockEvents.dragOver(event));\n this.Editor.Listeners.on(block.holder, 'dragleave', (event) => this.Editor.BlockEvents.dragLeave(event));\n }\n\n /**\n * Insert new block into _blocks\n *\n * @param {String} toolName — plugin name, by default method inserts initial block type\n * @param {Object} data — plugin data\n * @param {Object} settings - default settings\n *\n * @return {Block}\n */\n insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n let newIndex = ++this.currentBlockIndex;\n let block = this.composeBlock(toolName, data, settings);\n\n this._blocks[newIndex] = block;\n return block;\n }\n\n /**\n * Always inserts at the end\n * @return {Block}\n */\n insertAtEnd() {\n /**\n * Define new value for current block index\n */\n this.currentBlockIndex = this.blocks.length - 1;\n\n /**\n * Insert initial typed block\n */\n return this.insert();\n }\n\n /**\n * Merge two blocks\n * @param {Block} targetBlock - previous block will be append to this block\n * @param {Block} blockToMerge - block that will be merged with target block\n *\n * @return {Promise} - the sequence that can be continued\n */\n mergeBlocks(targetBlock, blockToMerge) {\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n return Promise.resolve()\n .then( () => {\n if (blockToMerge.isEmpty) {\n return;\n }\n\n return blockToMerge.data\n .then((blockToMergeInfo) => {\n targetBlock.mergeWith(blockToMergeInfo.data);\n });\n })\n .then( () => {\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n });\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n removeBlock(index) {\n if (!index) {\n index = this.currentBlockIndex;\n }\n this._blocks.remove(index);\n\n /**\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\n */\n if (!this.blocks.length) {\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n }\n\n /**\n * Split current Block\n * 1. Extract content from Caret position to the Block`s end\n * 2. Insert a new Block below current one with extracted content\n *\n * @return {Block}\n */\n split() {\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\n wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n let data = {\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\n };\n\n /**\n * Renew current Block\n * @type {Block}\n */\n return this.insert(this.config.initialBlock, data);\n }\n\n /**\n * Replace current working block\n *\n * @param {String} toolName — plugin name\n * @param {Object} data — plugin data\n *\n * @return {Block}\n */\n replace(toolName, data = {}) {\n let block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * returns last Block\n * @return {Block}\n */\n get lastBlock() {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n getBlockByIndex(index) {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n getBlock(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n get currentBlock() {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n get nextBlock() {\n let isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\n\n if (isLastBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex + 1];\n }\n\n /**\n * Return first Block with inputs after current Block\n *\n * @returns {Block | undefined}\n */\n get nextContentfulBlock() {\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\n\n return nextBlocks.find(block => !!block.inputs.length);\n }\n\n /**\n * Return first Block with inputs before current Block\n *\n * @returns {Block | undefined}\n */\n get previousContentfulBlock() {\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\n\n return previousBlocks.find(block => !!block.inputs.length);\n }\n\n /**\n * Returns previous Block instance\n * @return {Block|null}\n */\n get previousBlock() {\n let isFirstBlock = this.currentBlockIndex === 0;\n\n if (isFirstBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex - 1];\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n highlightCurrentNode() {\n /**\n * Remove previous selected Block's state\n */\n this.clearHighlightings();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.selected = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n clearHighlightings() {\n this.blocks.forEach( block => block.selected = false);\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n get blocks() {\n return this._blocks.array;\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Element|Text} childNode - look ahead from this node.\n * @param {string} caretPosition - position where to set caret\n * @throws Error - when passed Node is not included at the Block\n */\n setCurrentBlockByChildNode(childNode, caretPosition = 'default') {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock);\n\n this.Editor.Caret.setToInput(childNode, caretPosition);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Return block which contents passed node\n *\n * @param {Node} childNode\n * @return {Block}\n */\n getBlockByChildNode(childNode) {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const firstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n return this.blocks.find(block => block.holder === firstLevelBlock);\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n swap(fromIndex, toIndex) {\n /** Move up current Block */\n this._blocks.swap(fromIndex, toIndex);\n\n /** Now actual block moved up so that current block index decreased */\n this.currentBlockIndex = toIndex;\n }\n\n /**\n * Sets current Block Index -1 which means unknown\n * and clear highlightings\n */\n dropPointer() {\n this.currentBlockIndex = -1;\n this.clearHighlightings();\n }\n\n /**\n * Clears Editor\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\n * we don't need to add empty initial block\n * 2) in api.blocks.clear we should add empty block\n */\n clear(needAddInitialBlock = false) {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n};\n\n/**\n * @class Blocks\n * @classdesc Class to work with Block instances array\n *\n * @private\n *\n * @property {HTMLElement} workingArea — editor`s working node\n *\n */\nclass Blocks {\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push back new Block\n *\n * @param {Block} block\n */\n push(block) {\n this.blocks.push(block);\n this.workingArea.appendChild(block.holder);\n }\n\n /**\n * Swaps blocks with indexes first and second\n * @param {Number} first - first block index\n * @param {Number} second - second block index\n */\n swap(first, second) {\n let secondBlock = this.blocks[second];\n\n /**\n * Change in DOM\n */\n $.swap(this.blocks[first].holder, secondBlock.holder);\n\n /**\n * Change in array\n */\n this.blocks[second] = this.blocks[first];\n this.blocks[first] = secondBlock;\n }\n\n /**\n * Insert new Block at passed index\n *\n * @param {Number} index — index to insert Block\n * @param {Block} block — Block to insert\n * @param {Boolean} replace — it true, replace block on given index\n */\n insert(index, block, replace = false) {\n if (!this.length) {\n this.push(block);\n return;\n }\n\n if (index > this.length) {\n index = this.length;\n }\n\n if (replace) {\n this.blocks[index].holder.remove();\n }\n\n let deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n let previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n let nextBlock = this.blocks[index + 1];\n\n if (nextBlock) {\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\n } else {\n this.workingArea.appendChild(block.holder);\n }\n }\n }\n\n /**\n * Remove block\n * @param {Number|null} index\n */\n remove(index) {\n if (isNaN(index)) {\n index = this.length - 1;\n }\n\n this.blocks[index].holder.remove();\n this.blocks.splice(index, 1);\n }\n\n /**\n * Remove all blocks\n */\n removeAll() {\n this.workingArea.innerHTML = '';\n this.blocks.length = 0;\n }\n\n /**\n * Insert Block after passed target\n *\n * @todo decide if this method is necessary\n *\n * @param {Block} targetBlock — target after wich Block should be inserted\n * @param {Block} newBlock — Block to insert\n */\n insertAfter(targetBlock, newBlock) {\n let index = this.blocks.indexOf(targetBlock);\n\n this.insert(index + 1, newBlock);\n }\n\n /**\n * Get Block by index\n *\n * @param {Number} index — Block index\n * @returns {Block}\n */\n get(index) {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n indexOf(block) {\n return this.blocks.indexOf(block);\n }\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n get length() {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n get array() {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n get nodes() {\n return _.array(this.workingArea.children);\n }\n\n /**\n * Proxy trap to implement array-like setter\n *\n * @example\n * blocks[0] = new Block(...)\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — block index\n * @param {Block} block — Block to set\n * @returns {Boolean}\n */\n static set(instance, index, block) {\n if (isNaN(Number(index))) {\n return false;\n }\n\n instance.insert(index, block);\n\n return true;\n }\n\n /**\n * Proxy trap to implement array-like getter\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — Block index\n * @returns {Block|*}\n */\n static get(instance, index) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\n }\n}\n","/**\n * @class Caret\n * @classdesc Contains methods for working Caret\n *\n * Uses Range methods to manipulate with caret\n *\n * @module Caret\n *\n * @version 2.0.0\n */\n\nimport Selection from '../selection';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n static get CSS() {\n return {\n shadowCaret: 'cdx-shadow-caret'\n };\n };\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n static get positions() {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default'\n };\n }\n\n /**\n * Method gets Block instance and puts caret to the text node with offset\n * There two ways that method applies caret position:\n * - first found text node: sets at the beginning, but you can pass an offset\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\n *\n * @param {Block} block - Block class\n * @param {String} position - position where to set caret. If default - leave default behaviour and apply offset if it's passed\n * @param {Number} offset - caret offset regarding to the text node\n */\n setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\n const {BlockManager} = this.Editor;\n let element;\n\n switch(position) {\n case Caret.positions.START:\n element = block.firstInput;\n break;\n case Caret.positions.END:\n element = block.lastInput;\n break;\n default:\n element = block.currentInput;\n }\n\n if (!element) {\n return;\n }\n\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\n const contentLength = $.getContentLength(nodeToSet);\n\n switch (true) {\n case position === Caret.positions.START:\n offset = 0;\n break;\n case position === Caret.positions.END:\n case offset > contentLength:\n offset = contentLength;\n break;\n }\n\n /**\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\n */\n _.delay( () => {\n this.set(nodeToSet, offset);\n }, 20)();\n\n BlockManager.setCurrentBlockByChildNode(block.holder);\n BlockManager.currentBlock.currentInput = element;\n }\n\n /**\n * Set caret to the current input of current Block.\n *\n * @param {HTMLElement} input - input where caret should be set\n * @param {String} position - position of the caret. If default - leave default behaviour and apply offset if it's passed\n * @param {number} offset - caret offset regarding to the text node\n */\n setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet, offset);\n }\n }\n\n currentBlock.currentInput = input;\n }\n\n /**\n * Creates Document Range and sets caret to the element with offset\n * @param {Element} element - target node.\n * @param {Number} offset - offset\n */\n set( element, offset = 0) {\n const range = document.createRange(),\n selection = Selection.get();\n\n /** if found deepest node is native input */\n if ($.isNativeInput(element)) {\n element.focus();\n element.selectionStart = element.selectionEnd = offset;\n return;\n }\n\n range.setStart(element, offset);\n range.setEnd(element, offset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n\n /** If new cursor position is not visible, scroll to it */\n const {top, bottom} = range.getBoundingClientRect();\n const {innerHeight} = window;\n\n if (top < 0) window.scrollBy(0, top);\n if (bottom > innerHeight) window.scrollBy(0, bottom - innerHeight);\n };\n\n /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n setToTheLastBlock() {\n let lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) return;\n\n /**\n * If last block is empty and it is an initialBlock, set to that.\n * Otherwise, append new empty block and set to that\n */\n if (lastBlock.isEmpty) {\n this.setToBlock(lastBlock);\n } else {\n const newBlock = this.Editor.BlockManager.insertAtEnd();\n\n this.setToBlock(newBlock);\n }\n }\n\n /**\n * Extract content fragment of current Block from Caret position to the end of the Block\n */\n extractFragmentFromCaretPosition() {\n let selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n let range = selectRange.cloneRange(true);\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\n }\n\n /**\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\n * Then you can check it for emptiness\n *\n * @example\n * <div contenteditable>\n * <p></p> |\n * <p></p> | left first-level siblings\n * <p></p> |\n * <blockquote><a><b>adaddad</b><a><blockquote> <-- passed node for example <b>\n * <p></p> |\n * <p></p> | right first-level siblings\n * <p></p> |\n * </div>\n *\n * @return {Element[]}\n */\n getHigherLevelSiblings(from, direction ) {\n let current = from,\n siblings = [];\n\n /**\n * Find passed node's firs-level parent (in example - blockquote)\n */\n while (current.parentNode && current.parentNode.contentEditable !== 'true') {\n current = current.parentNode;\n }\n\n let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\n\n /**\n * Find all left/right siblings\n */\n while (current[sibling]) {\n current = current[sibling];\n siblings.push(current);\n }\n\n return siblings;\n }\n\n /**\n * Set's caret to the next Block or Tool`s input\n * Before moving caret, we should check if caret position is at the end of Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the end\n *\n * @return {Boolean}\n */\n navigateNext(force = false) {\n const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;\n const {nextInput} = currentBlock;\n\n if (!nextContentfulBlock && !nextInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n return true;\n }\n\n if (this.isAtEnd) {\n /** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */\n if (!nextInput) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n } else {\n this.setToInput(nextInput, Caret.positions.START);\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Set's caret to the previous Tool`s input or Block\n * Before moving caret, we should check if caret position is start of the Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the start\n *\n * @return {Boolean}\n */\n navigatePrevious(force = false) {\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\n const {previousInput} = currentBlock || {};\n\n if (!previousContentfulBlock && !previousInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n }\n\n if (this.isAtStart) {\n /** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */\n if (!previousInput) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n } else {\n this.setToInput(previousInput, Caret.positions.END);\n }\n return true;\n }\n\n return false;\n }\n\n /**\n * Get's deepest first node and checks if offset is zero\n * @return {boolean}\n */\n get isAtStart() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let selection = Selection.get(),\n anchorNode = selection.anchorNode,\n firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(firstNode)) {\n return firstNode.selectionEnd === 0;\n }\n\n /**\n * Workaround case when caret in the text like \" |Hello!\"\n * selection.anchorOffset is 1, but real caret visible position is 0\n * @type {number}\n */\n let firstLetterPosition = anchorNode.textContent.search(/\\S/);\n\n if (firstLetterPosition === -1) { // empty text\n firstLetterPosition = 0;\n }\n\n /**\n * In case of\n * <div contenteditable>\n * <p><b></b></p> <-- first (and deepest) node is <b></b>\n * |adaddad <-- anchor node\n * </div>\n */\n if ($.isEmpty(firstNode)) {\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'left'),\n nothingAtLeft = leftSiblings.every( node => $.isEmpty(node) );\n\n\n\n if (nothingAtLeft && selection.anchorOffset === firstLetterPosition) {\n return true;\n }\n }\n\n /**\n * We use <= comparison for case:\n * \"| Hello\" <--- selection.anchorOffset is 0, but firstLetterPosition is 1\n */\n return firstNode === null || anchorNode === firstNode && selection.anchorOffset <= firstLetterPosition;\n }\n\n /**\n * Get's deepest last node and checks if offset is last node text length\n * @return {boolean}\n */\n get isAtEnd() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let selection = Selection.get(),\n anchorNode = selection.anchorNode,\n lastNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput, true);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(lastNode)) {\n return lastNode.selectionEnd === lastNode.value.length;\n }\n\n /**\n * In case of\n * <div contenteditable>\n * adaddad| <-- anchor node\n * <p><b></b></p> <-- first (and deepest) node is <b></b>\n * </div>\n */\n if ($.isEmpty(lastNode)) {\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'right'),\n nothingAtRight = leftSiblings.every( node => $.isEmpty(node) );\n\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\n return true;\n }\n }\n\n /**\n * Workaround case:\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\n * Why not regular .trim():\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\n */\n let rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\n\n /**\n * We use >= comparison for case:\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\n */\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\n }\n\n /**\n * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n createShadow(element) {\n let shadowCaret = document.createElement('span');\n\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\n element.insertAdjacentElement('beforeEnd', shadowCaret);\n }\n\n /**\n * Restores caret position\n * @param {Node} element\n */\n restoreCaret(element) {\n let shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\n\n if (!shadowCaret) {\n return;\n }\n\n /**\n * After we set the caret to the required place\n * we need to clear shadow caret\n *\n * - make new range\n * - select shadowed span\n * - use extractContent to remove it from DOM\n */\n let sel = new Selection();\n\n sel.expandToTag(shadowCaret);\n\n setTimeout(() => {\n let newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\n}\n","import SelectionUtils from '../selection';\n\ndeclare var Module: any;\n\nexport default class DragNDrop extends Module {\n\n /**\n * If drag has been started at editor, we save it\n *\n * @type Boolean\n * @private\n */\n private isStartedAtEditor = false;\n\n /**\n * Bind events\n *\n * @private\n */\n public prepare(): void {\n this.bindEvents();\n }\n\n /**\n * Add drag events listeners to editor zone\n * @private\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\n\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\n this.isStartedAtEditor = true;\n }\n\n this.Editor.InlineToolbar.close();\n });\n\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\n }\n\n /**\n * Handle drop event\n *\n * @param {DragEvent} dropEvent\n */\n private processDrop = async (dropEvent: DragEvent): Promise<void> => {\n const {\n BlockManager,\n Paste,\n } = this.Editor;\n\n dropEvent.preventDefault();\n\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\n document.execCommand('delete');\n }\n\n this.isStartedAtEditor = false;\n\n /**\n * Try to set current block by drop target.\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\n */\n try {\n BlockManager.setCurrentBlockByChildNode(dropEvent.target, 'end');\n } catch (e) {\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, 'end');\n }\n\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\n }\n}\n","/**\n * @module eventDispatcher\n *\n * Has two important methods:\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\n * - {Function} emit - fires all subscribers with data\n * - {Function off - unsubsribes callback\n *\n * @version 1.0.0\n *\n * @typedef {Events} Events\n * @property {Object} subscribers - all subscribers grouped by event name\n */\nexport default class Events extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n this.subscribers = {};\n }\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n on(eventName, callback) {\n if (!(eventName in this.subscribers)) {\n this.subscribers[eventName] = [];\n }\n\n // group by events\n this.subscribers[eventName].push(callback);\n }\n\n /**\n * Emit callbacks with passed data\n *\n * @param {String} eventName - event name\n * @param {Object} data - subscribers get this data when they were fired\n */\n emit(eventName, data) {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\n let newData = currentHandler(previousData);\n\n return newData ? newData : previousData;\n }, data);\n }\n\n /**\n * Unsubsribe callback from event\n *\n * @param eventName\n * @param callback\n */\n off(eventName, callback) {\n for(let i = 0; i < this.subscribers[eventName].length; i++) {\n if (this.subscribers[eventName][i] === callback) {\n delete this.subscribers[eventName][i];\n break;\n }\n }\n }\n\n /**\n * Destroyer\n * clears subsribers list\n */\n destroy() {\n this.subscribers = null;\n }\n}\n","/**\n * Codex Editor Listeners module\n *\n * @module Listeners\n *\n * Module-decorator for event listeners assignment\n *\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Listeners} Listeners\n * @property {Array} allListeners\n */\nexport default class Listeners extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.allListeners = [];\n }\n\n /**\n * Assigns event listener on element\n *\n * @param {Element} element - DOM element that needs to be listened\n * @param {String} eventType - event type\n * @param {Function} handler - method that will be fired on event\n * @param {Boolean} useCapture - use event bubbling\n */\n on(element, eventType, handler, useCapture = false) {\n let assignedEventData = {\n element,\n eventType,\n handler,\n useCapture\n };\n\n let alreadyExist = this.findOne(element, eventType, handler);\n\n if (alreadyExist) return;\n\n this.allListeners.push(assignedEventData);\n element.addEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Removes event listener from element\n *\n * @param {Element} element - DOM element that we removing listener\n * @param {String} eventType - event type\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\n * @param {Boolean} useCapture - use event bubbling\n */\n off(element, eventType, handler, useCapture = false) {\n let existingListeners = this.findAll(element, eventType, handler);\n\n for (let i = 0; i < existingListeners.length; i++) {\n let index = this.allListeners.indexOf(existingListeners[i]);\n\n if (index > 0) {\n this.allListeners.splice(index, 1);\n }\n }\n\n element.removeEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Search method: looks for listener by passed element\n * @param {Element} element - searching element\n * @returns {Array} listeners that found on element\n */\n findByElement(element) {\n let listenersOnElement = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.element === element) {\n listenersOnElement.push(listener);\n }\n }\n\n return listenersOnElement;\n }\n\n /**\n * Search method: looks for listener by passed event type\n * @param {String} eventType\n * @return {Array} listeners that found on element\n */\n findByType(eventType) {\n let listenersWithType = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.type === eventType) {\n listenersWithType.push(listener);\n }\n }\n\n return listenersWithType;\n }\n\n /**\n * Search method: looks for listener by passed handler\n * @param {Function} handler\n * @return {Array} listeners that found on element\n */\n findByHandler(handler) {\n let listenersWithHandler = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.handler === handler) {\n listenersWithHandler.push(listener);\n }\n }\n\n return listenersWithHandler;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Element|null}\n */\n findOne(element, eventType, handler) {\n let foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n findAll(element, eventType, handler) {\n let found,\n foundByElements = element ? this.findByElement(element) : [];\n // foundByEventType = eventType ? this.findByType(eventType) : [],\n // foundByHandler = handler ? this.findByHandler(handler) : [];\n\n if (element && eventType && handler) {\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByElements.filter( event => event.eventType === eventType);\n } else {\n found = foundByElements;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n removeAll() {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n}\n","/**\n * @module ModificationsObserver\n *\n * Handles any mutations\n * and gives opportunity to handle outside\n */\n\nimport IEditorConfig from '../interfaces/editor-config';\n\ndeclare const Module: any;\ndeclare const _: any;\n\nexport default class ModificationsObserver extends Module {\n\n /**\n * Debounce Timer\n * @type {number}\n */\n public static readonly DebounceTimer = 450;\n\n /**\n * Used to prevent several mutation callback execution\n * @type {Function}\n */\n private mutationDebouncer = _.debounce( () => {\n this.config.onChange.call();\n }, ModificationsObserver.DebounceTimer);\n\n /**\n * Constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Clear timeout and set null to mutationDebouncer property\n */\n public destroy() {\n this.mutationDebouncer = null;\n }\n\n /**\n * Preparation method\n * @return {Promise<void>}\n */\n public async prepare(): Promise<void> {\n /**\n * wait till Browser render Editor's Blocks\n */\n window.setTimeout( () => {\n this.setObserver();\n }, 1000);\n }\n\n /**\n * setObserver\n *\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\n * so that User can handle outside from API\n */\n private setObserver(): void {\n const {Listeners, UI} = this.Editor;\n\n /**\n * Set Listener to the Editor <div> element that holds only Blocks\n */\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\n this.mutationDebouncer();\n }, false);\n }\n}\n","import Module from '../__module';\n\n/**\n * Use external package module for notifications\n *\n * @see https://github.com/codex-team/js-notifier\n */\nimport notifier, {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\n/**\n * Notifier module\n */\nexport default class Notifier extends Module {\n\n /**\n * Show web notification\n *\n * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} options\n */\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n notifier.show(options);\n }\n}\n","import IBlockToolData from '../interfaces/tools/block-tool';\nimport IEditorConfig from '../interfaces/editor-config';\nimport CaretClass from './caret';\nimport SelectionUtils from '../selection';\n\ndeclare const Module: any;\ndeclare const $: any;\ndeclare const _: any;\n\n/**\n * Tag substitute object.\n *\n * @param {string} tool - name of related Tool\n * @param {Function} handler - callback to handle pasted element\n */\ninterface ITagSubstitute {\n tool: string;\n handler: (element: HTMLElement) => IBlockToolData;\n}\n\n/**\n * Pattern substitute object.\n *\n * @param {string} key - pattern`s key\n * @param {RegExp} pattern - pasted pattern\n * @param {Function} handler - callback to handle pasted pattern\n * @param {string} tool - name of related Tool\n */\ninterface IPatternSubstitute {\n key: string;\n pattern: RegExp;\n handler: (text: string, key: string) => IBlockToolData;\n tool: string;\n}\n\n/**\n * Files` types substitutions object.\n *\n * @param {string[]} extensions - array of extenstions Tool can handle\n * @param {string[]} mimeTypes - array of MIME types Tool can handle\n * @param {Function} handler - callback to handle pasted File\n */\ninterface IFilesSubstitution {\n extensions: string[];\n mimeTypes: string[];\n handler: (file: File) => IBlockToolData;\n}\n\n/**\n * Processed paste data object.\n *\n * @param {string} tool - name of related Tool\n * @param {HTMLElement} content - processed pasted content\n * @param {boolean} isBlock - true if content should be inserted as new Block\n * @param {Function} handler - callback that returns pasted data in IBlockToolData format\n */\ninterface IPasteData {\n tool: string;\n content: HTMLElement;\n isBlock: boolean;\n handler: (content: HTMLElement|string, patten?: RegExp) => IBlockToolData;\n}\n\n/**\n * Tool onPaste configuration object\n */\ninterface IPasteConfig {\n tags?: string[];\n handler?: (element: HTMLElement) => IBlockToolData;\n patterns?: {[key: string]: RegExp};\n patternHandler?: (text: string, key: string) => IBlockToolData;\n files?: {extensions?: string[], mimeTypes?: string[]};\n fileHandler?: (file: File) => IBlockToolData;\n}\n\n/**\n * @class Paste\n * @classdesc Contains methods to handle paste on editor\n *\n * @module Paste\n *\n * @version 2.0.0\n */\nexport default class Paste extends Module {\n\n /** If string`s length is greater than this number we don't check paste patterns */\n public static readonly PATTERN_PROCESSING_MAX_LENGTH = 450;\n\n /**\n * Tags` substitutions parameters\n */\n private toolsTags: {[tag: string]: ITagSubstitute} = {};\n\n /**\n * Store tags to substitute by tool name\n */\n private tagsByTool: {[tools: string]: string[]} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: IPatternSubstitute[] = [];\n\n /** Files` substitutions parameters */\n private toolsFiles: {\n [tool: string]: IFilesSubstitution,\n } = {};\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Set onPaste callback and collect tools` paste configurations\n *\n * @public\n */\n public async prepare(): Promise<void> {\n this.setCallback();\n this.processTools();\n }\n\n /**\n * Handle pasted or dropped data transfer object\n *\n * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object\n */\n public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise<void> {\n const { Sanitizer } = this.Editor;\n\n if (dataTransfer.types.includes('Files')) {\n await this.processFiles(dataTransfer.items);\n return;\n }\n\n const plainData = dataTransfer.getData('text/plain');\n let htmlData = dataTransfer.getData('text/html');\n\n /**\n * If text was drag'n'dropped, wrap content with P tag to insert it as the new Block\n */\n if (isDragNDrop && plainData.trim() && htmlData.trim()) {\n htmlData = '<p>' + ( htmlData.trim() ? htmlData : plainData ) + '</p>';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.getAllInlineToolsConfig());\n\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (this.config.initialBlock === name && !toolPasteConfig.handler) {\n _.log(\n `«${name}» Tool must provide a paste handler.`,\n 'warn',\n );\n }\n\n if (!toolPasteConfig.handler) {\n return;\n }\n\n if (typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n\n this.tagsByTool[name] = tags.map((t) => t.toUpperCase());\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: IPasteConfig): void {\n\n const {fileHandler, files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!fileHandler || (!extensions && !mimeTypes)) {\n return;\n }\n\n if (typeof fileHandler !== 'function') {\n _.log(`Drop handler for «${name}» Tool should be a function.`);\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n handler: fileHandler,\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n if (typeof toolPasteConfig.patternHandler !== 'function') {\n _.log(\n `Pattern parser for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n handler: toolPasteConfig.patternHandler,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise<void> => {\n const {\n Editor: {Sanitizer, BlockManager, Tools, Caret},\n } = this;\n\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {DataTransferItemList} items - pasted or dropped items\n */\n private async processFiles(items: DataTransferItemList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, data: IBlockToolData}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.replace(data.type, data.data);\n return;\n }\n\n BlockManager.insert(data.type, data.data);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {DataTransferItem} item\n */\n private async processFile(item: DataTransferItem) {\n if (item.kind === 'string') {\n return;\n }\n\n const file = item.getAsFile();\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool, {handler}] = foundConfig;\n return {\n data: await handler(file),\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n /**\n * If caret not at the end of of the Block and there is no selection,\n * we split the Block and insert content at the middle.\n */\n if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) {\n this.splitBlock();\n }\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {IPasteData[]}\n */\n private processHTML(innerHTML: string): IPasteData[] {\n const {Tools, Sanitizer} = this.Editor,\n initialTool = this.config.initialBlock,\n wrapper = $.make('DIV');\n\n wrapper.innerHTML = innerHTML;\n\n const nodes = this.getNodes(wrapper);\n\n return nodes\n .map((node) => {\n let content, tool = initialTool, isBlock = false;\n\n switch (node.nodeType) {\n /** If node is a document fragment, use temp wrapper to get innerHTML */\n case Node.DOCUMENT_FRAGMENT_NODE:\n content = $.make('div');\n content.appendChild(node);\n break;\n\n /** If node is an element, then there might be a substitution */\n case Node.ELEMENT_NODE:\n content = node as HTMLElement;\n isBlock = true;\n\n if (this.toolsTags[content.tagName]) {\n tool = this.toolsTags[content.tagName].tool;\n }\n break;\n }\n\n const {handler, tags} = Tools.blockTools[tool].onPaste;\n\n const toolTags = tags.reduce((result, tag) => {\n result[tag.toLowerCase()] = {};\n\n return result;\n }, {});\n const customConfig = Object.assign({}, toolTags, Sanitizer.getInlineToolsConfig(tool));\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {IPasteData[]}\n */\n private processPlain(plain: string): IPasteData[] {\n const {initialBlock} = this.config as {initialBlock: string},\n {Tools} = this.Editor;\n\n if (!plain) {\n return [];\n }\n\n const tool = initialBlock,\n handler = Tools.blockTools[tool].onPaste.handler;\n\n return plain\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n return {content, tool, isBlock: false, handler};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {IPasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: IPasteData): Promise<void> {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret, Sanitizer} = this.Editor,\n {content, tool} = dataToInsert;\n\n if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) {\n const blockData = await this.processPattern(content.textContent);\n\n if (blockData) {\n this.splitBlock();\n let insertedBlock;\n\n const sanitizeConfig = Sanitizer.composeToolConfig(tool);\n\n if (!_.isEmpty(sanitizeConfig)) {\n blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);\n }\n\n if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n const currentToolSanitizeConfig = Sanitizer.getInlineToolsConfig(BlockManager.currentBlock.name);\n\n /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, Sanitizer.clean(content.innerHTML, currentToolSanitizeConfig));\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: IBlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{data: IBlockToolData, tool: string}> {\n const pattern = this.toolsPatterns.find((substitute) => {\n const execResult = substitute.pattern.exec(text);\n\n if (!execResult) {\n return false;\n }\n\n return text === execResult.shift();\n });\n\n const data = pattern && await pattern.handler(text, pattern.key);\n\n return data && {\n data,\n tool: pattern.tool,\n };\n }\n\n /**\n *\n * @param {IPasteData} data\n * @param {Boolean} canReplaceCurrentBlock - if true and is current Block is empty, will replace current Block\n * @returns {Promise<void>}\n */\n private async insertBlock(data: IPasteData, canReplaceCurrentBlock: boolean = false): Promise<void> {\n const blockData = await data.handler(data.content),\n {BlockManager, Caret} = this.Editor,\n {currentBlock} = BlockManager;\n\n if (canReplaceCurrentBlock && currentBlock && currentBlock.isEmpty) {\n BlockManager.replace(data.tool, blockData);\n return;\n }\n\n const Block = BlockManager.insert(data.tool, blockData);\n\n Caret.setToBlock(Block);\n }\n\n /**\n * Split current block if paste isn't in the end of the block\n */\n private splitBlock() {\n const {BlockManager, Caret} = this.Editor;\n\n if (!BlockManager.currentBlock) {\n return;\n }\n\n /** If we paste into middle of the current block:\n * 1. Split\n * 2. Navigate to the first part\n */\n if (!BlockManager.currentBlock.isEmpty && !Caret.isAtEnd) {\n BlockManager.split();\n BlockManager.currentBlockIndex--;\n }\n }\n\n /**\n * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n const {tool = ''} = this.toolsTags[element.tagName] || {};\n const toolTags = this.tagsByTool[tool] || [];\n\n const isSubstitutable = tags.includes(element.tagName);\n const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase());\n const containsAnotherToolTags = Array\n .from(element.children)\n .some(\n ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName),\n );\n\n const containsBlockElements = Array.from(element.children).some(\n ({tagName}) => $.blockElements.includes(tagName.toLowerCase()),\n );\n\n /** Append inline elements to previous fragment */\n if (!isBlockElement && !isSubstitutable) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (\n (isSubstitutable && !containsAnotherToolTags) ||\n (isBlockElement && !containsBlockElements && !containsAnotherToolTags )\n ) {\n return [...nodes, destNode, element];\n }\n break;\n\n /**\n * If node is text node, wrap it with DocumentFragment\n */\n case Node.TEXT_NODE:\n destNode.appendChild(node);\n return [...nodes, destNode];\n\n default:\n return [...nodes, destNode];\n }\n\n return [...nodes, ...Array.from(node.childNodes).reduce(reducer, [])];\n };\n\n return children.reduce(reducer, []);\n }\n}\n","/**\n * Codex Editor Renderer Module\n *\n * @module Renderer\n * @author CodeX Team\n *\n * @version 2.0.0\n */\nexport default class Renderer extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * @typedef {Object} RendererBlocks\n * @property {String} type - tool name\n * @property {Object} data - tool data\n */\n\n /**\n * @example\n *\n * blocks: [\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Hello from Codex!'\n * }\n * },\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Leave feedback if you like it!'\n * }\n * },\n * ]\n *\n */\n\n /**\n * Make plugin blocks from array of plugin`s data\n * @param {RendererBlocks[]} blocks\n */\n render(blocks) {\n let chainData = [];\n\n for (let i = 0; i < blocks.length; i++) {\n chainData.push({\n function: () => this.insertBlock(blocks[i])\n });\n }\n\n return _.sequence(chainData);\n }\n\n /**\n * Get plugin instance\n * Add plugin instance to BlockManager\n * Insert block to working zone\n *\n * @param {Object} item\n * @returns {Promise.<T>}\n * @private\n */\n insertBlock(item) {\n let tool = item.type,\n data = item.data,\n settings = item.settings;\n\n if (tool in this.Editor.Tools.available) {\n try {\n this.Editor.BlockManager.insert(tool, data, settings);\n } catch (error) {\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\n Promise.reject(error);\n }\n } else {\n /**\n * @todo show warning notification message\n *\n * `${tool} blocks was skipped.`\n */\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\n }\n\n return Promise.resolve();\n }\n}\n","/**\n * CodeX Sanitizer\n *\n * @module Sanitizer\n * Clears HTML from taint tags\n *\n * @version 2.0.0\n *\n * @example\n * Module can be used within two ways:\n * 1) When you have an instance\n * - this.Editor.Sanitizer.clean(yourTaintString);\n * 2) As static method\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\n *\n * {@link SanitizerConfig}\n */\n\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\n/**\n * @typedef {Object} SanitizerConfig\n * @property {Object} tags - define tags restrictions\n *\n * @example\n *\n * tags : {\n * p: true,\n * a: {\n * href: true,\n * rel: \"nofollow\",\n * target: \"_blank\"\n * }\n * }\n */\n\ndeclare const Module: any;\ndeclare const _: any;\n\nimport HTMLJanitor from 'html-janitor';\nimport IBlockToolData from '../interfaces/tools/block-tool-data';\nimport IInlineTool from '../interfaces/tools/inline-tool';\n\nexport default class Sanitizer extends Module {\n /**\n * Memoize tools config\n */\n private configCache: {[toolName: string]: ISanitizerConfig} = {};\n\n /**\n * Cached inline tools config\n */\n private inlineToolsConfigCache: ISanitizerConfig | null = null;\n\n /**\n * Initializes Sanitizer module\n * Sets default configuration if custom not exists\n *\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\n *\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Sanitize Blocks\n *\n * Enumerate blocks and clean data\n *\n * @param {{tool, data: IBlockToolData}[]} blocksData[]\n */\n public sanitizeBlocks(\n blocksData: Array<{tool: string, data: IBlockToolData}>,\n ): Array<{tool: string, data: IBlockToolData}> {\n\n return blocksData.map((block) => {\n const toolConfig = this.composeToolConfig(block.tool);\n\n if (_.isEmpty(toolConfig)) {\n return block;\n }\n\n block.data = this.deepSanitize(block.data, toolConfig);\n\n return block;\n });\n }\n\n /**\n * Method recursively reduces Block's data and cleans with passed rules\n *\n * @param {IBlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string\n * @param {ISanitizerConfig} rules - object with sanitizer rules\n */\n public deepSanitize(dataToSanitize: any, rules: ISanitizerConfig): any {\n /**\n * BlockData It may contain 3 types:\n * - Array\n * - Object\n * - Primitive\n */\n if (Array.isArray(dataToSanitize)) {\n /**\n * Array: call sanitize for each item\n */\n return this.cleanArray(dataToSanitize, rules);\n } else if (typeof dataToSanitize === 'object') {\n /**\n * Objects: just clean object deeper.\n */\n return this.cleanObject(dataToSanitize, rules);\n } else {\n /**\n * Primitives (number|string|boolean): clean this item\n *\n * Clean only strings\n */\n if (typeof dataToSanitize === 'string') {\n return this.cleanOneItem(dataToSanitize, rules);\n }\n return dataToSanitize;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * Method allows to use default config\n *\n * @param {string} taintString - taint string\n * @param {SanitizerConfig} customConfig - allowed tags\n *\n * @return {string} clean HTML\n */\n public clean(taintString: string, customConfig: ISanitizerConfig = {}): string {\n\n const sanitizerConfig = {\n tags: customConfig,\n };\n\n /**\n * API client can use custom config to manage sanitize process\n */\n const sanitizerInstance = this.createHTMLJanitorInstance(sanitizerConfig);\n return sanitizerInstance.clean(taintString);\n }\n\n /**\n * Merge with inline tool config\n *\n * @param {string} toolName\n * @param {ISanitizerConfig} toolRules\n * @return {ISanitizerConfig}\n */\n public composeToolConfig(toolName: string): ISanitizerConfig {\n /**\n * If cache is empty, then compose tool config and put it to the cache object\n */\n if (this.configCache[toolName]) {\n return this.configCache[toolName];\n }\n\n const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;\n const toolClass = this.Editor.Tools.available[toolName];\n const baseConfig = this.getInlineToolsConfig(toolName);\n\n /**\n * If Tools doesn't provide sanitizer config or it is empty\n */\n if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {\n return baseConfig;\n }\n\n const toolRules = toolClass.sanitize;\n\n const toolConfig = {};\n for (const fieldName in toolRules) {\n if (toolRules.hasOwnProperty(fieldName)) {\n const rule = toolRules[fieldName];\n if (typeof rule === 'object') {\n toolConfig[fieldName] = Object.assign({}, baseConfig, rule);\n } else {\n toolConfig[fieldName] = rule;\n }\n }\n }\n this.configCache[toolName] = toolConfig;\n\n return toolConfig;\n }\n\n /**\n * Returns Sanitizer config\n * When Tool's \"inlineToolbar\" value is True, get all sanitizer rules from all tools,\n * otherwise get only enabled\n */\n public getInlineToolsConfig(name: string): ISanitizerConfig {\n const {Tools} = this.Editor;\n\n const toolsConfig = Tools.getToolSettings(name),\n enableInlineTools = toolsConfig.inlineToolbar || [];\n\n let config = {};\n\n if (typeof enableInlineTools === 'boolean' && enableInlineTools) {\n /**\n * getting all tools sanitizer rule\n */\n config = this.getAllInlineToolsConfig();\n } else {\n /**\n * getting only enabled\n */\n enableInlineTools.map( (inlineToolName) => {\n config = Object.assign(config, Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG]);\n });\n }\n\n return config;\n }\n\n /**\n * Return general config for all inline tools\n */\n public getAllInlineToolsConfig(): ISanitizerConfig {\n const {Tools} = this.Editor;\n\n if (this.inlineToolsConfigCache) {\n return this.inlineToolsConfigCache;\n }\n\n const config: ISanitizerConfig = {};\n\n Object.entries(Tools.inline)\n .forEach( ([name, inlineTool]: [string, IInlineTool]) => {\n Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]);\n });\n\n this.inlineToolsConfigCache = config;\n\n return this.inlineToolsConfigCache;\n }\n\n /**\n * Clean array\n * @param {array} array - [1, 2, {}, []]\n * @param {object} ruleForItem\n */\n private cleanArray(array: any[], ruleForItem: ISanitizerConfig): any[] {\n return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem));\n }\n\n /**\n * Clean object\n * @param {object} object - {level: 0, text: 'adada', items: [1,2,3]}}\n * @param {object} rules - { b: true } or true|false\n * @return {object}\n */\n private cleanObject(object: any, rules: ISanitizerConfig|{[field: string]: ISanitizerConfig}): any {\n const cleanData = {};\n\n for (const fieldName in object) {\n if (!object.hasOwnProperty(fieldName)) {\n continue;\n }\n\n const currentIterationItem = object[fieldName];\n\n /**\n * Get object from config by field name\n * - if it is a HTML Janitor rule, call with this rule\n * - otherwise, call with parent's config\n */\n const ruleForItem = this.isRule(rules[fieldName] as ISanitizerConfig) ? rules[fieldName] : rules;\n\n cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as ISanitizerConfig);\n }\n return cleanData;\n }\n\n /**\n * @param {string} taintString\n * @param {ISanitizerConfig|boolean} rule\n * @return {string}\n */\n private cleanOneItem(taintString: string, rule: ISanitizerConfig|boolean): string {\n if (typeof rule === 'object') {\n return this.clean(taintString, rule);\n } else if (rule === false) {\n return this.clean(taintString, {});\n } else {\n return taintString;\n }\n }\n\n /**\n * Check if passed item is a HTML Janitor rule:\n * { a : true }, {}, false, true, function(){} — correct rules\n * undefined, null, 0, 1, 2 — not a rules\n * @param config\n */\n private isRule(config: ISanitizerConfig): boolean {\n return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function';\n }\n\n /**\n * If developer uses editor's API, then he can customize sanitize restrictions.\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\n * At least, if there is no config overrides, that API uses Default configuration\n *\n * @uses https://www.npmjs.com/package/html-janitor\n *\n * @param {SanitizerConfig} config - sanitizer extension\n */\n private createHTMLJanitorInstance(config: {tags: ISanitizerConfig}): any {\n if (config) {\n return new HTMLJanitor(config);\n }\n return null;\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Object} SavedData\n * @property {Date} time - saving proccess time\n * @property {Object} blocks - extracted data\n * @property {String} version - CodexEditor version\n */\ninterface SavedData {\n time: number;\n blocks: object[];\n version: string;\n}\n\n/**\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\n *\n * @typedef {Saver} Saver\n * @property {Element} html - Editor HTML content\n * @property {String} json - Editor JSON output\n */\n\ndeclare const Module: any;\ndeclare const VERSION: string;\n\nexport default class Saver extends Module {\n /**\n * @constructor\n * @param config\n */\n constructor({config}) {\n super({config});\n\n this.output = null;\n this.blocksData = [];\n }\n\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {SavedData}\n */\n public save(): Promise<SavedData> {\n const blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n return Promise.all(chainData)\n .then((extractedData) => this.Editor.Sanitizer.sanitizeBlocks(extractedData))\n .then((allExtractedData) => this.makeOutput(allExtractedData))\n .then((outputData) => {\n return outputData;\n });\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {SavedData}\n */\n private makeOutput(allExtractedData): SavedData {\n let totalTime = 0;\n const blocks = [];\n\n console.groupCollapsed('[CodexEditor saving]:');\n\n allExtractedData.forEach((extraction) => {\n /** Group process info */\n console.log(`«${extraction.tool}» saving info`, extraction);\n totalTime += extraction.time;\n blocks.push({\n type: extraction.tool,\n data: extraction.data,\n });\n });\n\n console.log('Total', totalTime);\n console.groupEnd();\n\n return {\n time: +new Date(),\n version: VERSION,\n blocks,\n };\n }\n}\n","\nimport Shortcut from '@codexteam/shortcuts';\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\nimport IEditorConfig from '../interfaces/editor-config';\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module implements IShortcuts {\n /**\n * All registered shortcuts\n * @type {IShortcut[]}\n */\n private registeredShortcuts: IShortcut[];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.registeredShortcuts = [];\n }\n\n /**\n * Register shortcut\n * @param {IShortcut} shortcut\n */\n public add(shortcut: IShortcut): void {\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: document,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {IShortcut} shortcut\n */\n public remove(shortcut: string): void {\n // Remove\n }\n}\n","/**\n * Block Settings\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n */\nexport default class BlockSettings extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null\n };\n }\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n get events() {\n return {\n opened: 'block-settings-opened',\n closed: 'block-settings-closed',\n };\n }\n\n /**\n * Block Settings CSS\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\n */\n static get CSS() {\n return {\n // Settings Panel\n wrapper: 'ce-settings',\n wrapperOpened: 'ce-settings--opened',\n toolSettings: 'ce-settings__plugin-zone',\n defaultSettings: 'ce-settings__default-zone',\n\n button: 'ce-settings__button'\n };\n }\n\n /**\n * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n make() {\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\n\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\n\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\n }\n\n /**\n * Add Tool's settings\n */\n addToolSettings() {\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\n }\n }\n\n /**\n * Add default settings\n */\n addDefaultSettings() {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Open Block Settings pane\n */\n open() {\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\n\n /**\n * Fill Tool's settings\n */\n this.addToolSettings();\n\n /**\n * Add default settings that presents for all Blocks\n */\n this.addDefaultSettings();\n\n /** Tell to subscribers that block settings is opened */\n this.Editor.Events.emit(this.events.opened);\n }\n\n /**\n * Close Block Settings pane\n */\n close() {\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\n\n /** Clear settings */\n this.nodes.toolSettings.innerHTML = '';\n this.nodes.defaultSettings.innerHTML = '';\n\n /** Tell to subscribers that block settings is closed */\n this.Editor.Events.emit(this.events.closed);\n }\n}\n","import ITool from '../interfaces/tools/tool';\n\ndeclare var Module: any;\ndeclare var $: any;\n\nimport EditorConfig from '../interfaces/editor-config';\nimport InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport _ from '../utils';\n\n/**\n * Inline toolbar with actions that modifies selected text fragment\n *\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\n * | B i [link] [mark] |\n * |________________________|\n */\nexport default class InlineToolbar extends Module {\n\n /**\n * CSS styles\n */\n public CSS = {\n inlineToolbar: 'ce-inline-toolbar',\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\n buttonsWrapper: 'ce-inline-toolbar__buttons',\n actionsWrapper: 'ce-inline-toolbar__actions',\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonLast: 'ce-inline-tool--last',\n };\n\n /**\n * Inline Toolbar elements\n */\n private nodes = {\n wrapper: null,\n buttons: null,\n /**\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\n * For example, input for the 'link' tool or textarea for the 'comment' tool\n */\n actions: null,\n };\n\n /**\n * Margin above/below the Toolbar\n */\n private readonly toolbarVerticalMargin: number = 20;\n\n /**\n * Tools instances\n */\n private toolsInstances: Map<string, InlineTool>;\n\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Inline Toolbar Tools\n *\n * @returns Map<string, InlineTool>\n */\n get tools(): Map<string, InlineTool> {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = this.inlineTools;\n\n this.toolsInstances = new Map();\n for (const tool in allTools) {\n if (allTools.hasOwnProperty(tool)) {\n this.toolsInstances.set(tool, allTools[tool]);\n }\n }\n }\n\n return this.toolsInstances;\n }\n\n /**\n * Making DOM\n */\n public make() {\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\n\n /**\n * Append Inline Toolbar to the Editor\n */\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Append Inline Toolbar Tools\n */\n this.addTools();\n\n }\n\n /**\n * Moving / appearance\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Shows Inline Toolbar by keyup/mouseup\n * @param {KeyboardEvent|MouseEvent} event\n */\n public handleShowingEvent(event): void {\n if (!this.allowedToShow(event)) {\n this.close();\n return;\n }\n\n this.move();\n this.open();\n\n /** Check Tools state for selected fragment */\n this.checkToolsState();\n }\n\n /**\n * Move Toolbar to the selected text\n */\n public move(): void {\n const selectionRect = SelectionUtils.rect as DOMRect;\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\n const newCoords = {\n x: selectionRect.x - wrapperOffset.left,\n y: selectionRect.y\n + selectionRect.height\n // + window.scrollY\n - wrapperOffset.top\n + this.toolbarVerticalMargin,\n };\n\n /**\n * If we know selections width, place InlineToolbar to center\n */\n if (selectionRect.width) {\n newCoords.x += Math.floor(selectionRect.width / 2);\n }\n\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\n }\n\n /**\n * Shows Inline Toolbar\n */\n private open() {\n /**\n * Filter inline-tools and show only allowed by Block's Tool\n */\n this.filterTools();\n\n /**\n * Show Inline Toolbar\n */\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\n\n /**\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\n */\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Hides Inline Toolbar\n */\n private close() {\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Need to show Inline Toolbar or not\n * @param {KeyboardEvent|MouseEvent} event\n */\n private allowedToShow(event): boolean {\n /**\n * Tags conflicts with window.selection function.\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\n */\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\n\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\n return false;\n }\n\n const currentSelection = SelectionUtils.get(),\n selectedText = SelectionUtils.text;\n\n // old browsers\n if (!currentSelection || !currentSelection.anchorNode) {\n return false;\n }\n\n // empty selection\n if (currentSelection.isCollapsed || selectedText.length < 1) {\n return false;\n }\n\n // is enabled by current Block's Tool\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\n\n if (!currentBlock) {\n return false;\n }\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n }\n\n /**\n * Show only allowed Tools\n */\n private filterTools(): void {\n const currentSelection = SelectionUtils.get(),\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n\n /**\n * All Inline Toolbar buttons\n * @type {HTMLElement[]}\n */\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\n\n /**\n * Show previously hided\n */\n buttons.forEach((button) => {\n button.hidden = false;\n button.classList.remove(this.CSS.inlineToolButtonLast);\n });\n\n /**\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\n */\n if (Array.isArray(inlineToolbarSettings)) {\n buttons.forEach((button) => {\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\n });\n }\n\n /**\n * Tick for removing right-margin from last visible button.\n * Current generation of CSS does not allow to filter :visible elements\n */\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\n\n if (lastVisibleButton) {\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\n }\n }\n\n /**\n * Working with Tools\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Fill Inline Toolbar with Tools\n */\n private addTools(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n this.addTool(toolName, toolInstance);\n });\n }\n\n /**\n * Add tool button and activate clicks\n */\n private addTool(toolName: string, tool: InlineTool): void {\n const {\n Listeners,\n Tools,\n } = this.Editor;\n\n const button = tool.render();\n\n if (!button) {\n _.log('Render method must return an instance of Node', 'warn', toolName);\n return;\n }\n\n button.dataset.tool = toolName;\n this.nodes.buttons.appendChild(button);\n\n if (typeof tool.renderActions === 'function') {\n const actions = tool.renderActions();\n this.nodes.actions.appendChild(actions);\n }\n\n Listeners.on(button, 'click', (event) => {\n this.toolClicked(tool);\n event.preventDefault();\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * Get internal inline tools\n */\n const internalTools: string[] = Object\n .entries(Tools.internalTools)\n .filter(([name, toolClass]: [string, ITool]) => toolClass[Tools.apiSettings.IS_INLINE])\n .map(([name, toolClass]: [string, ITool]) => name);\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (internalTools.includes(toolName)) {\n shortcut = this.inlineTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[Tools.apiSettings.SHORTCUT];\n }\n\n if (shortcut) {\n this.enableShortcuts(tool, shortcut);\n }\n }\n\n /**\n * Enable Tool shortcut with Editor Shortcuts Module\n * @param {InlineTool} tool - Tool instance\n * @param {string} shortcut - shortcut according to the Shortcut Module format\n */\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n const {currentBlock} = this.Editor.BlockManager;\n\n /**\n * Editor is not focused\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * We allow to fire shortcut with empty selection (isCollapsed=true)\n * it can be used by tools like «Mention» that works without selection:\n * Example: by SHIFT+@ show dropdown and insert selected username\n */\n // if (SelectionUtils.isCollapsed) return;\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\n return;\n }\n\n event.preventDefault();\n this.toolClicked(tool);\n },\n });\n }\n\n /**\n * Inline Tool button clicks\n * @param {InlineTool} tool - Tool's instance\n */\n private toolClicked(tool: InlineTool): void {\n const range = SelectionUtils.range;\n\n tool.surround(range);\n this.checkToolsState();\n }\n\n /**\n * Check Tools` state by selection\n */\n private checkToolsState(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\n\n /**\n * Get inline tools tools\n * Tools that has isInline is true\n */\n private get inlineTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n}\n","import IEditorConfig from '../interfaces/editor-config';\n\n/**\n * @class Toolbox\n * @classdesc Holder for Tools\n *\n * @typedef {Toolbox} Toolbox\n * @property {Boolean} opened - opening state\n * @property {Object} nodes - Toolbox nodes\n * @property {Object} CSS - CSS class names\n *\n */\nexport default class Toolbox extends Module {\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n toolbox: null,\n buttons: []\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n this.opened = false;\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n this.activeButtonIndex = -1;\n\n /**\n * How many tools displayed in Toolbox\n * @type {number}\n */\n this.displayedToolsCount = 0;\n }\n\n /**\n * CSS styles\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\n */\n static get CSS() {\n return {\n toolbox: 'ce-toolbox',\n toolboxButton: 'ce-toolbox__button',\n toolboxButtonActive : 'ce-toolbox__button--active',\n toolboxOpened: 'ce-toolbox--opened',\n };\n }\n\n /**\n * Makes the Toolbox\n */\n make() {\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\n\n this.addTools();\n }\n\n /**\n * Iterates available tools and appends them to the Toolbox\n */\n addTools() {\n let tools = this.Editor.Tools.toolsAvailable;\n\n for (let toolName in tools) {\n this.addTool(toolName, tools[toolName]);\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {IBlockTool} tool - tool class\n */\n addTool(toolName, tool) {\n const api = this.Editor.Tools.apiSettings;\n\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\n return;\n }\n\n /**\n * @todo Add checkup for the render method\n */\n // if (typeof tool.render !== 'function') {\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\n // return;\n // }\n\n /**\n * Skip tools that pass 'displayInToolbox=false'\n */\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\n return;\n }\n\n let button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\n title: toolName\n });\n\n button.innerHTML = tool.toolboxIcon;\n\n $.append(this.nodes.toolbox, button);\n\n this.nodes.toolbox.appendChild(button);\n this.nodes.buttons.push(button);\n\n /**\n * Add click listener\n */\n this.Editor.Listeners.on(button, 'click', (event) => {\n this.toolButtonActivate(event, toolName);\n });\n\n /**\n * Enable shortcut\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\n }\n\n /** Increment Tools count */\n this.displayedToolsCount++;\n }\n\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {IBlockTool} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the Shortcut Module format\n */\n enableShortcut(tool, toolName, shortcut) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n event.preventDefault();\n this.insertNewBlock(tool, toolName);\n }\n });\n }\n\n /**\n * Inserts new block\n * Can be called when button clicked on Toolbox or by Shortcut\n *\n * @param {IBlockTool} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n insertNewBlock(tool, toolName) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n /**\n * We do replace if:\n * - block is empty\n * - block is not irreplaceable\n * @type {Array}\n */\n let newBlock;\n\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * close toolbar when node is changed\n */\n this.Editor.Toolbar.close();\n }\n\n /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n toolButtonActivate(event, toolName) {\n const tool = this.Editor.Tools.toolsClasses[toolName];\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n open() {\n if (this.isEmpty) {\n return;\n }\n\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n close() {\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\n this.opened = false;\n\n /** remove active item pointer */\n this.activeButtonIndex = -1;\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\n\n if (activeButton) {\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n }\n\n /**\n * Close Toolbox\n */\n toggle() {\n if (!this.opened) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * Leaf\n * flip through the toolbox items\n * @param {String} direction - leaf direction, right is default\n */\n leaf(direction = 'right') {\n const childNodes = this.nodes.toolbox.childNodes;\n\n /**\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\n */\n if (this.activeButtonIndex === -1) {\n /**\n * Normalize \"previous\" Tool index depending on direction.\n * We need to do this to highlight \"first\" Tool correctly\n *\n * Order of Tools: [0] [1] ... [n - 1]\n * [0 = n] because of: n % n = 0 % n\n *\n * Direction 'right': for [0] the [n - 1] is a previous index\n * [n - 1] -> [0]\n *\n * Direction 'left': for [n - 1] the [0] is a previous index\n * [n - 1] <- [0]\n *\n * @type {number}\n */\n this.activeButtonIndex = direction === 'right' ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === 'right') {\n /**\n * If we go right then choose next (+1) Tool\n * @type {number}\n */\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\n } else {\n /**\n * If we go left then choose previous (-1) Tool\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\n * @type {number}\n */\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\n }\n\n /**\n * Highlight new chosen Tool\n */\n childNodes[this.activeButtonIndex].classList.add(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * get tool name when it is selected\n * In case when nothing selection returns null\n *\n * @return {String|null}\n */\n get getActiveTool() {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return childNodes[this.activeButtonIndex].title;\n }\n\n /**\n * Returns True if Toolbox is Empty and nothing to show\n * @return {boolean}\n */\n get isEmpty() {\n return this.displayedToolsCount === 0;\n }\n}\n","/**\n *\n * «Toolbar» is the node that moves up/down over current block\n *\n * ______________________________________ Toolbar ____________________________________________\n * | |\n * | ..................... Content .................... ......... Block Actions .......... |\n * | . . . . |\n * | . . . [Open Settings] . |\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\n * | . . . [Settings Panel] . |\n * | .................................................. .................................. |\n * | |\n * |___________________________________________________________________________________________|\n *\n *\n * Toolbox its an Element contains tools buttons. Can be shown by Plus Button.\n *\n * _______________ Toolbox _______________\n * | |\n * | [Header] [Image] [List] [Quote] ... |\n * |_______________________________________|\n *\n *\n * Settings Panel is an Element with block settings:\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n *\n *\n * @class\n * @classdesc Toolbar module\n *\n * @typedef {Toolbar} Toolbar\n * @property {Object} nodes\n * @property {Element} nodes.wrapper - Toolbar main element\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\n * @property {Element} nodes.toolbox - Container for tools\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\n * @property {Element} nodes.settings - Settings Panel\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\n */\nexport default class Toolbar extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper : null,\n content : null,\n actions : null,\n\n // Content Zone\n plusButton : null,\n\n // Actions Zone\n blockActionsButtons: null,\n settingsToggler : null,\n };\n }\n\n /**\n * CSS styles\n * @return {Object}\n * @constructor\n */\n static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\n\n toolbarOpened: 'ce-toolbar--opened',\n\n // Content Zone\n plusButton: 'ce-toolbar__plus',\n plusButtonHidden: 'ce-toolbar__plus--hidden',\n\n // Actions Zone\n blockActionsButtons: 'ce-toolbar__actions-buttons',\n settingsToggler: 'ce-toolbar__settings-btn',\n };\n }\n\n /**\n * Makes toolbar\n */\n make() {\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\n\n /**\n * Make Content Zone and Actions Zone\n */\n ['content', 'actions'].forEach( el => {\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\n $.append(this.nodes.wrapper, this.nodes[el]);\n });\n\n\n /**\n * Fill Content Zone:\n * - Plus Button\n * - Toolbox\n */\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\n $.append(this.nodes.content, this.nodes.plusButton);\n this.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\n\n\n /**\n * Make a Toolbox\n */\n this.Editor.Toolbox.make();\n\n /**\n * Fill Actions Zone:\n * - Settings Toggler\n * - Remove Block Button\n * - Settings Panel\n */\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\n const settingsIcon = $.svg('dots', 18, 4);\n\n $.append(this.nodes.settingsToggler, settingsIcon);\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\n\n /**\n * Make and append Settings Panel\n */\n this.Editor.BlockSettings.make();\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\n\n /**\n * Append toolbar to the Editor\n */\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Bind events on the Toolbar elements\n */\n this.bindEvents();\n }\n\n /**\n * Move Toolbar to the Current Block\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\n */\n move(forceClose = true) {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n let currentBlock = this.Editor.BlockManager.currentBlock.holder;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * Set Toolbar Min Height as Block's height\n * Plus Button and Toolbox positioned at the center of the Toolbar\n */\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\n\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n /**\n * Move Toolbar to the Top coordinate of Block\n */\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button\n */\n open() {\n /**\n * Wait Block rendering for correct height computing\n */\n setTimeout(() => {\n this.move();\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n }, 50);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n close() {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n /**\n * Plus Button public methods\n * @return {{hide: function(): void, show: function(): void}}\n */\n get plusButton() {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => {\n if (this.Editor.Toolbox.isEmpty) {\n return;\n }\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\n }\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n plusButtonClicked() {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n bindEvents() {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\n this.settingsTogglerClicked(event);\n });\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n settingsTogglerClicked() {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","import BoldInlineTool from '../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\n\nconst Paragraph = require('../tools/paragraph/dist/bundle');\n\n/**\n * @module Codex Editor Tools Submodule\n *\n * Creates Instances from Plugins and binds external config to the instances\n */\n\n/**\n * Each Tool must contain the following important objects:\n *\n * @typedef {Object} ToolConfig {@link docs/tools.md}\n * @property {String} iconClassname - this a icon in toolbar\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\n * @property render @todo add description\n * @property save @todo add description\n * @property settings @todo add description\n * @property validate - method that validates output data before saving\n */\n\n/**\n * @typedef {Function} Tool {@link docs/tools.md}\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\n * @property {String} iconClassName - CSS class name for the Toolbox button\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\n * @property render\n * @property save\n * @property settings\n * @property validate\n *\n * @todo update according to current API\n * @todo describe Tool in the {@link docs/tools.md}\n */\n\n/**\n * Class properties:\n *\n * @typedef {Tools} Tools\n * @property {Tools[]} toolsAvailable - available Tools\n * @property {Tools[]} toolsUnavailable - unavailable Tools\n * @property {object} toolsClasses - all classes\n * @property {object} toolsSettings - Tools settings\n * @property {EditorConfig} config - Editor config\n */\nexport default class Tools extends Module {\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n this.toolsClasses = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\n */\n this.toolsSettings = {};\n\n /**\n * Available tools list\n * {name: Class, ...}\n * @type {Object}\n */\n this.toolsAvailable = {};\n\n /**\n * Tools that rejected a prepare method\n * {name: Class, ... }\n * @type {Object}\n */\n this.toolsUnavailable = {};\n\n /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n this._inlineTools = null;\n }\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n get available() {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n get unavailable() {\n return this.toolsUnavailable;\n }\n\n /**\n * Return Tools for the Inline Toolbar\n * @return {Object} - object of Inline Tool's classes\n */\n get inline() {\n if (this._inlineTools) {\n return this._inlineTools;\n }\n\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (!tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n /**\n * Some Tools validation\n */\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\n const notImplementedMethods = inlineToolRequiredMethods.filter( method => !this.constructInline(tool)[method]);\n\n if (notImplementedMethods.length) {\n _.log(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\n return false;\n }\n\n return true;\n });\n\n /**\n * collected inline tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n /**\n * Cache prepared Tools\n */\n this._inlineTools = result;\n\n return this._inlineTools;\n }\n\n /**\n * Return editor block tools\n */\n get blockTools() {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n return true;\n });\n\n /**\n * collected block tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n return result;\n }\n\n /**\n * Constant for available Tools Settings\n * @return {object}\n */\n get apiSettings() {\n return {\n CONFIG: 'config',\n IS_CONTENTLESS: 'contentless',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n SANITIZE_CONFIG: 'sanitize'\n };\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n prepare() {\n /**\n * Assign internal tools\n */\n Object.assign(this.config.tools, this.internalTools);\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n return Promise.reject('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for(let toolName in this.config.tools) {\n /**\n * If Tool is an object not a Tool's class then\n * save class and settings separately\n */\n if (typeof this.config.tools[toolName] === 'object') {\n /**\n * Save Tool's class from 'class' field\n * @type {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\n\n /**\n * Save Tool's settings\n * @type {IToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName];\n\n /**\n * Remove Tool's class from settings\n */\n delete this.toolsSettings[toolName].class;\n } else {\n /**\n * Save Tool's class\n * @type {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName];\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n let sequenceData = this.getListOfPrepareFunctions();\n\n /**\n * if sequence data contains nothing then resolve current chain and run other module prepare\n */\n if (sequenceData.length === 0) {\n return Promise.resolve();\n }\n\n /**\n * to see how it works {@link Util#sequence}\n */\n return _.sequence(sequenceData, (data) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\n }\n\n /**\n * Binds prepare function of plugins with user or default config\n * @return {Array} list of functions that needs to be fired sequentially\n */\n getListOfPrepareFunctions() {\n let toolPreparationList = [];\n\n for(let toolName in this.toolsClasses) {\n let toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function : toolClass.prepare,\n data : {\n toolName,\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG]\n }\n });\n } else {\n /**\n * If Tool hasn't a prepare method, mark it as available\n */\n this.toolsAvailable[toolName] = toolClass;\n }\n }\n\n return toolPreparationList;\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n success(data) {\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * @param {ChainData.data} data - append tool to unavailable list\n */\n fallback(data) {\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * Return Tool`s instance\n *\n * @param {String} tool — tool name\n * @param {IBlockToolData} data — initial data\n * @return {IBlockTool}\n */\n construct(tool, data) {\n const plugin = this.toolsClasses[tool];\n\n /**\n * Configuration to be passed to the Tool's constructor\n */\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\n\n /**\n * @type {{api: IAPI, config: ({}), data: IBlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data: data\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {IInlineTool} tool\n * @return {IInlineTool} — instance\n */\n constructInline(tool) {\n /**\n * @type {{api: IAPI}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods\n };\n\n return new tool(constructorOptions);\n }\n\n /**\n * Check if passed Tool is an instance of Initial Block Tool\n * @param {Tool} tool - Tool to check\n * @return {Boolean}\n */\n isInitial(tool) {\n return tool instanceof this.available[this.config.initialBlock];\n }\n\n /**\n * Return Tool's config by name\n * @param {string} toolName\n * @return {IToolSettings}\n */\n getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n\n /**\n * Returns internal tools\n * Includes Bold, Italic, Link and Paragraph\n */\n get internalTools() {\n return {\n bold: BoldInlineTool,\n italic: ItalicInlineTool,\n link: LinkInlineTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true\n }\n };\n }\n}\n","/**\n * Module UI\n *\n * @type {UI}\n */\n\n/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\nimport Selection from '../selection';\n\n/**\n * @class\n *\n * @classdesc Makes CodeX Editor UI:\n * <codex-editor>\n * <ce-redactor />\n * <ce-toolbar />\n * <ce-inline-toolbar />\n * </codex-editor>\n *\n * @typedef {UI} UI\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\n * @property {Object} nodes -\n * @property {Element} nodes.holder - element where we need to append redactor\n * @property {Element} nodes.wrapper - <codex-editor>\n * @property {Element} nodes.redactor - <ce-redactor>\n */\nexport default class UI extends Module {\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n holder: null,\n wrapper: null,\n redactor: null\n };\n }\n\n /**\n * Making main interface\n */\n async prepare() {\n await this.make();\n\n /**\n * Append SVG sprite\n */\n await this.appendSVGSprite();\n\n /**\n * Make toolbar\n */\n await this.Editor.Toolbar.make();\n\n /**\n * Make the Inline toolbar\n */\n await this.Editor.InlineToolbar.make();\n\n /**\n * Load and append CSS\n */\n await this.loadStyles();\n\n /**\n * Bind events for the UI elements\n */\n await this.bindEvents();\n }\n\n /**\n * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string, block: string}}\n */\n get CSS() {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise<any>}\n */\n async make() {\n /**\n * Element where we need to append CodeX Editor\n * @type {Element}\n */\n this.nodes.holder = document.getElementById(this.config.holderId);\n\n if (!this.nodes.holder) {\n throw Error(\"Holder wasn't found by ID: #\" + this.config.holderId);\n }\n\n /**\n * Create and save main UI elements\n */\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\n\n this.nodes.wrapper.appendChild(this.nodes.redactor);\n this.nodes.holder.appendChild(this.nodes.wrapper);\n }\n\n /**\n * Appends CSS\n */\n loadStyles() {\n /**\n * Load CSS\n */\n let styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n let tag = $.make('style', null, {\n textContent: styles.toString()\n });\n\n /**\n * Append styles at the top of HEAD tag\n */\n $.prepend(document.head, tag);\n }\n\n /**\n * Bind events on the CodeX Editor interface\n */\n bindEvents() {\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n documentKeydown(event) {\n switch (event.keyCode) {\n case _.keyCodes.ENTER:\n this.enterPressed(event);\n break;\n default:\n this.defaultBehaviour(event);\n break;\n }\n }\n\n /**\n * Ignore all other document's keydown events\n * @param {KeyboardEvent} event\n */\n defaultBehaviour(event) {\n const keyDownOnEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\n\n /**\n * Ignore keydowns on document\n * clear pointer and close toolbar\n */\n if (!keyDownOnEditor) {\n /**\n * Remove all highlights and remove caret\n */\n this.Editor.BlockManager.dropPointer();\n\n /**\n * Close Toolbar\n */\n this.Editor.Toolbar.close();\n }\n }\n\n /**\n * Enter pressed on document\n * @param event\n */\n enterPressed(event) {\n let hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\n\n /**\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\n * In our case it is document.body\n *\n * So, BlockManager points some Block and Enter press is on Body\n * We can create a new block\n */\n if (hasPointerToBlock && event.target.tagName === 'BODY') {\n /**\n * Insert initial typed Block\n */\n const newBlock = this.Editor.BlockManager.insert();\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * And highlight\n */\n this.Editor.BlockManager.highlightCurrentNode();\n\n /**\n * Move toolbar and show plus button because new Block is empty\n */\n this.Editor.Toolbar.move();\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n documentClicked(event) {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\n\n /** Clear highlightings and pointer on BlockManager */\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\n this.Editor.BlockManager.dropPointer();\n this.Editor.Toolbar.close();\n }\n\n if (!clickedOnInlineToolbarButton) {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n if (Selection.isAtEditor) {\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\n }\n }\n\n /**\n * All clicks on the redactor zone\n *\n * @param {MouseEvent} event\n *\n * @description\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\n * it uses for the following:\n * - add CSS modifier for the selected Block\n * - on Enter press, we make a new Block under that\n *\n * 2. Move and show the Toolbar\n *\n * 3. Set a Caret\n *\n * 4. By clicks on the Editor's bottom zone:\n * - if last Block is empty, set a Caret to this\n * - otherwise, add a new empty Block and set a Caret to that\n *\n * 5. Hide the Inline Toolbar\n *\n * @see selectClickedBlock\n *\n */\n redactorClicked(event) {\n const clickedNode = event.target;\n\n /**\n * Select clicked Block as Current\n */\n try {\n /**\n * Renew Current Block\n */\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\n\n /**\n * Highlight Current Node\n */\n this.Editor.BlockManager.highlightCurrentNode();\n } catch (e) {\n /**\n * If clicked outside first-level Blocks, set Caret to the last empty Block\n */\n this.Editor.Caret.setToTheLastBlock();\n }\n\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n /**\n * Move and open toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Hide the Plus Button\n */\n this.Editor.Toolbar.plusButton.hide();\n\n if (!this.Editor.BlockManager.currentBlock) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * Show the Plus Button if:\n * - Block is an initial-block (Text)\n * - Block is empty\n */\n let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isInitialBlock && isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n appendSVGSprite() {\n let spriteHolder = $.make('div');\n\n spriteHolder.hidden = true;\n spriteHolder.style.display = 'none';\n spriteHolder.innerHTML = sprite;\n\n $.append(this.nodes.wrapper, spriteHolder);\n }\n\n /**\n * Clean editor`s UI\n */\n destroy() {\n this.nodes.holder.innerHTML = '';\n }\n}\n","'use strict';\n\n/**\n * Extend Element interface to include prefixed and experimental properties\n */\ninterface Element {\n matchesSelector: (selector: string) => boolean;\n mozMatchesSelector: (selector: string) => boolean;\n oMatchesSelector: (selector: string) => boolean;\n\n prepend: (nodes: Node|Node[]|any) => void;\n}\n\n/**\n * The Element.matches() method returns true if the element\n * would be selected by the specified selector string;\n * otherwise, returns false.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\n */\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\n let i = matches.length;\n\n while (--i >= 0 && matches.item(i) !== this) {\n }\n\n return i > -1;\n };\n}\n\n/**\n * The Element.closest() method returns the closest ancestor\n * of the current element (or the current element itself) which\n * matches the selectors given in parameter.\n * If there isn't such an ancestor, it returns null.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\n */\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n let el = this;\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (el.matches(s)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null);\n\n return null;\n };\n}\n\n/**\n * The ParentNode.prepend method inserts a set of Node objects\n * or DOMString objects before the first child of the ParentNode.\n * DOMString objects are inserted as equivalent Text nodes.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\n */\nif (!Element.prototype.prepend) {\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\n const docFrag = document.createDocumentFragment();\n\n if (!Array.isArray(nodes)) {\n nodes = [ nodes ];\n }\n\n nodes.forEach((node: Node|any) => {\n const isNode = node instanceof Node;\n\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\n });\n\n this.insertBefore(docFrag, this.firstChild);\n };\n}\n","/**\n * TextRange interface fot IE9-\n */\nimport _ from './utils';\n\ninterface TextRange {\n boundingTop: number;\n boundingLeft: number;\n boundingBottom: number;\n boundingRight: number;\n boundingHeight: number;\n boundingWidth: number;\n}\n\n/**\n * Interface for object returned by document.selection in IE9-\n */\ninterface MSSelection {\n createRange: () => TextRange;\n type: string;\n}\n\n/**\n * Extends Document interface for IE9-\n */\ninterface Document {\n selection?: MSSelection;\n}\n\n/**\n * Working with selection\n * @typedef {Selection} Selection\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n * @constructor\n */\n static get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Returns selected anchor\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\n * @return {Node|null}\n */\n static get anchorNode(): Node|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorNode : null;\n }\n\n /**\n * Returns selection offset according to the anchor node\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\n * @return {Number|null}\n */\n static get anchorOffset(): number|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorOffset : null;\n }\n\n /**\n * Is current selection range collapsed\n * @return {boolean|null}\n */\n static get isCollapsed(): boolean|null {\n const selection = window.getSelection();\n\n return selection ? selection.isCollapsed : null;\n }\n\n /**\n * Check current selection if it is at Editor's zone\n * @return {boolean}\n */\n static get isAtEditor(): boolean {\n const selection = SelectionUtils.get();\n\n /**\n * Something selected on document\n */\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement;\n }\n\n let editorZone = null;\n if (selectedNode) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Return first range\n * @return {Range|null}\n */\n static get range(): Range {\n const selection = window.getSelection();\n\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\n }\n\n /**\n * Calculates position and size of selected text\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\n */\n static get rect(): DOMRect|ClientRect {\n let sel: Selection|MSSelection = (document as Document).selection,\n range: TextRange|Range;\n\n let rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n } as DOMRect;\n\n if (sel && sel.type !== 'Control') {\n sel = sel as MSSelection;\n range = sel.createRange() as TextRange;\n rect.x = range.boundingLeft;\n rect.y = range.boundingTop;\n rect.width = range.boundingWidth;\n rect.height = range.boundingHeight;\n\n return rect;\n }\n\n if (!window.getSelection) {\n _.log('Method window.getSelection is not supported', 'warn');\n return rect;\n }\n\n sel = window.getSelection();\n\n if (!sel.rangeCount) {\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\n return rect;\n }\n\n range = sel.getRangeAt(0).cloneRange() as Range;\n\n if (range.getBoundingClientRect) {\n rect = range.getBoundingClientRect() as DOMRect;\n }\n // Fall back to inserting a temporary element\n if (rect.x === 0 && rect.y === 0) {\n const span = document.createElement('span');\n\n if (span.getBoundingClientRect) {\n // Ensure span has dimensions and position by\n // adding a zero-width space character\n span.appendChild( document.createTextNode('\\u200b') );\n range.insertNode(span);\n rect = span.getBoundingClientRect() as DOMRect;\n\n const spanParent = span.parentNode;\n\n spanParent.removeChild(span);\n\n // Glue any broken text nodes back together\n spanParent.normalize();\n }\n }\n\n return rect;\n }\n\n /**\n * Returns selected text as String\n * @returns {string}\n */\n static get text(): string {\n return window.getSelection ? window.getSelection().toString() : '';\n }\n\n /**\n * Returns window SelectionUtils\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\n * @return {Selection}\n */\n public static get(): Selection {\n return window.getSelection();\n }\n\n public instance: Selection = null;\n public selection: Selection = null;\n\n /**\n * This property can store SelectionUtils's range for restoring later\n * @type {Range|null}\n */\n public savedSelectionRange: Range = null;\n\n /**\n * Save SelectionUtils's range\n */\n public save(): void {\n this.savedSelectionRange = SelectionUtils.range;\n }\n\n /**\n * Restore saved SelectionUtils's range\n */\n public restore(): void {\n if (!this.savedSelectionRange) {\n return;\n }\n\n const sel = window.getSelection();\n\n sel.removeAllRanges();\n sel.addRange(this.savedSelectionRange);\n }\n\n /**\n * Clears saved selection\n */\n public clearSaved(): void {\n this.savedSelectionRange = null;\n }\n\n /**\n * Looks ahead to find passed tag from current selection\n *\n * @param {String} tagName - tag to found\n * @param {String} [className] - tag's class name\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\n const selection = window.getSelection();\n let parentTag = null;\n\n /**\n * If selection is missing or no anchorNode or focusNode were found then return null\n */\n if (!selection || !selection.anchorNode || !selection.focusNode) {\n return null;\n }\n\n /**\n * Define Nodes for start and end of selection\n */\n const boundNodes = [\n /** the Node in which the selection begins */\n selection.anchorNode as HTMLElement,\n /** the Node in which the selection ends */\n selection.focusNode as HTMLElement,\n ];\n\n /**\n * For each selection parent Nodes we try to find target tag [with target class name]\n * It would be saved in parentTag variable\n */\n boundNodes.forEach((parent) => {\n /** Reset tags limit */\n let searchDepthIterable = searchDepth;\n\n while (searchDepthIterable > 0 && parent.parentNode) {\n /**\n * Check tag's name\n */\n if (parent.tagName === tagName) {\n /**\n * Save the result\n */\n parentTag = parent;\n\n /**\n * Optional additional check for class-name mismatching\n */\n if (className && parent.classList && !parent.classList.contains(className)) {\n parentTag = null;\n }\n\n /**\n * If we have found required tag with class then go out from the cycle\n */\n if (parentTag) {\n break;\n }\n }\n\n /**\n * Target tag was not found. Go up to the parent and check it\n */\n parent = parent.parentNode as HTMLElement;\n searchDepthIterable--;\n }\n });\n\n /**\n * Return found tag or null\n */\n return parentTag;\n }\n\n /**\n * Expands selection range to the passed parent node\n *\n * @param {HTMLElement} element\n */\n public expandToTag(element: HTMLElement): void {\n const selection = window.getSelection();\n\n selection.removeAllRanges();\n const range = document.createRange();\n\n range.selectNodeContents(element);\n selection.addRange(range);\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Paragraph=e():t.Paragraph=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();n(1).toString();\n/**\n * Base Paragraph Block for the CodeX Editor.\n * Represents simple paragraph\n *\n * @author CodeX (team@ifmo.su)\n * @copyright CodeX 2018\n * @license The MIT License (MIT)\n * @version 2.0.0\n */\nvar o=function(){function t(e){var n=e.data,r=(e.config,e.api);!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.api=r,this._CSS={block:this.api.styles.block,wrapper:\"ce-paragraph\"},this._data={},this._element=this.drawView(),this.data=n}return r(t,null,[{key:\"displayInToolbox\",get:function(){return!1}}]),r(t,[{key:\"drawView\",value:function(){var t=document.createElement(\"DIV\");return t.classList.add(this._CSS.wrapper,this._CSS.block),t.contentEditable=!0,t}},{key:\"render\",value:function(){return this._element}},{key:\"merge\",value:function(t){var e={text:this.data.text+t.text};this.data=e}},{key:\"validate\",value:function(t){return\"\"!==t.text.trim()}},{key:\"save\",value:function(t){return{text:t.innerHTML}}},{key:\"sanitize\",get:function(){return{text:{a:{href:!0,target:\"_blank\",rel:\"nofollow\"},b:{},i:{},br:!0,span:{class:\"inline-code\"},mark:{class:\"cdx-marker\"}}}}},{key:\"data\",get:function(){var t=this._element.innerHTML;return this._data.text=t,this._data},set:function(t){this._data=t||{},this._element.innerHTML=this._data.text||\"\"}}],[{key:\"onPaste\",get:function(){return{tags:[\"P\"],handler:function(t){return{text:t.innerHTML}}}}}]),t}();t.exports=o},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,\".ce-paragraph {\\n line-height: 1.6em;\\n outline: none;\\n}\\n\\n.ce-paragraph p:first-of-type{\\n margin-top: 0;\\n}\\n\\n.ce-paragraph p:last-of-type{\\n margin-bottom: 0;\\n}\\n\",\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];\"number\"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];\"number\"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),e.push(a))}},e}},function(t,e,n){var r={},o=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),i=function(t){var e={};return function(t){if(\"function\"==typeof t)return t();if(void 0===e[t]){var n=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),a=null,s=0,u=[],f=n(5);function c(t,e){for(var n=0;n<t.length;n++){var o=t[n],i=r[o.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](o.parts[a]);for(;a<o.parts.length;a++)i.parts.push(b(o.parts[a],e))}else{var s=[];for(a=0;a<o.parts.length;a++)s.push(b(o.parts[a],e));r[o.id]={id:o.id,refs:1,parts:s}}}}function l(t,e){for(var n=[],r={},o=0;o<t.length;o++){var i=t[o],a=e.base?i[0]+e.base:i[0],s={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}function p(t,e){var n=i(t.insertInto);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var r=u[u.length-1];if(\"top\"===t.insertAt)r?r.nextSibling?n.insertBefore(e,r.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),u.push(e);else if(\"bottom\"===t.insertAt)n.appendChild(e);else{if(\"object\"!=typeof t.insertAt||!t.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var o=i(t.insertInto+\" \"+t.insertAt.before);n.insertBefore(e,o)}}function d(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=u.indexOf(t);e>=0&&u.splice(e,1)}function h(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),v(e,t.attrs),p(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function b(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var u=s++;n=a||(a=h(e)),r=m.bind(null,n,u,!1),o=m.bind(null,n,u,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",v(e,t.attrs),p(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=l(t,e);return c(n,e),function(t){for(var o=[],i=0;i<n.length;i++){var a=n[i];(s=r[a.id]).refs--,o.push(s)}t&&c(l(t,e),e);for(i=0;i<o.length;i++){var s;if(0===(s=o[i]).refs){for(var u=0;u<s.parts.length;u++)s.parts[u]();delete r[s.id]}}}};var y=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join(\"\\n\")}}();function m(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}},function(t,e){t.exports=function(t){var e=\"undefined\"!=typeof window&&window.location;if(!e)throw new Error(\"fixUrls requires window.location\");if(!t||\"string\"!=typeof t)return t;var n=e.protocol+\"//\"+e.host,r=n+e.pathname.replace(/\\/[^\\/]*$/,\"/\");return t.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,function(t,e){var o,i=e.trim().replace(/^\"(.*)\"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(i)?t:(o=0===i.indexOf(\"//\")?i:0===i.indexOf(\"/\")?n+i:r+i.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(o)+\")\")})}}])});","/**\n * @typedef {Object} ChainData\n * @property {Object} data - data that will be passed to the success or fallback\n * @property {Function} function - function's that must be called asynchronically\n */\ninterface ChainData {\n data: any;\n function: (...args: any[]) => any;\n}\n\n/**\n * Codex Editor Util\n */\nexport default class Util {\n /**\n * Custom logger\n *\n * @param {string} msg - message\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\n * @param {*} args - argument to log with a message\n */\n public static log(msg: string, type: string = 'log', args?: any): void {\n\n if (!args) {\n if (['time', 'timeEnd'].includes(type)) {\n msg = `[codex-editor]: ${msg}`;\n } else {\n args = msg || 'undefined';\n msg = '[codex-editor]: %o';\n }\n } else {\n msg = '[codex-editor]: ' + msg;\n }\n\n try {\n if ( 'console' in window && window.console[ type ] ) {\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\n }\n } catch (e) {\n // do nothing\n }\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes(): object {\n return {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n DOWN: 40,\n RIGHT: 39,\n DELETE: 46,\n META: 91,\n };\n }\n\n /**\n * Fires a promise sequence asyncronically\n *\n * @param {ChainData[]} chains - list or ChainData's\n * @param {Function} success - success callback\n * @param {Function} fallback - callback that fires in case of errors\n *\n * @return {Promise}\n */\n public static async sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise<void> {\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n async function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise<void> {\n try {\n await chainData.function(chainData.data);\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n } catch (e) {\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n }\n }\n\n /**\n * pluck each element from queue\n * First, send resolved Promise as previous value\n * Each plugins \"prepare\" method returns a Promise, that's why\n * reduce current element will not be able to continue while can't get\n * a resolved Promise\n */\n return await chains.reduce(async (previousValue, currentValue) => {\n await previousValue;\n return waitNextBlock(currentValue, success, fallback);\n }, Promise.resolve());\n }\n\n /**\n * Make array from array-like collection\n *\n * @param {ArrayLike} collection\n *\n * @return {Array}\n */\n public static array(collection: ArrayLike<any>): any[] {\n return Array.prototype.slice.call(collection);\n }\n\n /**\n * Check if passed variable is a function\n * @param {*} fn\n * @return {boolean}\n */\n public static isFunction(fn: any): boolean {\n return typeof fn === 'function';\n }\n\n /**\n * Check if passed function is a class\n * @param {function} fn\n * @return {boolean}\n */\n public static isClass(fn: any): boolean {\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\n }\n\n /**\n * Checks if object is empty\n *\n * @param {Object} object\n * @return {boolean}\n */\n public static isEmpty(object: object): boolean {\n return Object.keys(object).length === 0 && object.constructor === Object;\n }\n\n /**\n * Check if passed object is a Promise\n * @param {*} object - object to check\n * @return {Boolean}\n */\n public static isPromise(object: any): boolean {\n return Promise.resolve(object) === object;\n }\n\n /**\n * Check if passed element is contenteditable\n * @param {HTMLElement} element\n * @return {boolean}\n */\n public static isContentEditable(element: HTMLElement): boolean {\n return element.contentEditable === 'true';\n }\n\n /**\n * Delays method execution\n *\n * @param {Function} method\n * @param {Number} timeout\n */\n public static delay(method: (...args: any[]) => any, timeout: number) {\n return function() {\n const context = this,\n args = arguments;\n\n window.setTimeout(() => method.apply(context, args), timeout);\n };\n }\n\n /**\n * Get file extension\n *\n * @param {File} file\n * @return string\n */\n public static getFileExtension(file: File): string {\n return file.name.split('.').pop();\n }\n\n /**\n * Check if string is MIME type\n *\n * @param {string} type\n * @return boolean\n */\n public static isValidMimeType(type: string): boolean {\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\n }\n\n /**\n * Debouncing method\n * Call method after passed time\n *\n * Note that this method returns Function and declared variable need to be called\n *\n * @param {Function} func - function that we're throttling\n * @param {Number} wait - time in milliseconds\n * @param {Boolean} immediate - call now\n * @return {Function}\n */\n public static debounce(func: () => void, wait: number , immediate: boolean): () => void {\n let timeout;\n\n return () => {\n const context = this,\n args = arguments;\n\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n const callNow = immediate && !timeout;\n\n window.clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n}\n","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":root {\\n /**\\n * Selection color\\n */\\n --selectionColor: rgba(61,166,239,0.63);\\n\\n /**\\n * Toolbar buttons\\n */\\n --bg-light: #eff2f5;\\n\\n /**\\n * All gray texts: placeholders, settings\\n */\\n --grayText: #707684;\\n\\n /**\\n * Blue icons\\n */\\n --color-active-icon: #388AE5;\\n\\n /**\\n * Gray border, loaders\\n */\\n --color-gray-border: #E8E8EB;\\n\\n /**\\n * Block content width\\n */\\n --content-width: 650px;\\n\\n /**\\n * Toolbar buttons height and width\\n */\\n --toolbar-buttons-size: 34px;\\n\\n /**\\n * Toolbar Plus Button and Toolbox buttons height and width\\n */\\n --toolbox-buttons-size: 24px;\\n\\n /**\\n * Confirm deletion bg\\n */\\n --color-confirm: #E24A4A;\\n}\\n/**\\n* Editor wrapper\\n*/\\n.codex-editor {\\n position: relative;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.codex-editor .hide {\\n display: none;\\n }\\n.codex-editor__redactor {\\n padding-bottom: 300px;\\n }\\n.codex-editor svg {\\n fill: currentColor;\\n vertical-align: middle;\\n max-height: 100%;\\n }\\n/**\\n * Set color for native selection\\n */\\n::-moz-selection{\\n background-color: rgba(61,166,239,0.63);\\n background-color: var(--selectionColor);\\n}\\n::selection{\\n background-color: rgba(61,166,239,0.63);\\n background-color: var(--selectionColor);\\n}\\n/**\\n * Add placeholder to content editable elements with data attribute\\n * data-placeholder=\\\"Hello world!\\\"\\n */\\n[contentEditable=true][data-placeholder]:empty::before{\\n content: attr(data-placeholder);\\n color: #707684;\\n color: var(--grayText);\\n font-weight: normal;\\n}\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\n opacity: 0.3;\\n}\\n.ce-toolbar {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 0;\\n /*opacity: 0;*/\\n /*visibility: hidden;*/\\n -webkit-transition: opacity 100ms ease;\\n transition: opacity 100ms ease;\\n will-change: opacity, transform;\\n display: none;\\n}\\n.ce-toolbar--opened {\\n display: block;\\n /*opacity: 1;*/\\n /*visibility: visible;*/\\n }\\n.ce-toolbar__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n position: relative;\\n }\\n.ce-toolbar__plus {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center\\n }\\n.ce-toolbar__plus:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbar__plus {\\n\\n position: absolute;\\n left: calc(calc(24px + 10px) * -1);\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\n }\\n.ce-toolbar__plus:hover,\\n .ce-toolbar__plus--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbar__plus--active{\\n -webkit-animation: bounceIn 0.75s 1;\\n animation: bounceIn 0.75s 1;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n }\\n.ce-toolbar__plus--hidden {\\n display: none;\\n }\\n.ce-toolbar__plus,\\n .ce-toolbar .ce-toolbox {\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n }\\n/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 10px;\\n padding-right: 16px;\\n }\\n.ce-toolbar__actions-buttons {\\n text-align: right;\\n }\\n.ce-toolbar__settings-btn {\\n display: inline-block;\\n width: 24px;\\n height: 24px;\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n }\\n.ce-toolbox {\\n position: absolute;\\n visibility: hidden;\\n -webkit-transition: opacity 100ms ease;\\n transition: opacity 100ms ease;\\n will-change: opacity;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n}\\n.ce-toolbox--opened {\\n opacity: 1;\\n visibility: visible;\\n }\\n.ce-toolbox__button {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n.ce-toolbox__button:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbox__button:hover,\\n .ce-toolbox__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbox__button--active{\\n -webkit-animation: bounceIn 0.75s 1;\\n animation: bounceIn 0.75s 1;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n }\\n.ce-inline-toolbar {\\n position: absolute;\\n background-color: #FFFFFF;\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-inline-toolbar::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n -webkit-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-inline-toolbar {\\n padding: 6px;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n display: none;\\n -webkit-box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n}\\n.ce-inline-toolbar--showed {\\n display: block;\\n }\\n.ce-inline-toolbar [hidden] {\\n display: none !important;\\n }\\n.ce-inline-tool {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.ce-inline-tool:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-inline-tool:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-inline-tool {\\n line-height: normal;\\n}\\n.ce-inline-tool > svg,\\n .ce-inline-tool .icon {\\n margin: auto;\\n }\\n.ce-inline-tool--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-inline-tool--last {\\n margin-right: 0 !important;\\n }\\n.ce-inline-tool--link .icon {\\n margin-top: -2px;\\n }\\n.ce-inline-tool--link .icon--unlink {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--link {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--unlink {\\n display: inline-block;\\n }\\n.ce-inline-tool-input {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n outline: none;\\n border: 0;\\n border-radius: 3px;\\n margin: 6px 0 0;\\n font-size: 13px;\\n padding: 8px;\\n width: 100%;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n display: none\\n }\\n.ce-inline-tool-input::-webkit-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::-ms-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input--showed {\\n display: block;\\n }\\n.ce-settings {\\n position: absolute;\\n background-color: #FFFFFF;\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-settings::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n -webkit-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-settings {\\n right: 5px;\\n top: 35px;\\n min-width: 124px\\n}\\n.ce-settings::before{\\n left: auto;\\n right: 12px;\\n }\\n.ce-settings {\\n\\n display: none;\\n}\\n.ce-settings--opened {\\n display: block;\\n -webkit-animation-duration: 0.5s;\\n animation-duration: 0.5s;\\n -webkit-animation-name: bounceIn;\\n animation-name: bounceIn;\\n }\\n.ce-settings__plugin-zone:not(:empty){\\n padding: 6px 6px 0;\\n }\\n.ce-settings__default-zone:not(:empty){\\n padding: 6px;\\n }\\n.ce-settings__button {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n }\\n.ce-settings__button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-settings__button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-settings__button {\\n line-height: 32px;\\n }\\n.ce-settings__button > svg,\\n .ce-settings__button .icon {\\n margin: auto;\\n }\\n.ce-settings__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--disabled {\\n cursor: not-allowed !important;\\n opacity: .3;\\n }\\n.ce-settings__button--selected {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--delete {\\n -webkit-transition: background-color 300ms ease;\\n transition: background-color 300ms ease;\\n will-change: background-color;\\n }\\n.ce-settings__button--delete .icon {\\n -webkit-transition: -webkit-transform 200ms ease-out;\\n transition: -webkit-transform 200ms ease-out;\\n transition: transform 200ms ease-out;\\n transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;\\n will-change: transform;\\n }\\n.ce-settings__button--confirm {\\n background-color: #E24A4A;\\n background-color: var(--color-confirm);\\n color: #fff\\n }\\n.ce-settings__button--confirm:hover {\\n background-color: rgb(213, 74, 74) !important;\\n background-color: rgb(213, 74, 74) !important;\\n }\\n.ce-settings__button--confirm .icon {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n }\\n.ce-block:first-of-type {\\n margin-top: 0;\\n }\\n.ce-block--selected {\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\n border-radius: 3px;\\n }\\n.ce-block--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n position: relative;\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n }\\n.ce-block--drop-target .ce-block__content:before {\\n content: '';\\n position: absolute;\\n top: 100%;\\n left: -20px;\\n margin-top: -1px;\\n height: 8px;\\n width: 8px;\\n border: solid #388AE5;\\n border: solid var(--color-active-icon);\\n border-width: 1px 1px 0 0;\\n -webkit-transform-origin: right;\\n transform-origin: right;\\n -webkit-transform: rotate(45deg);\\n transform: rotate(45deg);\\n }\\n.ce-block--drop-target .ce-block__content:after {\\n content: '';\\n position: absolute;\\n top: 100%;\\n height: 1px;\\n width: 100%;\\n color: #388AE5;\\n color: var(--color-active-icon);\\n background: repeating-linear-gradient(\\n 90deg,\\n #388AE5,\\n #388AE5 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n background: repeating-linear-gradient(\\n 90deg,\\n var(--color-active-icon),\\n var(--color-active-icon) 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n }\\n.wobble {\\n -webkit-animation-name: wobble;\\n animation-name: wobble;\\n -webkit-animation-duration: 400ms;\\n animation-duration: 400ms;\\n}\\n/**\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\n */\\n@-webkit-keyframes wobble {\\n from {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes wobble {\\n from {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@-webkit-keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n/**\\n * Block Tool wrapper\\n */\\n.cdx-block {\\n padding: 0.7em 0;\\n}\\n/**\\n * Input\\n */\\n.cdx-input {\\n border: 1px solid #E8E8EB;\\n border: 1px solid var(--color-gray-border);\\n -webkit-box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n border-radius: 3px;\\n padding: 10px 12px;\\n outline: none;\\n width: 100%;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n/**\\n * Settings\\n */\\n.cdx-settings-button {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.cdx-settings-button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.cdx-settings-button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.cdx-settings-button > svg,\\n .cdx-settings-button .icon {\\n margin: auto;\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n/**\\n * Loader\\n */\\n.cdx-loader {\\n position: relative;\\n border: 1px solid #E8E8EB;\\n border: 1px solid var(--color-gray-border)\\n}\\n.cdx-loader::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 18px;\\n height: 18px;\\n margin: -11px 0 0 -11px;\\n border: 2px solid #E8E8EB;\\n border: 2px solid var(--color-gray-border);\\n border-left-color: #388AE5;\\n border-left-color: var(--color-active-icon);\\n border-radius: 50%;\\n -webkit-animation: cdxRotation 1.2s infinite linear;\\n animation: cdxRotation 1.2s infinite linear;\\n }\\n@-webkit-keyframes cdxRotation {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes cdxRotation {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n/**\\n * Button\\n */\\n.cdx-button {\\n padding: 13px;\\n border-radius: 3px;\\n border: 1px solid #E8E8EB;\\n border: 1px solid var(--color-gray-border);\\n font-size: 14.9px;\\n background: #fff;\\n -webkit-box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n color: #707684;\\n color: var(--grayText);\\n text-align: center;\\n cursor: pointer\\n}\\n.cdx-button:hover {\\n background: #FBFCFE;\\n -webkit-box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n }\\n.cdx-button svg {\\n height: 20px;\\n margin-right: 0.2em;\\n margin-top: -2px;\\n }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""}