{"version":3,"sources":["webpack://wangEditor/webpack/universalModuleDefinition","webpack://wangEditor/webpack/bootstrap","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","webpack://wangEditor/./src/utils/dom-core.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/object/set-prototype-of.js","webpack://wangEditor/./node_modules/core-js-pure/internals/export.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","webpack://wangEditor/./src/utils/util.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/global.js","webpack://wangEditor/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://wangEditor/./node_modules/core-js-pure/internals/define-well-known-symbol.js","webpack://wangEditor/./node_modules/core-js-pure/internals/path.js","webpack://wangEditor/./node_modules/core-js-pure/internals/fails.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-object.js","webpack://wangEditor/./node_modules/core-js-pure/internals/descriptors.js","webpack://wangEditor/./node_modules/core-js-pure/internals/has.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-define-property.js","webpack://wangEditor/./node_modules/core-js-pure/internals/entry-virtual.js","webpack://wangEditor/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://wangEditor/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://wangEditor/./node_modules/css-loader/dist/runtime/api.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js","webpack://wangEditor/./src/menus/menu-constructors/DropListMenu.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/an-object.js","webpack://wangEditor/./src/menus/menu-constructors/BtnMenu.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-method-uses-to-length.js","webpack://wangEditor/./src/menus/menu-constructors/Panel.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/classof-raw.js","webpack://wangEditor/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://wangEditor/./src/utils/const.ts","webpack://wangEditor/./src/menus/menu-constructors/PanelMenu.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/a-function.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-length.js","webpack://wangEditor/./node_modules/core-js-pure/internals/get-built-in.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-pure.js","webpack://wangEditor/./node_modules/core-js-pure/internals/internal-state.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-object.js","webpack://wangEditor/./node_modules/core-js-pure/internals/iterators.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-iteration.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js","webpack://wangEditor/./src/menus/menu-constructors/Tooltip.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://wangEditor/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://wangEditor/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://wangEditor/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://wangEditor/./node_modules/core-js-pure/internals/redefine.js","webpack://wangEditor/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-array.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-primitive.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-create.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-keys.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-integer.js","webpack://wangEditor/./node_modules/core-js-pure/internals/shared-key.js","webpack://wangEditor/./node_modules/core-js-pure/internals/uid.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://wangEditor/./node_modules/core-js-pure/internals/classof.js","webpack://wangEditor/./node_modules/core-js-pure/internals/iterate.js","webpack://wangEditor/./node_modules/core-js-pure/internals/whitespaces.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://wangEditor/./node_modules/core-js-pure/internals/indexed-object.js","webpack://wangEditor/./node_modules/core-js-pure/internals/document-create-element.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-includes.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://wangEditor/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://wangEditor/./node_modules/core-js-pure/internals/shared.js","webpack://wangEditor/./node_modules/core-js-pure/internals/define-iterator.js","webpack://wangEditor/./node_modules/core-js-pure/internals/native-symbol.js","webpack://wangEditor/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://wangEditor/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://wangEditor/./node_modules/core-js-pure/internals/an-instance.js","webpack://wangEditor/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://wangEditor/./node_modules/core-js-pure/internals/new-promise-capability.js","webpack://wangEditor/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-species-create.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js","webpack://wangEditor/./node_modules/core-js-pure/internals/create-property.js","webpack://wangEditor/./node_modules/core-js-pure/internals/string-trim.js","webpack://wangEditor/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://wangEditor/./src/menus/menu-constructors/Menu.ts","webpack://wangEditor/./src/menus/img/upload-img.ts","webpack://wangEditor/./src/utils/data-structure/cache.ts","webpack://wangEditor/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-forced.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://wangEditor/./node_modules/core-js-pure/internals/html.js","webpack://wangEditor/./node_modules/core-js-pure/internals/shared-store.js","webpack://wangEditor/./node_modules/core-js-pure/internals/inspect-source.js","webpack://wangEditor/./node_modules/core-js-pure/internals/iterators-core.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://wangEditor/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://wangEditor/./node_modules/core-js-pure/internals/native-promise-constructor.js","webpack://wangEditor/./node_modules/core-js-pure/internals/redefine-all.js","webpack://wangEditor/./node_modules/core-js-pure/internals/set-species.js","webpack://wangEditor/./node_modules/core-js-pure/internals/species-constructor.js","webpack://wangEditor/./node_modules/core-js-pure/internals/task.js","webpack://wangEditor/./node_modules/core-js-pure/internals/engine-is-ios.js","webpack://wangEditor/./node_modules/core-js-pure/internals/promise-resolve.js","webpack://wangEditor/./node_modules/core-js-pure/internals/perform.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-method-is-strict.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/map.js","webpack://wangEditor/./node_modules/core-js-pure/internals/collection.js","webpack://wangEditor/./node_modules/core-js-pure/internals/internal-metadata.js","webpack://wangEditor/./node_modules/core-js-pure/internals/collection-strong.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/helpers/typeof.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js","webpack://wangEditor/./src/config/style.ts","webpack://wangEditor/./src/text/paste/paste-event.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/set.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js","webpack://wangEditor/./src/menus/menu-constructors/DropList.ts","webpack://wangEditor/./src/menus/link/is-active.ts","webpack://wangEditor/./src/menus/code/is-active.ts","webpack://wangEditor/./src/wangEditor.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/object/define-property.js","webpack://wangEditor/./node_modules/core-js-pure/es/object/define-property.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://wangEditor/(webpack)/buildin/global.js","webpack://wangEditor/./node_modules/core-js-pure/stable/object/create.js","webpack://wangEditor/./node_modules/core-js-pure/es/object/create.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.object.create.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://wangEditor/./node_modules/core-js-pure/internals/set-global.js","webpack://wangEditor/./src/assets/style/common.less?4672","webpack://wangEditor/./src/assets/style/common.less","webpack://wangEditor/./src/assets/style/icon.less?c1d5","webpack://wangEditor/./src/assets/style/icon.less","webpack://wangEditor/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://wangEditor/./src/assets/font/w-e-icon.woff","webpack://wangEditor/./src/assets/style/menus.less?3c63","webpack://wangEditor/./src/assets/style/menus.less","webpack://wangEditor/./src/assets/style/text.less?71cc","webpack://wangEditor/./src/assets/style/text.less","webpack://wangEditor/./src/assets/style/panel.less?63fd","webpack://wangEditor/./src/assets/style/panel.less","webpack://wangEditor/./src/assets/style/droplist.less?4262","webpack://wangEditor/./src/assets/style/droplist.less","webpack://wangEditor/./src/utils/polyfill.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js","webpack://wangEditor/./node_modules/core-js-pure/stable/promise/index.js","webpack://wangEditor/./node_modules/core-js-pure/es/promise/index.js","webpack://wangEditor/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://wangEditor/./node_modules/core-js-pure/internals/native-weak-map.js","webpack://wangEditor/./node_modules/core-js-pure/internals/create-iterator-constructor.js","webpack://wangEditor/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-to-string.js","webpack://wangEditor/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://wangEditor/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.promise.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://wangEditor/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://wangEditor/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://wangEditor/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://wangEditor/./node_modules/core-js-pure/internals/microtask.js","webpack://wangEditor/./node_modules/core-js-pure/internals/host-report-errors.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.promise.all-settled.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.promise.finally.js","webpack://wangEditor/./src/editor/index.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/for-each.js","webpack://wangEditor/./node_modules/core-js-pure/stable/array/virtual/for-each.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/for-each.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.for-each.js","webpack://wangEditor/./node_modules/core-js-pure/internals/array-for-each.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/includes.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/includes.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/includes.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.includes.js","webpack://wangEditor/./node_modules/core-js-pure/es/string/virtual/includes.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.string.includes.js","webpack://wangEditor/./node_modules/core-js-pure/internals/not-a-regexp.js","webpack://wangEditor/./node_modules/core-js-pure/internals/is-regexp.js","webpack://wangEditor/./node_modules/core-js-pure/internals/correct-is-regexp-logic.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/filter.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/filter.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/filter.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.filter.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/splice.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/splice.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/splice.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.splice.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/index-of.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/index-of.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/index-of.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.index-of.js","webpack://wangEditor/./node_modules/core-js-pure/stable/map/index.js","webpack://wangEditor/./node_modules/core-js-pure/es/map/index.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.map.js","webpack://wangEditor/./node_modules/core-js-pure/internals/freezing.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/trim.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/trim.js","webpack://wangEditor/./node_modules/core-js-pure/es/string/virtual/trim.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.string.trim.js","webpack://wangEditor/./node_modules/core-js-pure/internals/string-trim-forced.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/map.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/map.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/map.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.map.js","webpack://wangEditor/./node_modules/core-js-pure/stable/array/is-array.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/is-array.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.is-array.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js","webpack://wangEditor/./node_modules/core-js-pure/features/symbol/iterator.js","webpack://wangEditor/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js/symbol.js","webpack://wangEditor/./node_modules/core-js-pure/features/symbol/index.js","webpack://wangEditor/./node_modules/core-js-pure/es/symbol/index.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.math.to-string-tag.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://wangEditor/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://wangEditor/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://wangEditor/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://wangEditor/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://wangEditor/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://wangEditor/./node_modules/core-js-pure/stable/set-timeout.js","webpack://wangEditor/./node_modules/core-js-pure/modules/web.timers.js","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/slice.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/slice.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/slice.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.slice.js","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js","webpack://wangEditor/./node_modules/core-js-pure/stable/parse-int.js","webpack://wangEditor/./node_modules/core-js-pure/es/parse-int.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.parse-int.js","webpack://wangEditor/./node_modules/core-js-pure/internals/number-parse-int.js","webpack://wangEditor/./src/config/index.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js","webpack://wangEditor/./node_modules/core-js-pure/stable/object/assign.js","webpack://wangEditor/./node_modules/core-js-pure/es/object/assign.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.object.assign.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-assign.js","webpack://wangEditor/./src/config/menus.ts","webpack://wangEditor/./src/config/events.ts","webpack://wangEditor/./src/config/paste.ts","webpack://wangEditor/./src/config/cmd.ts","webpack://wangEditor/./src/config/image.ts","webpack://wangEditor/./src/config/text.ts","webpack://wangEditor/./src/config/lang.ts","webpack://wangEditor/./src/config/history.ts","webpack://wangEditor/./src/editor/selection.ts","webpack://wangEditor/./src/editor/selection-range-top-nodes/index.ts","webpack://wangEditor/./src/editor/command.ts","webpack://wangEditor/./src/text/index.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/find.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/find.js","webpack://wangEditor/./node_modules/core-js-pure/es/array/virtual/find.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.array.find.js","webpack://wangEditor/./src/text/event-hooks/index.ts","webpack://wangEditor/./src/text/event-hooks/enter-to-create-p.ts","webpack://wangEditor/./src/text/event-hooks/del-to-keep-p.ts","webpack://wangEditor/./src/text/event-hooks/tab-to-space.ts","webpack://wangEditor/./src/text/event-hooks/paste-text-html.ts","webpack://wangEditor/./src/text/paste/parse-html.ts","webpack://wangEditor/./src/text/paste/tags.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/set/index.js","webpack://wangEditor/./node_modules/core-js-pure/es/set/index.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.set.js","webpack://wangEditor/./src/lib/simplehtmlparser.js","webpack://wangEditor/./src/text/event-hooks/img-click-active.ts","webpack://wangEditor/./src/text/getChildrenJSON.ts","webpack://wangEditor/./src/menus/index.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/instance/bind.js","webpack://wangEditor/./node_modules/core-js-pure/es/instance/bind.js","webpack://wangEditor/./node_modules/core-js-pure/es/function/virtual/bind.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.function.bind.js","webpack://wangEditor/./node_modules/core-js-pure/internals/function-bind.js","webpack://wangEditor/./src/menus/menu-list.ts","webpack://wangEditor/./src/menus/bold/index.ts","webpack://wangEditor/./node_modules/core-js-pure/stable/object/set-prototype-of.js","webpack://wangEditor/./node_modules/core-js-pure/es/object/set-prototype-of.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.object.set-prototype-of.js","webpack://wangEditor/./src/menus/head/index.ts","webpack://wangEditor/./src/menus/link/index.ts","webpack://wangEditor/./src/menus/link/create-panel-conf.ts","webpack://wangEditor/./src/menus/link/bind-event/index.ts","webpack://wangEditor/./src/menus/link/bind-event/tooltip-event.ts","webpack://wangEditor/./src/menus/italic/index.ts","webpack://wangEditor/./src/menus/underline/index.ts","webpack://wangEditor/./src/menus/strike-through/index.ts","webpack://wangEditor/./src/menus/font-style/index.ts","webpack://wangEditor/./src/menus/font-style/FontStyleList.ts","webpack://wangEditor/./src/menus/font-size/index.ts","webpack://wangEditor/./src/menus/font-size/FontSizeList.ts","webpack://wangEditor/./src/menus/justify/index.ts","webpack://wangEditor/./src/menus/quote/index.ts","webpack://wangEditor/./src/menus/back-color/index.ts","webpack://wangEditor/./src/menus/font-color/index.ts","webpack://wangEditor/./src/menus/video/index.ts","webpack://wangEditor/./src/menus/video/create-panel-conf.ts","webpack://wangEditor/./src/menus/img/index.ts","webpack://wangEditor/./src/menus/img/create-panel-conf.ts","webpack://wangEditor/./src/editor/upload/upload-core.ts","webpack://wangEditor/./src/editor/upload/progress.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js","webpack://wangEditor/./node_modules/core-js-pure/stable/date/now.js","webpack://wangEditor/./node_modules/core-js-pure/es/date/now.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.date.now.js","webpack://wangEditor/./src/menus/img/bind-event/index.ts","webpack://wangEditor/./src/menus/img/bind-event/paste-img.ts","webpack://wangEditor/./src/menus/img/bind-event/drop-img.ts","webpack://wangEditor/./src/menus/img/bind-event/drag-size.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js","webpack://wangEditor/./node_modules/core-js-pure/stable/parse-float.js","webpack://wangEditor/./node_modules/core-js-pure/es/parse-float.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.parse-float.js","webpack://wangEditor/./node_modules/core-js-pure/internals/number-parse-float.js","webpack://wangEditor/./src/assets/style/drag-size.less?198e","webpack://wangEditor/./src/assets/style/drag-size.less","webpack://wangEditor/./src/menus/img/bind-event/tooltip-event.ts","webpack://wangEditor/./src/menus/indent/index.ts","webpack://wangEditor/./src/menus/indent/operate-element.ts","webpack://wangEditor/./src/menus/indent/increase-indent-style.ts","webpack://wangEditor/./src/menus/indent/decrease-indent-style.ts","webpack://wangEditor/./src/menus/emoticon/index.ts","webpack://wangEditor/./src/menus/emoticon/create-panel-conf.ts","webpack://wangEditor/./src/menus/list/index.ts","webpack://wangEditor/./src/menus/lineHeight/index.ts","webpack://wangEditor/./src/menus/lineHeight/lineHeightList.ts","webpack://wangEditor/./src/menus/undo/index.ts","webpack://wangEditor/./src/menus/redo/index.ts","webpack://wangEditor/./src/menus/table/index.ts","webpack://wangEditor/./src/menus/table/create-panel-conf.ts","webpack://wangEditor/./src/assets/style/create-panel-conf.less?d818","webpack://wangEditor/./src/assets/style/create-panel-conf.less","webpack://wangEditor/./src/menus/table/create-table.ts","webpack://wangEditor/./src/menus/table/bind-event/index.ts","webpack://wangEditor/./src/menus/table/bind-event/tooltip-event.ts","webpack://wangEditor/./src/menus/table/bind-event/event/operating-event.ts","webpack://wangEditor/./src/menus/table/bind-event/event/getNode.ts","webpack://wangEditor/./src/menus/code/index.ts","webpack://wangEditor/./src/menus/code/create-panel-conf.ts","webpack://wangEditor/./src/menus/code/bind-event/index.ts","webpack://wangEditor/./src/menus/code/bind-event/tooltip-event.ts","webpack://wangEditor/./src/menus/split-line/index.ts","webpack://wangEditor/./src/menus/split-line/bind-event/index.ts","webpack://wangEditor/./src/menus/split-line/bind-event/tooltip-event.ts","webpack://wangEditor/./src/editor/init-fns/init-dom.ts","webpack://wangEditor/./src/editor/init-fns/init-selection.ts","webpack://wangEditor/./src/editor/init-fns/bind-event.ts","webpack://wangEditor/./src/editor/init-fns/i18next-init.ts","webpack://wangEditor/./src/editor/init-fns/set-full-screen.ts","webpack://wangEditor/./src/assets/style/full-screen.less?b9eb","webpack://wangEditor/./src/assets/style/full-screen.less","webpack://wangEditor/./src/editor/z-index/index.ts","webpack://wangEditor/./src/editor/change/index.ts","webpack://wangEditor/./src/utils/observer/mutation.ts","webpack://wangEditor/./src/editor/history/index.ts","webpack://wangEditor/./src/editor/history/data/content.ts","webpack://wangEditor/./src/editor/history/data/node/index.ts","webpack://wangEditor/./src/utils/data-structure/stack.ts","webpack://wangEditor/./src/editor/history/data/node/compile.ts","webpack://wangEditor/./src/editor/history/data/node/decompilation.ts","webpack://wangEditor/./node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js","webpack://wangEditor/./node_modules/core-js-pure/stable/object/entries.js","webpack://wangEditor/./node_modules/core-js-pure/es/object/entries.js","webpack://wangEditor/./node_modules/core-js-pure/modules/es.object.entries.js","webpack://wangEditor/./node_modules/core-js-pure/internals/object-to-array.js","webpack://wangEditor/./src/editor/history/data/html/index.ts","webpack://wangEditor/./src/utils/data-structure/chain.ts","webpack://wangEditor/./src/editor/history/data/scroll/index.ts","webpack://wangEditor/./src/editor/history/data/range/index.ts","webpack://wangEditor/./src/editor/disable/index.ts","webpack://wangEditor/./src/assets/style/disable.less?38a7","webpack://wangEditor/./src/assets/style/disable.less","webpack://wangEditor/./src/menus/menu-constructors/index.ts"],"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","obj","DomElement","util_1","require","AGENT_EVENTS","_styleArrTrim","style","styleArr","resultArr","split","item","arr","length","push","selector","this","elems","dataSource","selectorResult","nodeType","HTMLCollection","NodeList","_isDOMList","toArray","Array","replace","html","div","document","createElement","innerHTML","children","_createElemByHTML","querySelectorAll","_querySelectorAll","id","configurable","forEach","fn","elem","clone","deep","cloneList","cloneNode","$","index","first","last","on","type","agentFn","e","target","matches","addEventListener","off","idx","removeEventListener","attr","val","getAttribute","setAttribute","removeAttr","removeAttribute","addClass","className","join","removeClass","hasClass","css","currentStyle","getBoundingClientRect","show","hide","childNodes","append","$children","child","appendChild","remove","parent_1","parentElement","removeChild","isContain","$child","contains","getSizeData","getNodeName","nodeName","getNode","getClientHeight","clientHeight","find","text","focus","prev","previousElementSibling","next","nextElementSibling","parent","parentUntil","curElem","equal","$elem","HTMLElement","insertBefore","referenceNode","parentNode","insertAfter","anchorNode","nextSibling","data","set","getNodeTop","editor","$parent","$textElem","getOffsetData","$node","top","offsetTop","left","offsetLeft","width","offsetWidth","height","offsetHeight","offsetParent","global","getOwnPropertyDescriptor","f","isForced","path","createNonEnumerableProperty","has","wrapConstructor","NativeConstructor","Wrapper","a","b","arguments","apply","options","source","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","TARGET","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","forced","noTargetGet","wrap","Function","sham","real","__spreadArrays","il","k","j","jl","deepClone","isFunction","debounce","throttle","arrForEach","replaceSpecialSymbol","replaceHtmlSymbol","getRandom","UA","NavUA","_ua","navigator","userAgent","math","match","isOldEdge","isFirefox","test","isIE","isWebkit","prefix","Math","random","toString","fakeArr","interval","flag","args","_i","delay","lastFn","clearTimeout","setTimeout","it","check","globalThis","self","shared","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wrappedWellKnownSymbolModule","NAME","exec","error","fails","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","TypeError","CONSTRUCTOR","definePropertyModule","createPropertyDescriptor","memo","isOldIE","Boolean","all","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","list","idCountMap","identifiers","base","count","concat","media","sourceMap","references","updater","addStyle","insertStyleElement","attributes","nonce","keys","insert","Error","textStore","replaceText","replacement","filter","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","applyToTag","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","singleton","singletonCounter","update","styleIndex","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","useSourceMap","map","content","cssMapping","sourceMapping","base64","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","extendStatics","__extends","__proto__","__","constructor","__importDefault","mod","dom_core_1","Menu_1","DropList_1","DropListMenu","_super","conf","_this","title","i18next","config","lang","dropList","selection","getRange","zIndex","txt","eventHooks","dropListMenuHoverEvents","showTimeoutId","hideTimeoutId","isObject","String","BtnMenu","IndexedObject","requireObjectCoercible","cache","thrower","METHOD_NAME","method","ACCESSORS","argument0","argument1","undefined","const_1","Panel","menu","$container","clickEvents","hideCurAllPanels","toolbarClickEvents","createdMenus","rect","$toolbarElem","menuRect","$closeBtn","$tabTitleContainer","$tabContentContainer","tabs","tabTitleArr","tabContentArr","tab","tabIndex","tpl","$title","$content","stopPropagation","events","event","EMPTY_FN","$inputs","setPanel","add","size","panel","slice","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","wellKnownSymbol","TAG","SET_METHOD","urlRegex","imgRegex","PanelMenu","toInteger","min","argument","aFunction","variable","namespace","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","TYPE","state","toObject","toLength","arraySpeciesCreate","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","specificCreate","boundFunction","some","every","findIndex","Tooltip","$targetElem","_show","_isInsertTextContainer","getPositionData","pageScrollTop","documentElement","scrollTop","targetElemRect","textElemRect","targetOffset","targetParentElem","$textContainerElem","targetParentElemHeight","absoluteTop","tooltipHeight","bottom","appendMenus","$wrapper","preventDefault","onClick","_a","bitmap","writable","DOMIterables","classof","Iterators","COLLECTION_NAME","Collection","CollectionPrototype","isArray","arg","V8_VERSION","SPECIES","array","foo","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","input","PREFERRED_STRING","valueOf","activeXDocument","defineProperties","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","display","src","contentWindow","open","F","Properties","internalObjectKeys","ceil","floor","isNaN","postfix","charAt","InternalStateModule","defineIterator","setInternalState","getInternalState","iterated","string","point","done","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","step","stop","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","EXISTS","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","indexOf","max","integer","IS_PURE","version","copyright","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","redefine","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","getOwnPropertySymbols","Constructor","getBuiltIn","PromiseCapability","C","resolve","reject","promise","$$resolve","$$reject","process","versions","v8","originalArray","propertyKey","whitespace","ltrim","RegExp","rtrim","start","end","trim","Panel_1","Menu","_active","menuClickEvents","clickHandler","active","unActive","upload_core_1","progress_1","UploadImg","alert","alertInfo","debugInfo","customAlert","console","insertImg","_this_1","cmd","linkImgCallback","img","onload","onerror","onabort","uploadImg","files","uploadImgServer","uploadImgShowBase64","maxSize","uploadImgMaxSize","maxSizeM","maxLength","uploadImgMaxLength","uploadFileName","uploadImgParams","uploadImgParamsWithUrl","uploadImgHeaders","hooks","uploadImgHooks","timeout","uploadImgTimeout","withCredentials","customUploadImg","resultFiles","errInfos","file","formData","FormData","uploadImgServerArr","uploadImgServerHash","xhr","headers","beforeSend","before","onTimeout","onProgress","percent","progressBar","lengthComputable","loaded","total","onError","status","onFail","resultStr","fail","onSuccess","customInsert","errno","link","success","reader","FileReader","readAsDataURL","stack_1","Cache","isRe","CeilStack","revokeData","resetMaxSize","resetMax","save","clear","instack","revoke","outstack","restore","feature","detection","normalize","POLYFILL","NATIVE","toLowerCase","names","setGlobal","functionToString","inspectSource","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","aPossiblePrototype","setter","CORRECT_SETTER","Promise","unsafe","CONSTRUCTOR_NAME","defaultConstructor","S","defer","channel","port","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","run","runner","listener","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","importScripts","newPromiseCapability","x","promiseCapability","InternalMetadataModule","iterate","anInstance","internalStateGetterFor","wrapper","common","IS_WEAK","ADDER","NativePrototype","exported","collection","IS_ADDER","getConstructor","REQUIRED","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","meta","fastKey","getWeakData","onFreeze","redefineAll","setSpecies","previous","entry","getEntry","removed","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","kind","_Symbol$iterator","_Symbol","_typeof","defineWellKnownSymbol","getOwnPropertyNames","getPasteImgs","getPasteHtml","getPasteText","parse_html_1","clipboardData","pasteText","getData","filterStyle","ignoreImg","pasteHtml","items","getAsFile","DropList","$list","$li","rendered","$menuELem","menuHeight","$selectionELem","getSelectionContainerElem","__createBinding","k2","__exportStar","index_1","ex","desc","g","D","objectKeys","api","default","locals","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_REPLACEMENT_0___","url","hash","needQuotes","Element","ownerDocument","CONVERT_TO_STRING","pos","second","position","charCodeAt","codeAt","addToUnscopables","Arguments","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","then","INCORRECT_ITERATION","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","fetch","capability","$promiseResolve","remaining","alreadyCalled","race","ArrayPrototype","ENTRIES","returnMethod","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","flush","toggle","node","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","allSettled","onFinally","__setModuleDefault","v","__importStar","config_1","selection_1","command_1","index_2","init_dom_1","init_selection_1","bind_event_1","i18next_init_1","set_full_screen_1","z_index_1","index_3","index_4","disable_1","BtnMenu_1","DropListMenu_1","PanelMenu_1","Tooltip_1","EDITOR_ID","Editor","toolbarSelector","textSelector","beforeDestroyHooks","toolbarElemId","textElemId","isFocus","isComposing","isCompatibleMode","menus","change","history","initSelection","newLine","init","compatibleMode","onchangeTimeout","beforeDestroy","destroy","fullScreen","setFullScreen","unFullScreen","setUnFullScreen","disable","enable","own","entryVirtual","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","arrayIncludes","stringIncludes","StringPrototype","$includes","notARegExp","correctIsRegExpLogic","searchString","isRegExp","MATCH","regexp","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","createProperty","0","deleteCount","insertCount","actualDeleteCount","A","to","len","actualStart","argumentsLength","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","Map","collectionStrong","preventExtensions","$trim","forcedStringTrimMethod","whitespaces","$map","WrappedWellKnownSymbolModule","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","nativeObjectCreate","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","symbol","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","replacer","space","$replacer","windowNames","getWindowNames","scheduler","boundArgs","setInterval","nativeSlice","fin","parseInt","parseIntImplementation","$parseInt","hex","radix","menus_1","events_1","style_1","paste_1","cmd_1","image_1","text_1","lang_1","history_1","defaultConfig","linkCheck","linkImgCheck","assign","nativeAssign","B","chr","T","SINA_PATH1","SINA_PATH2","fontNames","fontSizes","small","normal","large","colors","languageType","languageTab","emotions","alt","lineHeights","undoLimit","indentation","onchange","onfocus","onblur","pasteFilterStyle","pasteIgnoreImg","pasteTextHandle","styleWithCSS","showLinkImg","placeholder","zIndexFullScreen","showFullScreen","languages","wangEditor","插入","默认","创建","修改","如","请输入正文","dropListMenu","设置标题","背景颜色","文字颜色","设置字号","设置字体","设置缩进","对齐方式","设置行高","序列","正文","indent","增加缩进","减少缩进","justify","靠左","居中","靠右","两端","无序列表","有序列表","panelMenus","emoticon","新浪","emoji","手势","image","图片链接","上传图片","网络图片","链接","链接文字","取消链接","查看链接","video","插入视频","table","行","列","的","表格","添加行","删除行","添加列","删除列","设置表头","取消表头","插入表格","删除表格","code","删除代码","修改代码","插入代码","validate","张图片","大于","不是图片","返回结果","上传图片超时","上传图片错误","上传图片失败","插入图片错误","一次最多上传","下载链接失败","图片验证未通过","服务器返回状态","上传图片返回结果错误","请替换为支持的图片类型","您插入的网络图片无法识别","您刚才插入的图片链接未通过编辑器校验","en","historyMaxSize","SelectionAndRange","_currentRange","saveRange","_range","getSelection","rangeCount","range","getRangeAt","$containerElem","collapseRange","toStart","collapse","getSelectionText","commonAncestorContainer","getSelectionStartElem","startContainer","getSelectionEndElem","endContainer","isSelectionEmpty","startOffset","endOffset","restoreSelection","removeAllRanges","addRange","createEmptyRange","setEnd","createRangeByElem","isContent","createRange","selectNodeContents","selectNode","getSelectionRangeTopNodes","getSelectionNodes","moveCursor","setStart","SelectionRangeTopNodes","$nodeList","$startElem","$endElem","recordSelectionNodes","addNodeList","isEndElem","getNextSibling","Command","execCommand","insertHTML","insertElem","changeActive","queryCommandSupported","insertNode","deleteContents","queryCommandValue","queryCommandState","getChildrenJSON_1","Text","changeEvents","dropEvents","keyupEvents","tabUpEvents","tabDownEvents","enterUpEvents","enterDownEvents","deleteUpEvents","deleteDownEvents","pasteEvents","linkClickEvents","codeClickEvents","textScrollEvents","imgClickEvents","imgDragBarMouseDownEvents","tableClickEvents","splitLineEvents","_saveRange","_bindEventHooks","togglePlaceholder","$placeholder","getJSON","keyCode","ctrlKey","metaKey","shiftKey","$link","$target","$img","$code","$splitLine","splitLineClickEvents","$dom","$find","SKIPS_HOLES","enter_to_create_p_1","del_to_keep_p_1","tab_to_space_1","paste_text_html_1","img_click_active_1","insertEmptyP","$selectionElem","$p","$parentElem","txtHtml","selectionNodeName","parentNodeName","paste_event_1","formatHtml","$topElem","topNodeName","tags_1","simplehtmlparser_js_1","isIgnoreTag","IGNORE_TAGS","CUR_TAG","parse","startElement","attrs","EMPTY_TAGS","markTagStart","necessaryAttrKeys","NECESSARY_ATTRS","attrsForTag","attrStrArr","genStartHtml","characters","str","endElement","genEndHtml","comment","regForMatch","filterEmptySpan","TOP_LEVEL_TAGS","Set","SimpleHtmlParser","startTagRe","endTagRe","attrRe","oHandler","contentHandler","lm","rc","treatAsChars","oThis","substring","leftContext","lastMatch","rightContext","parseEndTag","parseStartTag","sTag","sTagName","sRest","parseAttributes","a0","a1","a2","a3","a4","a5","a6","parseAttribute","sAttribute","sName","empty","getChildrenJSON","elemResult","textContent","attrData","attrList","attrListLength","menu_list_1","Menus","menuList","constructorList","extend","menuKey","MenuConstructor","_addToToolbar","menuFind","tryChangeActive","FunctionPrototype","factories","construct","argsLength","partArgs","index_5","index_6","index_7","font_size_1","index_8","index_9","index_10","index_11","index_12","index_13","index_14","index_15","index_16","index_17","index_18","index_19","index_20","code_1","index_21","bold","italic","underline","strikeThrough","fontName","fontSize","quote","backColor","foreColor","lineHeight","undo","redo","splitLine","Bold","isSelectEmpty","Head","dropListConf","command","cmdValue","create_panel_conf_1","is_active_1","Link","$linkElem","isActive","createPanel","$selectedLink","inputLinkId","inputTextId","btnOkId","btnDelId","delBtnDisplay","selectLinkElem","$text","checkLink","insertLink","selectionText","delLink","tooltip_event_1","tooltip","showLinkTooltip","hideLinkTooltip","createShowHideFn","Italic","Underline","StrikeThrough","FontStyleList_1","FontStyle","fontListConf","getItemList","FontStyleList","itemList","fontValue","FontSizeList_1","FontSize","FontSizeList","Justify","$elems","justifyValue_1","justifyLeft","justifyCenter","justifyRight","justifyFull","Quote","$topNodeElem","getTopNodeName","nodeList","targetElem","$targetELem","element","BackColor","colorListConf","color","FontColor","Video","inputIFrameId","$video","insertVideo","Image","upload_img_1","upTriggerId","upFileId","linkUrlId","linkBtnId","fileMultipleAttr","tabsConf","fileElem","click","fileList","$linkUrl","log","checkLinkImg","option","XMLHttpRequest","ontimeout","upload","onprogress","setRequestHeader","beforeResult","prevent","msg","onreadystatechange","readyState","responseText","send","Progress","$textContainer","$bar","isShow","time","timeoutId","progress","Date","getTime","paste_img_1","drop_img_1","drag_size_1","pasteImgHandler","_haveTextOrHtml","pastedFiles","dataTransfer","setDragStyle","$drag","$imgTarget","createDragBox","hideDrag","firstX","clientX","firstY","clientY","boxRect","imgRect","ratio","setW","setH","$document","mouseMoveHandler","mouseUpHandler","offEvents","ev","toFixed","newImgRect","bindDragEvents","showDrag","rectW","rectH","showDargBox","parseFloat","parseFloatImplementation","$parseFloat","Infinity","trimmedString","showImgTooltip","hideImgTooltip","operate_element_1","Indent","$selectionStartElem","increase_indent_style_1","decrease_indent_style_1","lengthRegex","percentRegex","parseIndentation","unit","Number","oldPL","oldVal","newVal","Emoticon","GenerateExpressionStructure","ele","res","con","insertHtml","List","lineHeightList_1","LineHeight","allowArray","st","$selectionAll","dom","styleList","styleStr","indexStore_1","arrayDom_a","arrayDom_b","StartElem_1","EndElem_1","childList","getDom","shift","setRange","styleProcessing","action","selectAllChildren","DOM","getParentNode","html_str","startDom","endDom","star","lineHeightList","Undo","Redo","Table","create_table_1","createTable","colId","rowId","insertBtnId","i18nPrefix","colValue","rowValue","createAction","CreateTable","$ul","$ol","tableDom","createTableHtml","rowStr","colStr","operating_event_1","getNode_1","isMoreRowAction","showTableTooltip","getnode","selectDom","$currentRow","getRowNode","getCurrentRowIndex","htmlStr","getTableHtml","newdom","ProcessingRow","trLength","DeleteRow","getCurrentColIndex","ProcessingCol","tdLength","DeleteCol","setTheHeader","hideTableTooltip","removeAndInsertAction","domArray","generateDomAction","childNodesLenght","tr","td","_loop_1","cArray","_loop_2","_loop_3","th","$nodeChild","rowDom","colDom","formatCodeHtml","preArr","formatEnterCode","deleteHighlightCode","Code","insertLineCode","languageId","insertCode","$codeElem","selectCodeElem","language","formatCode","getElementById","highlight","highlightAuto","showCodeTooltip","hideCodeTooltip","$DomElement","$tableDOM","$imgDOM","collapsed","createSplitLine","showSplitLineTooltip","hideSplitLineTooltip","styleSettings","$toolbarSelector","textContainerCliheight","$last","_bindChange","isChild","isToolbar","isMenu","currentHtml","_focusHandler","_blurHandler","_bindFocusAndBlur","_bindInput","strArr","lng","defaultNS","resources","$editorParent","$iconElem","currentTarget","ZIndex","tier","toolbar","textContainer","baseZIndex","tierName","mutation_1","Change","mutations","observer","tar","attributeName","mutationsFilter","asyncSave","Mutation","subtree","attributeOldValue","characterDataOldValue","callback","Node","connect","disconnect","takeRecords","content_1","scroll_1","range_1","History","scroll","node_1","html_1","ContentCache","compile","cache_1","compile_1","decompilation_1","NodeCache","reset","abs","unshift","compileType","compileValue","complieNodes","addedNodes","removedNodes","compliePosition","previousSibling","childs","removeNode","removeCache","record","oldValue","nodes","replenishNode","replenishData","reference","revokeFns","_b","relative","restoreFns","data_1","$entries","TO_ENTRIES","chain_1","HtmlCache","TailChain","insertLast","current","ScrollCache","rangeToObject","RangeCache","lastRange","updateLastRange","rangeHandle","selectionchange","handle","$contentDom","$menuDom","isCurtain","textContainerZindexValue","menuZindexValue"],"mappings":"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","file":"wangEditor.min.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[\"wangEditor\"] = factory();\n\telse\n\t\troot[\"wangEditor\"] = 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 = 126);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","module.exports = require(\"core-js-pure/stable/object/define-property\");","\"use strict\";\r\n/**\r\n * @description 封装 DOM 操作\r\n * @wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DomElement = void 0;\r\nvar util_1 = require(\"./util\");\r\nvar AGENT_EVENTS = [];\r\n/**\r\n * 根据 html 字符串创建 elem\r\n * @param {String} html html\r\n */\r\nfunction _createElemByHTML(html) {\r\n var div = document.createElement('div');\r\n div.innerHTML = html;\r\n var elems = div.children;\r\n return util_1.toArray(elems);\r\n}\r\n/**\r\n * 判断是否是 DOM List\r\n * @param selector DOM 元素或列表\r\n */\r\nfunction _isDOMList(selector) {\r\n if (!selector) {\r\n return false;\r\n }\r\n if (selector instanceof HTMLCollection || selector instanceof NodeList) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * 封装 querySelectorAll\r\n * @param selector css 选择器\r\n */\r\nfunction _querySelectorAll(selector) {\r\n var elems = document.querySelectorAll(selector);\r\n return util_1.toArray(elems);\r\n}\r\n/**\r\n * 封装 _styleArrTrim\r\n * @param styleArr css\r\n */\r\nfunction _styleArrTrim(style) {\r\n var styleArr = [];\r\n var resultArr = [];\r\n if (!Array.isArray(style)) {\r\n // 有 style,将 style 按照 `;` 拆分为数组\r\n styleArr = style.split(';');\r\n }\r\n else {\r\n styleArr = style;\r\n }\r\n styleArr.forEach(function (item) {\r\n // 对每项样式,按照 : 拆分为 key 和 value\r\n var arr = item.split(':').map(function (i) {\r\n return i.trim();\r\n });\r\n if (arr.length === 2) {\r\n resultArr.push(arr[0] + ':' + arr[1]);\r\n }\r\n });\r\n return resultArr;\r\n}\r\n// 构造函数\r\nvar DomElement = /** @class */ (function () {\r\n function DomElement(selector) {\r\n // 初始化属性\r\n this.selector = '';\r\n this.elems = [];\r\n this.length = this.elems.length;\r\n this.dataSource = new Map();\r\n if (!selector) {\r\n return;\r\n }\r\n // 原本就是 DomElement 实例,则直接返回\r\n if (selector instanceof DomElement) {\r\n return selector;\r\n }\r\n var selectorResult = []; // 存储查询结果\r\n this.selector = selector;\r\n var nodeType = selector.nodeType;\r\n if (nodeType === 9) {\r\n // document 节点\r\n selectorResult = [selector];\r\n }\r\n else if (nodeType === 1) {\r\n // 单个 DOM 节点\r\n selectorResult = [selector];\r\n }\r\n else if (_isDOMList(selector)) {\r\n // DOM List\r\n selectorResult = util_1.toArray(selector);\r\n }\r\n else if (selector instanceof Array) {\r\n // Element 数组(其他数据类型,暂时忽略)\r\n selectorResult = selector;\r\n }\r\n else if (typeof selector === 'string') {\r\n // 字符串\r\n selector = selector.replace('/\\n/mg', '').trim();\r\n if (selector.indexOf('<') === 0) {\r\n // 如 <div>\r\n selectorResult = _createElemByHTML(selector);\r\n }\r\n else {\r\n // 如 #id .class\r\n selectorResult = _querySelectorAll(selector);\r\n }\r\n }\r\n var length = selectorResult.length;\r\n if (!length) {\r\n // 空数组\r\n return this;\r\n }\r\n // 加入 DOM 节点\r\n var i = 0;\r\n for (; i < length; i++) {\r\n this.elems.push(selectorResult[i]);\r\n }\r\n this.length = length;\r\n }\r\n Object.defineProperty(DomElement.prototype, \"id\", {\r\n /**\r\n * 获取元素 id\r\n */\r\n get: function () {\r\n return this.elems[0].id;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 遍历所有元素,执行回调函数\r\n * @param fn 回调函数\r\n */\r\n DomElement.prototype.forEach = function (fn) {\r\n for (var i = 0; i < this.length; i++) {\r\n var elem = this.elems[i];\r\n var result = fn.call(elem, elem, i);\r\n if (result === false) {\r\n break;\r\n }\r\n }\r\n return this;\r\n };\r\n /**\r\n * 克隆元素\r\n * @param deep 是否深度克隆\r\n */\r\n DomElement.prototype.clone = function (deep) {\r\n if (deep === void 0) { deep = false; }\r\n var cloneList = [];\r\n this.elems.forEach(function (elem) {\r\n cloneList.push(elem.cloneNode(!!deep));\r\n });\r\n return $(cloneList);\r\n };\r\n /**\r\n * 获取第几个元素\r\n * @param index index\r\n */\r\n DomElement.prototype.get = function (index) {\r\n if (index === void 0) { index = 0; }\r\n var length = this.length;\r\n if (index >= length) {\r\n index = index % length;\r\n }\r\n return $(this.elems[index]);\r\n };\r\n /**\r\n * 获取第一个元素\r\n */\r\n DomElement.prototype.first = function () {\r\n return this.get(0);\r\n };\r\n /**\r\n * 获取最后一个元素\r\n */\r\n DomElement.prototype.last = function () {\r\n var length = this.length;\r\n return this.get(length - 1);\r\n };\r\n DomElement.prototype.on = function (type, selector, fn) {\r\n if (!type)\r\n return this;\r\n // 没有 selector ,只有 type 和 fn\r\n if (typeof selector === 'function') {\r\n fn = selector;\r\n selector = '';\r\n }\r\n return this.forEach(function (elem) {\r\n // 没有事件代理\r\n if (!selector) {\r\n // 无代理\r\n elem.addEventListener(type, fn);\r\n return;\r\n }\r\n // 有事件代理\r\n var agentFn = function (e) {\r\n var target = e.target;\r\n if (target.matches(selector)) {\r\n ;\r\n fn.call(target, e);\r\n }\r\n };\r\n elem.addEventListener(type, agentFn);\r\n // 缓存代理事件\r\n AGENT_EVENTS.push({\r\n elem: elem,\r\n selector: selector,\r\n fn: fn,\r\n agentFn: agentFn,\r\n });\r\n });\r\n };\r\n DomElement.prototype.off = function (type, selector, fn) {\r\n if (!type)\r\n return this;\r\n // 没有 selector ,只有 type 和 fn\r\n if (typeof selector === 'function') {\r\n fn = selector;\r\n selector = '';\r\n }\r\n return this.forEach(function (elem) {\r\n // 解绑事件代理\r\n if (selector) {\r\n var idx = -1;\r\n for (var i = 0; i < AGENT_EVENTS.length; i++) {\r\n var item = AGENT_EVENTS[i];\r\n if (item.selector === selector && item.fn === fn && item.elem === elem) {\r\n idx = i;\r\n break;\r\n }\r\n }\r\n if (idx !== -1) {\r\n var agentFn = AGENT_EVENTS.splice(idx, 1)[0].agentFn;\r\n elem.removeEventListener(type, agentFn);\r\n }\r\n }\r\n else {\r\n elem.removeEventListener(type, fn);\r\n }\r\n });\r\n };\r\n DomElement.prototype.attr = function (key, val) {\r\n if (val == null) {\r\n // 获取数据\r\n return this.elems[0].getAttribute(key) || '';\r\n }\r\n // 否则,设置属性\r\n return this.forEach(function (elem) {\r\n elem.setAttribute(key, val);\r\n });\r\n };\r\n /**\r\n * 删除 属性\r\n * @param key key\r\n */\r\n DomElement.prototype.removeAttr = function (key) {\r\n this.forEach(function (elem) {\r\n elem.removeAttribute(key);\r\n });\r\n };\r\n /**\r\n * 添加 css class\r\n * @param className css class\r\n */\r\n DomElement.prototype.addClass = function (className) {\r\n if (!className) {\r\n return this;\r\n }\r\n return this.forEach(function (elem) {\r\n if (elem.className) {\r\n // 当前有 class\r\n var arr = elem.className.split(/\\s/);\r\n arr = arr.filter(function (item) {\r\n return !!item.trim();\r\n });\r\n // 添加 class\r\n if (arr.indexOf(className) < 0) {\r\n arr.push(className);\r\n }\r\n // 修改 elem.class\r\n elem.className = arr.join(' ');\r\n }\r\n else {\r\n // 当前没有 class\r\n elem.className = className;\r\n }\r\n });\r\n };\r\n /**\r\n * 添加 css class\r\n * @param className css class\r\n */\r\n DomElement.prototype.removeClass = function (className) {\r\n if (!className) {\r\n return this;\r\n }\r\n return this.forEach(function (elem) {\r\n if (!elem.className) {\r\n // 当前无 class\r\n return;\r\n }\r\n var arr = elem.className.split(/\\s/);\r\n arr = arr.filter(function (item) {\r\n item = item.trim();\r\n // 删除 class\r\n if (!item || item === className) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n // 修改 elem.class\r\n elem.className = arr.join(' ');\r\n });\r\n };\r\n /**\r\n * 是否有传入的 css class\r\n * @param className css class\r\n */\r\n DomElement.prototype.hasClass = function (className) {\r\n if (className === void 0) { className = ''; }\r\n if (!className) {\r\n return false;\r\n }\r\n var elem = this.elems[0];\r\n if (!elem.className) {\r\n // 当前无 class\r\n return false;\r\n }\r\n var arr = elem.className.split(/\\s/);\r\n return arr.includes(className); // 是否包含\r\n };\r\n DomElement.prototype.css = function (key, val) {\r\n var currentStyle;\r\n if (val == '') {\r\n currentStyle = '';\r\n }\r\n else {\r\n currentStyle = key + \":\" + val + \";\";\r\n }\r\n return this.forEach(function (elem) {\r\n var style = (elem.getAttribute('style') || '').trim();\r\n if (style) {\r\n // 有 style,将 style 按照 `;` 拆分为数组\r\n var resultArr = _styleArrTrim(style);\r\n // 替换现有的 style\r\n resultArr = resultArr.map(function (item) {\r\n if (item.indexOf(key) === 0) {\r\n return currentStyle;\r\n }\r\n else {\r\n return item;\r\n }\r\n });\r\n // 新增 style\r\n if (currentStyle != '' && resultArr.indexOf(currentStyle) < 0) {\r\n resultArr.push(currentStyle);\r\n }\r\n // 去掉 空白\r\n if (currentStyle == '') {\r\n resultArr = _styleArrTrim(resultArr);\r\n }\r\n // 重新设置 style\r\n elem.setAttribute('style', resultArr.join('; '));\r\n }\r\n else {\r\n // 当前没有 style\r\n elem.setAttribute('style', currentStyle);\r\n }\r\n });\r\n };\r\n /**\r\n * 封装 getBoundingClientRect\r\n */\r\n DomElement.prototype.getBoundingClientRect = function () {\r\n var elem = this.elems[0];\r\n return elem.getBoundingClientRect();\r\n };\r\n /**\r\n * 显示\r\n */\r\n DomElement.prototype.show = function () {\r\n return this.css('display', 'block');\r\n };\r\n /**\r\n * 隐藏\r\n */\r\n DomElement.prototype.hide = function () {\r\n return this.css('display', 'none');\r\n };\r\n /**\r\n * 获取子节点(只有 DOM 元素)\r\n */\r\n DomElement.prototype.children = function () {\r\n var elem = this.elems[0];\r\n if (!elem) {\r\n return null;\r\n }\r\n return $(elem.children);\r\n };\r\n /**\r\n * 获取子节点(包括文本节点)\r\n */\r\n DomElement.prototype.childNodes = function () {\r\n var elem = this.elems[0];\r\n if (!elem) {\r\n return null;\r\n }\r\n return $(elem.childNodes);\r\n };\r\n /**\r\n * 增加子节点\r\n * @param $children 子节点\r\n */\r\n DomElement.prototype.append = function ($children) {\r\n return this.forEach(function (elem) {\r\n $children.forEach(function (child) {\r\n elem.appendChild(child);\r\n });\r\n });\r\n };\r\n /**\r\n * 移除当前节点\r\n */\r\n DomElement.prototype.remove = function () {\r\n return this.forEach(function (elem) {\r\n if (elem.remove) {\r\n elem.remove();\r\n }\r\n else {\r\n var parent_1 = elem.parentElement;\r\n parent_1 && parent_1.removeChild(elem);\r\n }\r\n });\r\n };\r\n /**\r\n * 当前元素,是否包含某个子元素\r\n * @param $child 子元素\r\n */\r\n DomElement.prototype.isContain = function ($child) {\r\n var elem = this.elems[0];\r\n var child = $child.elems[0];\r\n return elem.contains(child);\r\n };\r\n /**\r\n * 获取当前元素的尺寸和位置信息\r\n */\r\n DomElement.prototype.getSizeData = function () {\r\n var elem = this.elems[0];\r\n // 可得到 bottom height left right top width 的数据\r\n return elem.getBoundingClientRect();\r\n };\r\n /**\r\n * 获取当前元素 nodeName\r\n */\r\n DomElement.prototype.getNodeName = function () {\r\n var elem = this.elems[0];\r\n return elem.nodeName;\r\n };\r\n /**\r\n * 获取当前元素节点\r\n */\r\n DomElement.prototype.getNode = function () {\r\n var elem = this.elems[0];\r\n return elem;\r\n };\r\n /**\r\n * 获取当前元素可视高度\r\n */\r\n DomElement.prototype.getClientHeight = function () {\r\n var elem = this.elems[0];\r\n return elem.clientHeight;\r\n };\r\n /**\r\n * 获取当前元素可视宽度\r\n */\r\n // getClientWidth(): number {\r\n // const elem = this.elems[0]\r\n // return elem.clientWidth\r\n // }\r\n /**\r\n * 查询\r\n * @param selector css 选择器\r\n */\r\n DomElement.prototype.find = function (selector) {\r\n var elem = this.elems[0];\r\n return $(elem.querySelectorAll(selector));\r\n };\r\n DomElement.prototype.text = function (val) {\r\n if (!val) {\r\n // 获取 text\r\n var elem = this.elems[0];\r\n return elem.innerHTML.replace(/<[^>]+>/g, function () { return ''; });\r\n }\r\n else {\r\n // 设置 text\r\n return this.forEach(function (elem) {\r\n elem.innerHTML = val;\r\n });\r\n }\r\n };\r\n DomElement.prototype.html = function (val) {\r\n var elem = this.elems[0];\r\n if (!val) {\r\n // 获取 html\r\n return elem.innerHTML;\r\n }\r\n else {\r\n // 设置 html\r\n elem.innerHTML = val;\r\n return this;\r\n }\r\n };\r\n /**\r\n * 获取元素 value\r\n */\r\n DomElement.prototype.val = function () {\r\n var elem = this.elems[0];\r\n return elem.value.trim(); // 暂用 any\r\n };\r\n /**\r\n * focus 到当前元素\r\n */\r\n DomElement.prototype.focus = function () {\r\n return this.forEach(function (elem) {\r\n elem.focus();\r\n });\r\n };\r\n /**\r\n * 当前元素前一个兄弟节点\r\n */\r\n DomElement.prototype.prev = function () {\r\n var elem = this.elems[0];\r\n return $(elem.previousElementSibling);\r\n };\r\n /**\r\n * 当前元素后一个兄弟节点\r\n */\r\n DomElement.prototype.next = function () {\r\n var elem = this.elems[0];\r\n return $(elem.nextElementSibling);\r\n };\r\n /**\r\n * 获取父元素\r\n */\r\n DomElement.prototype.parent = function () {\r\n var elem = this.elems[0];\r\n return $(elem.parentElement);\r\n };\r\n DomElement.prototype.parentUntil = function (selector, curElem) {\r\n var elem = curElem || this.elems[0];\r\n if (elem.nodeName === 'BODY') {\r\n return null;\r\n }\r\n var parent = elem.parentElement;\r\n if (parent == null) {\r\n return null;\r\n }\r\n if (parent.matches(selector)) {\r\n // 找到,并返回\r\n return $(parent);\r\n }\r\n // 继续查找,递归\r\n return this.parentUntil(selector, parent);\r\n };\r\n /**\r\n * 判读是否相等\r\n * @param $elem 元素\r\n */\r\n DomElement.prototype.equal = function ($elem) {\r\n if ($elem instanceof DomElement) {\r\n return this.elems[0] === $elem.elems[0];\r\n }\r\n else if ($elem instanceof HTMLElement) {\r\n return this.elems[0] === $elem;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * 将该元素插入到某个元素前面\r\n * @param selector css 选择器\r\n */\r\n DomElement.prototype.insertBefore = function (selector) {\r\n var $referenceNode = $(selector);\r\n var referenceNode = $referenceNode.elems[0];\r\n if (!referenceNode) {\r\n return this;\r\n }\r\n return this.forEach(function (elem) {\r\n var parent = referenceNode.parentNode;\r\n parent.insertBefore(elem, referenceNode);\r\n });\r\n };\r\n /**\r\n * 将该元素插入到某个元素后面\r\n * @param selector css 选择器\r\n */\r\n DomElement.prototype.insertAfter = function (selector) {\r\n var $referenceNode = $(selector);\r\n var referenceNode = $referenceNode.elems[0];\r\n var anchorNode = referenceNode && referenceNode.nextSibling;\r\n if (!referenceNode) {\r\n return this;\r\n }\r\n return this.forEach(function (elem) {\r\n var parent = referenceNode.parentNode;\r\n if (anchorNode) {\r\n parent.insertBefore(elem, anchorNode);\r\n }\r\n else {\r\n parent.appendChild(elem);\r\n }\r\n });\r\n };\r\n /**\r\n * 设置/获取 数据\r\n * @param key key\r\n * @param value value\r\n */\r\n DomElement.prototype.data = function (key, value) {\r\n if (value != null) {\r\n // 设置数据\r\n this.dataSource.set(key, value);\r\n }\r\n else {\r\n // 获取数据\r\n return this.dataSource.get(key);\r\n }\r\n };\r\n /**\r\n * 获取当前节点的顶级(段落)\r\n * @param editor 富文本实例\r\n */\r\n DomElement.prototype.getNodeTop = function (editor) {\r\n if (this.length < 1) {\r\n return this;\r\n }\r\n var $parent = this.parent();\r\n if (editor.$textElem.equal($parent)) {\r\n return this;\r\n }\r\n return $parent.getNodeTop(editor);\r\n };\r\n /**\r\n * 获取当前 节点 基与上一个拥有相对或者解决定位的父容器的位置\r\n * @param editor 富文本实例\r\n */\r\n DomElement.prototype.getOffsetData = function () {\r\n var $node = this.elems[0];\r\n return {\r\n top: $node.offsetTop,\r\n left: $node.offsetLeft,\r\n width: $node.offsetWidth,\r\n height: $node.offsetHeight,\r\n parent: $node.offsetParent,\r\n };\r\n };\r\n return DomElement;\r\n}());\r\nexports.DomElement = DomElement;\r\n// new 一个对象\r\nfunction $(selector) {\r\n return new DomElement(selector);\r\n}\r\nexports.default = $;\r\n","module.exports = require(\"core-js-pure/stable/object/create\");","module.exports = require(\"core-js-pure/stable/object/set-prototype-of\");","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof NativeConstructor) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return NativeConstructor.apply(this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {});\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue;\n\n // bind timers to global for call from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changs in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n target[key] = resultProperty;\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!has(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n path[VIRTUAL_PROTOTYPE][key] = sourceProperty;\n // export real prototype methods\n if (options.real && targetPrototype && !targetPrototype[key]) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","module.exports = require(\"core-js-pure/stable/instance/for-each\");","\"use strict\";\r\n/**\r\n * @description 工具函数集合\r\n * @author wangfupeng\r\n */\r\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.toArray = exports.deepClone = exports.isFunction = exports.debounce = exports.throttle = exports.arrForEach = exports.forEach = exports.replaceSpecialSymbol = exports.replaceHtmlSymbol = exports.getRandom = exports.UA = void 0;\r\nvar NavUA = /** @class */ (function () {\r\n function NavUA() {\r\n this._ua = navigator.userAgent;\r\n var math = this._ua.match(/(Edge?)\\/(\\d+)/);\r\n this.isOldEdge = math && math[1] == 'Edge' && parseInt(math[2]) < 19 ? true : false;\r\n this.isFirefox =\r\n /Firefox\\/\\d+/.test(this._ua) && !/Seamonkey\\/\\d+/.test(this._ua) ? true : false;\r\n }\r\n // 是否为 IE\r\n NavUA.prototype.isIE = function () {\r\n return 'ActiveXObject' in window;\r\n };\r\n // 是否为 webkit\r\n NavUA.prototype.isWebkit = function () {\r\n return /webkit/i.test(this._ua);\r\n };\r\n return NavUA;\r\n}());\r\n// 和 UA 相关的属性\r\nexports.UA = new NavUA();\r\n/**\r\n * 获取随机石\r\n * @param prefix 前缀\r\n */\r\nfunction getRandom(prefix) {\r\n if (prefix === void 0) { prefix = ''; }\r\n return prefix + Math.random().toString().slice(2);\r\n}\r\nexports.getRandom = getRandom;\r\n/**\r\n * 替换 html 特殊字符\r\n * @param html html 字符串\r\n */\r\nfunction replaceHtmlSymbol(html) {\r\n return html\r\n .replace(/</gm, '<')\r\n .replace(/>/gm, '>')\r\n .replace(/\"/gm, '"')\r\n .replace(/(\\r\\n|\\r|\\n)/g, '<br/>');\r\n}\r\nexports.replaceHtmlSymbol = replaceHtmlSymbol;\r\nfunction replaceSpecialSymbol(value) {\r\n return value\r\n .replace(/</gm, '<')\r\n .replace(/>/gm, '>')\r\n .replace(/"/gm, '\"');\r\n}\r\nexports.replaceSpecialSymbol = replaceSpecialSymbol;\r\n/**\r\n * 遍历对象或数组,执行回调函数\r\n * @param obj 对象或数组\r\n * @param fn 回调函数 (key, val) => {...}\r\n */\r\nfunction forEach(obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var result = fn(key, obj[key]);\r\n if (result === false) {\r\n // 提前终止循环\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nexports.forEach = forEach;\r\n/**\r\n * 遍历类数组\r\n * @param fakeArr 类数组\r\n * @param fn 回调函数\r\n */\r\nfunction arrForEach(fakeArr, fn) {\r\n var i, item, result;\r\n var length = fakeArr.length || 0;\r\n for (i = 0; i < length; i++) {\r\n item = fakeArr[i];\r\n result = fn.call(fakeArr, item, i);\r\n if (result === false) {\r\n break;\r\n }\r\n }\r\n}\r\nexports.arrForEach = arrForEach;\r\n/**\r\n * 节流\r\n * @param fn 函数\r\n * @param interval 间隔时间,毫秒\r\n */\r\nfunction throttle(fn, interval) {\r\n if (interval === void 0) { interval = 200; }\r\n var flag = false;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!flag) {\r\n flag = true;\r\n setTimeout(function () {\r\n flag = false;\r\n fn.call.apply(fn, __spreadArrays([null], args)); // this 报语法错误,先用 null\r\n }, interval);\r\n }\r\n };\r\n}\r\nexports.throttle = throttle;\r\n/**\r\n * 防抖\r\n * @param fn 函数\r\n * @param delay 间隔时间,毫秒\r\n */\r\nfunction debounce(fn, delay) {\r\n if (delay === void 0) { delay = 200; }\r\n var lastFn = 0;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (lastFn) {\r\n window.clearTimeout(lastFn);\r\n }\r\n lastFn = window.setTimeout(function () {\r\n lastFn = 0;\r\n fn.call.apply(fn, __spreadArrays([null], args)); // this 报语法错误,先用 null\r\n }, delay);\r\n };\r\n}\r\nexports.debounce = debounce;\r\n/**\r\n * isFunction 是否是函数\r\n * @param fn 函数\r\n */\r\nfunction isFunction(fn) {\r\n return typeof fn === 'function';\r\n}\r\nexports.isFunction = isFunction;\r\n/**\r\n * 引用与非引用值 深拷贝方法\r\n * @param data\r\n */\r\nfunction deepClone(data) {\r\n if (typeof data !== 'object' || typeof data == 'function' || data === null) {\r\n return data;\r\n }\r\n var item;\r\n if (Array.isArray(data)) {\r\n item = [];\r\n }\r\n if (!Array.isArray(data)) {\r\n item = {};\r\n }\r\n for (var i in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, i)) {\r\n item[i] = deepClone(data[i]);\r\n }\r\n }\r\n return item;\r\n}\r\nexports.deepClone = deepClone;\r\n/**\r\n * 将可遍历的对象转换为数组\r\n * @param data 可遍历的对象\r\n */\r\nfunction toArray(data) {\r\n return Array.prototype.slice.call(data);\r\n}\r\nexports.toArray = toArray;\r\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n return path[CONSTRUCTOR + 'Prototype'];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","module.exports = require(\"core-js-pure/stable/instance/trim\");","\"use strict\";\r\n/**\r\n * @description 下拉菜单 Class\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Menu_1 = __importDefault(require(\"./Menu\"));\r\nvar DropList_1 = __importDefault(require(\"./DropList\"));\r\nvar DropListMenu = /** @class */ (function (_super) {\r\n __extends(DropListMenu, _super);\r\n function DropListMenu($elem, editor, conf) {\r\n var _this = _super.call(this, $elem, editor) || this;\r\n // 国际化\r\n conf.title = editor.i18next.t(\"menus.dropListMenu.\" + conf.title);\r\n // 非中文模式下 带 icon 的下拉列表居左\r\n var className = editor.config.lang === 'zh-CN' ? '' : 'w-e-drop-list-tl';\r\n if (className !== '' && conf.type === 'list') {\r\n conf.list.forEach(function (item) {\r\n var $elem = item.$elem;\r\n var $children = dom_core_1.default($elem.children());\r\n if ($children.length > 0) {\r\n var nodeName = $children === null || $children === void 0 ? void 0 : $children.getNodeName();\r\n if (nodeName && nodeName === 'I') {\r\n $elem.addClass(className);\r\n }\r\n }\r\n });\r\n }\r\n // 初始化 dropList\r\n var dropList = new DropList_1.default(_this, conf);\r\n _this.dropList = dropList;\r\n // 绑定事件\r\n $elem\r\n .on('mouseenter', function () {\r\n if (editor.selection.getRange() == null) {\r\n return;\r\n }\r\n $elem.css('z-index', editor.zIndex.get('menu'));\r\n // 触发 droplist 悬浮事件\r\n editor.txt.eventHooks.dropListMenuHoverEvents.forEach(function (fn) { return fn(); });\r\n // 显示\r\n dropList.showTimeoutId = window.setTimeout(function () {\r\n dropList.show();\r\n }, 200);\r\n })\r\n .on('mouseleave', function () {\r\n $elem.css('z-index', 'auto');\r\n // 隐藏\r\n dropList.hideTimeoutId = window.setTimeout(function () {\r\n dropList.hide();\r\n });\r\n });\r\n return _this;\r\n }\r\n return DropListMenu;\r\n}(Menu_1.default));\r\nexports.default = DropListMenu;\r\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","\"use strict\";\r\n/**\r\n * @description 按钮菜单 Class\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Menu_1 = __importDefault(require(\"./Menu\"));\r\nvar BtnMenu = /** @class */ (function (_super) {\r\n __extends(BtnMenu, _super);\r\n function BtnMenu($elem, editor) {\r\n return _super.call(this, $elem, editor) || this;\r\n }\r\n return BtnMenu;\r\n}(Menu_1.default));\r\nexports.default = BtnMenu;\r\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","\"use strict\";\r\n/**\r\n * @description panel class\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar const_1 = require(\"../../utils/const\");\r\nvar Panel = /** @class */ (function () {\r\n function Panel(menu, conf) {\r\n this.menu = menu;\r\n this.conf = conf;\r\n this.$container = dom_core_1.default('<div class=\"w-e-panel-container\"></div>');\r\n // 隐藏 panel\r\n var editor = menu.editor;\r\n editor.txt.eventHooks.clickEvents.push(Panel.hideCurAllPanels);\r\n editor.txt.eventHooks.toolbarClickEvents.push(Panel.hideCurAllPanels);\r\n editor.txt.eventHooks.dropListMenuHoverEvents.push(Panel.hideCurAllPanels);\r\n }\r\n /**\r\n * 创建并展示 panel\r\n */\r\n Panel.prototype.create = function () {\r\n var _this = this;\r\n var menu = this.menu;\r\n if (Panel.createdMenus.has(menu)) {\r\n // 创建过了\r\n return;\r\n }\r\n var conf = this.conf;\r\n // panel 的容器\r\n var $container = this.$container;\r\n var width = conf.width || 300; // 默认 300px\r\n var rect = menu.editor.$toolbarElem.getBoundingClientRect();\r\n var menuRect = menu.$elem.getBoundingClientRect();\r\n var top = rect.height + rect.top - menuRect.top;\r\n var left = (rect.width - width) / 2 + rect.left - menuRect.left;\r\n $container\r\n .css('width', width + 'px')\r\n .css('margin-top', top + \"px\")\r\n .css('margin-left', left + \"px\")\r\n .css('z-index', menu.editor.zIndex.get('panel'));\r\n // 添加关闭按钮\r\n var $closeBtn = dom_core_1.default('<i class=\"w-e-icon-close w-e-panel-close\"></i>');\r\n $container.append($closeBtn);\r\n $closeBtn.on('click', function () {\r\n _this.remove();\r\n });\r\n // 准备 tabs 容器\r\n var $tabTitleContainer = dom_core_1.default('<ul class=\"w-e-panel-tab-title\"></ul>');\r\n var $tabContentContainer = dom_core_1.default('<div class=\"w-e-panel-tab-content\"></div>');\r\n $container.append($tabTitleContainer).append($tabContentContainer);\r\n // 设置高度\r\n var height = conf.height; // height: 0 即不用设置\r\n if (height) {\r\n $tabContentContainer.css('height', height + 'px').css('overflow-y', 'auto');\r\n }\r\n // tabs\r\n var tabs = conf.tabs || [];\r\n var tabTitleArr = [];\r\n var tabContentArr = [];\r\n tabs.forEach(function (tab, tabIndex) {\r\n if (!tab) {\r\n return;\r\n }\r\n var title = tab.title || '';\r\n var tpl = tab.tpl || '';\r\n // 添加到 DOM\r\n var $title = dom_core_1.default(\"<li class=\\\"w-e-item\\\">\" + title + \"</li>\");\r\n $tabTitleContainer.append($title);\r\n var $content = dom_core_1.default(tpl);\r\n $tabContentContainer.append($content);\r\n // 记录到内存\r\n tabTitleArr.push($title);\r\n tabContentArr.push($content);\r\n // 设置 active 项\r\n if (tabIndex === 0) {\r\n $title.data('active', true);\r\n $title.addClass('w-e-active');\r\n }\r\n else {\r\n $content.hide();\r\n }\r\n // 绑定 tab 的事件\r\n $title.on('click', function () {\r\n if ($title.data('active')) {\r\n return;\r\n }\r\n // 隐藏所有的 tab\r\n tabTitleArr.forEach(function ($title) {\r\n $title.data('active', false);\r\n $title.removeClass('w-e-active');\r\n });\r\n tabContentArr.forEach(function ($content) {\r\n $content.hide();\r\n });\r\n // 显示当前的 tab\r\n $title.data('active', true);\r\n $title.addClass('w-e-active');\r\n $content.show();\r\n });\r\n });\r\n // 绑定关闭事件\r\n $container.on('click', function (e) {\r\n // 点击时阻止冒泡\r\n e.stopPropagation();\r\n });\r\n // 添加到 DOM\r\n menu.$elem.append($container);\r\n // 绑定 conf events 的事件,只有添加到 DOM 之后才能绑定成功\r\n tabs.forEach(function (tab, index) {\r\n if (!tab) {\r\n return;\r\n }\r\n var events = tab.events || [];\r\n events.forEach(function (event) {\r\n var selector = event.selector;\r\n var type = event.type;\r\n var fn = event.fn || const_1.EMPTY_FN;\r\n var $content = tabContentArr[index];\r\n $content.find(selector).on(type, function (e) {\r\n e.stopPropagation();\r\n var needToHide = fn(e);\r\n // 执行完事件之后,是否要关闭 panel\r\n if (needToHide) {\r\n _this.remove();\r\n }\r\n });\r\n });\r\n });\r\n // focus 第一个 elem\r\n var $inputs = $container.find('input[type=text],textarea');\r\n if ($inputs.length) {\r\n $inputs.get(0).focus();\r\n }\r\n // 隐藏其他 panel\r\n Panel.hideCurAllPanels();\r\n // 记录该 menu 已经创建了 panel\r\n menu.setPanel(this);\r\n Panel.createdMenus.add(menu);\r\n };\r\n /**\r\n * 移除 penal\r\n */\r\n Panel.prototype.remove = function () {\r\n var menu = this.menu;\r\n var $container = this.$container;\r\n if ($container) {\r\n $container.remove();\r\n }\r\n // 将该 menu 记录中移除\r\n Panel.createdMenus.delete(menu);\r\n };\r\n /**\r\n * 隐藏当前所有的 panel\r\n */\r\n Panel.hideCurAllPanels = function () {\r\n if (Panel.createdMenus.size === 0) {\r\n return;\r\n }\r\n Panel.createdMenus.forEach(function (menu) {\r\n var panel = menu.panel;\r\n panel && panel.remove();\r\n });\r\n };\r\n // 记录已经创建过的 panelMenu\r\n Panel.createdMenus = new Set();\r\n return Panel;\r\n}());\r\nexports.default = Panel;\r\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!has(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","\"use strict\";\r\n/**\r\n * @description 常亮\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.urlRegex = exports.imgRegex = exports.EMPTY_FN = void 0;\r\nfunction EMPTY_FN() { }\r\nexports.EMPTY_FN = EMPTY_FN;\r\n//用于校验图片链接是否符合规范\r\nexports.imgRegex = /\\.(gif|jpg|jpeg|png)$/i;\r\n//用于校验是否为url格式字符串\r\nexports.urlRegex = /^(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-.,@?^=%&:/~+#]*[\\w\\-@?^=%&/~+#])?/;\r\n","\"use strict\";\r\n/**\r\n * @description Modal 菜单 Class\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Menu_1 = __importDefault(require(\"./Menu\"));\r\nvar PanelMenu = /** @class */ (function (_super) {\r\n __extends(PanelMenu, _super);\r\n function PanelMenu($elem, editor) {\r\n return _super.call(this, $elem, editor) || this;\r\n }\r\n /**\r\n * 给 menu 设置 panel\r\n * @param panel panel 实例\r\n */\r\n PanelMenu.prototype.setPanel = function (panel) {\r\n this.panel = panel;\r\n };\r\n return PanelMenu;\r\n}(Menu_1.default));\r\nexports.default = PanelMenu;\r\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","module.exports = {};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","module.exports = require(\"core-js-pure/stable/instance/map\");","\"use strict\";\r\n/**\r\n * @description Tooltip class\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Tooltip = /** @class */ (function () {\r\n function Tooltip(editor, $elem, conf) {\r\n this.editor = editor;\r\n this.$targetElem = $elem;\r\n this.conf = conf;\r\n this._show = false;\r\n this._isInsertTextContainer = false;\r\n // 定义 container\r\n var $container = dom_core_1.default('<div></div>');\r\n $container.addClass('w-e-tooltip');\r\n this.$container = $container;\r\n }\r\n /**\r\n * 获取 tooltip 定位\r\n */\r\n Tooltip.prototype.getPositionData = function () {\r\n var $container = this.$container;\r\n var top = 0;\r\n var left = 0;\r\n // tooltip 的高度\r\n var tooltipHeight = 20;\r\n // 网页的 scrollTop\r\n var pageScrollTop = document.documentElement.scrollTop;\r\n // 目标元素的 rect\r\n var targetElemRect = this.$targetElem.getBoundingClientRect();\r\n // 编辑区域的 rect\r\n var textElemRect = this.editor.$textElem.getBoundingClientRect();\r\n // 获取基于 textContainerElem 的 位置信息\r\n var targetOffset = this.$targetElem.getOffsetData();\r\n var targetParentElem = dom_core_1.default(targetOffset.parent);\r\n // 获取 编辑区域的滚动条信息\r\n var scrollTop = this.editor.$textElem.elems[0].scrollTop;\r\n // 是否插入 textContainer 中\r\n this._isInsertTextContainer = targetParentElem.equal(this.editor.$textContainerElem);\r\n if (this._isInsertTextContainer) {\r\n // 父容器的高度\r\n var targetParentElemHeight = targetParentElem.getClientHeight();\r\n // 相对于父容器的位置信息\r\n var offsetTop = targetOffset.top, offsetLeft = targetOffset.left, offsetHeight = targetOffset.height;\r\n // 元素基于父容器的 绝对top信息\r\n var absoluteTop = offsetTop - scrollTop;\r\n if (absoluteTop > tooltipHeight + 5) {\r\n // 说明模板元素的顶部空间足够\r\n top = absoluteTop - tooltipHeight - 15;\r\n $container.addClass('w-e-tooltip-up');\r\n }\r\n else if (absoluteTop + offsetHeight + tooltipHeight < targetParentElemHeight) {\r\n // 说明模板元素的底部空间足够\r\n top = absoluteTop + offsetHeight + 10;\r\n $container.addClass('w-e-tooltip-down');\r\n }\r\n else {\r\n // 其他情况,tooltip 放在目标元素左上角\r\n top = (absoluteTop > 0 ? absoluteTop : 0) + tooltipHeight + 10;\r\n $container.addClass('w-e-tooltip-down');\r\n }\r\n // 计算 left\r\n if (offsetLeft < 0) {\r\n left = 0;\r\n }\r\n else {\r\n left = offsetLeft;\r\n }\r\n }\r\n else {\r\n if (targetElemRect.top < tooltipHeight) {\r\n // 说明目标元素的顶部,因滑动隐藏在浏览器上方。tooltip 要放在目标元素下面\r\n top = targetElemRect.bottom + pageScrollTop + 5; // 5px 间距\r\n $container.addClass('w-e-tooltip-down');\r\n }\r\n else if (targetElemRect.top - textElemRect.top < tooltipHeight) {\r\n // 说明目标元素的顶部,因滑动隐藏在编辑区域上方。tooltip 要放在目标元素下面\r\n top = targetElemRect.bottom + pageScrollTop + 5; // 5px 间距\r\n $container.addClass('w-e-tooltip-down');\r\n }\r\n else {\r\n // 其他情况,tooltip 放在目标元素上方\r\n top = targetElemRect.top + pageScrollTop - tooltipHeight - 15; // 减去 toolbar 的高度,还有 15px 间距\r\n $container.addClass('w-e-tooltip-up');\r\n }\r\n // 计算 left\r\n if (targetElemRect.left < 0) {\r\n left = 0;\r\n }\r\n else {\r\n left = targetElemRect.left;\r\n }\r\n }\r\n // 返回结果\r\n return { top: top, left: left };\r\n };\r\n /**\r\n * 添加 tooltip 菜单\r\n */\r\n Tooltip.prototype.appendMenus = function () {\r\n var _this = this;\r\n var conf = this.conf;\r\n var editor = this.editor;\r\n var $targetElem = this.$targetElem;\r\n var $container = this.$container;\r\n var length = conf.length;\r\n conf.forEach(function (item, index) {\r\n // 添加元素\r\n var $elem = item.$elem;\r\n var $wrapper = dom_core_1.default('<div></div>');\r\n $wrapper.addClass('w-e-tooltip-item-wrapper ');\r\n $wrapper.append($elem);\r\n $container.append($wrapper);\r\n // 绑定点击事件\r\n $elem.on('click', function (e) {\r\n e.preventDefault();\r\n var res = item.onClick(editor, $targetElem);\r\n if (res)\r\n _this.remove();\r\n });\r\n });\r\n };\r\n /**\r\n * 创建 tooltip\r\n */\r\n Tooltip.prototype.create = function () {\r\n var editor = this.editor;\r\n var $container = this.$container;\r\n // 生成 container 的内容\r\n this.appendMenus();\r\n // 设置定位\r\n var _a = this.getPositionData(), top = _a.top, left = _a.left;\r\n $container.css('top', top + \"px\");\r\n $container.css('left', left + \"px\");\r\n // 设置 z-index\r\n $container.css('z-index', editor.zIndex.get('tooltip'));\r\n // 添加到 DOM\r\n if (this._isInsertTextContainer) {\r\n this.editor.$textContainerElem.append($container);\r\n }\r\n else {\r\n dom_core_1.default('body').append($container);\r\n }\r\n this._show = true;\r\n };\r\n /**\r\n * 移除该 tooltip\r\n */\r\n Tooltip.prototype.remove = function () {\r\n this.$container.remove();\r\n this._show = false;\r\n };\r\n Object.defineProperty(Tooltip.prototype, \"isShow\", {\r\n /**\r\n * 是否显示\r\n */\r\n get: function () {\r\n return this._show;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Tooltip;\r\n}());\r\nexports.default = Tooltip;\r\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","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = {};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n};\n","require('./es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","module.exports = require(\"core-js-pure/stable/instance/index-of\");","module.exports = require(\"core-js-pure/stable/instance/slice\");","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\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 (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = require(\"core-js-pure/stable/instance/find\");","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\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++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","module.exports = require(\"core-js-pure/stable/instance/filter\");","module.exports = require(\"core-js-pure/stable/instance/splice\");","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","\"use strict\";\r\n/**\r\n * @description Menu class 父类\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Panel_1 = __importDefault(require(\"./Panel\"));\r\nvar Menu = /** @class */ (function () {\r\n function Menu($elem, editor) {\r\n var _this = this;\r\n this.$elem = $elem;\r\n this.editor = editor;\r\n this._active = false;\r\n // 绑定菜单点击事件\r\n $elem.on('click', function (e) {\r\n Panel_1.default.hideCurAllPanels(); // 隐藏当前的所有 Panel\r\n // 触发菜单点击的钩子\r\n editor.txt.eventHooks.menuClickEvents.forEach(function (fn) { return fn(); });\r\n e.stopPropagation();\r\n if (editor.selection.getRange() == null) {\r\n return;\r\n }\r\n _this.clickHandler(e);\r\n });\r\n }\r\n /**\r\n * 菜单点击事件,子类可重写\r\n * @param e event\r\n */\r\n Menu.prototype.clickHandler = function (e) { };\r\n /**\r\n * 激活菜单,高亮显示\r\n */\r\n Menu.prototype.active = function () {\r\n this._active = true;\r\n this.$elem.addClass('w-e-active');\r\n };\r\n /**\r\n * 取消激活,不再高亮显示\r\n */\r\n Menu.prototype.unActive = function () {\r\n this._active = false;\r\n this.$elem.removeClass('w-e-active');\r\n };\r\n Object.defineProperty(Menu.prototype, \"isActive\", {\r\n /**\r\n * 是否处于激活状态\r\n */\r\n get: function () {\r\n return this._active;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Menu;\r\n}());\r\nexports.default = Menu;\r\n","\"use strict\";\r\n/**\r\n * @description 上传图片\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar upload_core_1 = __importDefault(require(\"../../editor/upload/upload-core\"));\r\nvar progress_1 = __importDefault(require(\"../../editor/upload/progress\"));\r\nvar UploadImg = /** @class */ (function () {\r\n function UploadImg(editor) {\r\n this.editor = editor;\r\n }\r\n /**\r\n * 提示信息\r\n * @param alertInfo alert info\r\n * @param debugInfo debug info\r\n */\r\n UploadImg.prototype.alert = function (alertInfo, debugInfo) {\r\n var customAlert = this.editor.config.customAlert;\r\n if (customAlert) {\r\n customAlert(alertInfo);\r\n }\r\n else {\r\n window.alert(alertInfo);\r\n }\r\n if (debugInfo) {\r\n console.error('wangEditor: ' + debugInfo);\r\n }\r\n };\r\n /**\r\n * 往编辑区域插入图片\r\n * @param src 图片地址\r\n */\r\n UploadImg.prototype.insertImg = function (src) {\r\n var _this_1 = this;\r\n var editor = this.editor;\r\n var config = editor.config;\r\n var i18nPrefix = 'validate.';\r\n var t = function (text, prefix) {\r\n if (prefix === void 0) { prefix = i18nPrefix; }\r\n return editor.i18next.t(prefix + text);\r\n };\r\n // 先插入图片,无论是否能成功\r\n editor.cmd.do('insertHTML', \"<img src=\\\"\" + src + \"\\\" style=\\\"max-width:100%;\\\"/>\");\r\n // 执行回调函数\r\n config.linkImgCallback(src);\r\n // 加载图片\r\n var img = document.createElement('img');\r\n img.onload = function () {\r\n img = null;\r\n };\r\n img.onerror = function () {\r\n _this_1.alert(t('插入图片错误'), \"wangEditor: \" + t('插入图片错误') + \"\\uFF0C\" + t('图片链接') + \" \\\"\" + src + \"\\\"\\uFF0C\" + t('下载链接失败'));\r\n img = null;\r\n };\r\n img.onabort = function () { return (img = null); };\r\n img.src = src;\r\n };\r\n /**\r\n * 上传图片\r\n * @param files 文件列表\r\n */\r\n UploadImg.prototype.uploadImg = function (files) {\r\n var _this_1 = this;\r\n if (!files.length) {\r\n return;\r\n }\r\n var editor = this.editor;\r\n var config = editor.config;\r\n // ------------------------------ i18next ------------------------------\r\n var i18nPrefix = 'validate.';\r\n var t = function (text) {\r\n return editor.i18next.t(i18nPrefix + text);\r\n };\r\n // ------------------------------ 获取配置信息 ------------------------------\r\n // 服务端地址\r\n var uploadImgServer = config.uploadImgServer;\r\n // base64 格式\r\n var uploadImgShowBase64 = config.uploadImgShowBase64;\r\n // 图片最大体积\r\n var maxSize = config.uploadImgMaxSize;\r\n var maxSizeM = maxSize / 1024 / 1024;\r\n // 一次最多上传图片数量\r\n var maxLength = config.uploadImgMaxLength;\r\n // 自定义 fileName\r\n var uploadFileName = config.uploadFileName;\r\n // 自定义参数\r\n var uploadImgParams = config.uploadImgParams;\r\n // 参数拼接到 url 中\r\n var uploadImgParamsWithUrl = config.uploadImgParamsWithUrl;\r\n // 自定义 header\r\n var uploadImgHeaders = config.uploadImgHeaders;\r\n // 钩子函数\r\n var hooks = config.uploadImgHooks;\r\n // 上传图片超时时间\r\n var timeout = config.uploadImgTimeout;\r\n // 跨域带 cookie\r\n var withCredentials = config.withCredentials;\r\n // 自定义上传图片\r\n var customUploadImg = config.customUploadImg;\r\n if (!customUploadImg) {\r\n // 没有 customUploadImg 的情况下,需要如下两个配置才能继续进行图片上传\r\n if (!uploadImgServer && !uploadImgShowBase64) {\r\n return;\r\n }\r\n }\r\n // ------------------------------ 验证文件信息 ------------------------------\r\n var resultFiles = [];\r\n var errInfos = [];\r\n util_1.arrForEach(files, function (file) {\r\n var name = file.name;\r\n var size = file.size;\r\n // chrome 低版本 name === undefined\r\n if (!name || !size) {\r\n return;\r\n }\r\n if (/\\.(jpg|jpeg|png|bmp|gif|webp)$/i.test(name) === false) {\r\n // 后缀名不合法,不是图片\r\n errInfos.push(\"\\u3010\" + name + \"\\u3011\" + t('不是图片'));\r\n return;\r\n }\r\n if (maxSize < size) {\r\n // 上传图片过大\r\n errInfos.push(\"\\u3010\" + name + \"\\u3011\" + t('大于') + \" \" + maxSizeM + \"M\");\r\n return;\r\n }\r\n // 验证通过的加入结果列表\r\n resultFiles.push(file);\r\n });\r\n // 抛出验证信息\r\n if (errInfos.length) {\r\n this.alert(t('图片验证未通过') + \": \\n\" + errInfos.join('\\n'));\r\n return;\r\n }\r\n if (resultFiles.length > maxLength) {\r\n this.alert(t('一次最多上传') + maxLength + t('张图片'));\r\n return;\r\n }\r\n // ------------------------------ 自定义上传 ------------------------------\r\n if (customUploadImg && typeof customUploadImg === 'function') {\r\n customUploadImg(resultFiles, this.insertImg.bind(this));\r\n // 阻止以下代码执行,重要!!!\r\n return;\r\n }\r\n // ------------------------------ 上传图片 ------------------------------\r\n // 添加图片数据\r\n var formData = new FormData();\r\n resultFiles.forEach(function (file, index) {\r\n var name = uploadFileName || file.name;\r\n if (resultFiles.length > 1) {\r\n // 多个文件时,filename 不能重复\r\n name = name + (index + 1);\r\n }\r\n formData.append(name, file);\r\n });\r\n if (uploadImgServer) {\r\n // 添加自定义参数\r\n var uploadImgServerArr = uploadImgServer.split('#');\r\n uploadImgServer = uploadImgServerArr[0];\r\n var uploadImgServerHash = uploadImgServerArr[1] || '';\r\n util_1.forEach(uploadImgParams, function (key, val) {\r\n // 因使用者反应,自定义参数不能默认 encode ,由 v3.1.1 版本开始注释掉\r\n // val = encodeURIComponent(val)\r\n // 第一,将参数拼接到 url 中\r\n if (uploadImgParamsWithUrl) {\r\n if (uploadImgServer.indexOf('?') > 0) {\r\n uploadImgServer += '&';\r\n }\r\n else {\r\n uploadImgServer += '?';\r\n }\r\n uploadImgServer = uploadImgServer + key + '=' + val;\r\n }\r\n // 第二,将参数添加到 formData 中\r\n formData.append(key, val);\r\n });\r\n if (uploadImgServerHash) {\r\n uploadImgServer += '#' + uploadImgServerHash;\r\n }\r\n // 开始上传\r\n var xhr = upload_core_1.default(uploadImgServer, {\r\n timeout: timeout,\r\n formData: formData,\r\n headers: uploadImgHeaders,\r\n withCredentials: !!withCredentials,\r\n beforeSend: function (xhr) {\r\n if (hooks.before)\r\n return hooks.before(xhr, editor, resultFiles);\r\n },\r\n onTimeout: function (xhr) {\r\n _this_1.alert(t('上传图片超时'));\r\n if (hooks.timeout)\r\n hooks.timeout(xhr, editor);\r\n },\r\n onProgress: function (percent, e) {\r\n var progressBar = new progress_1.default(editor);\r\n if (e.lengthComputable) {\r\n percent = e.loaded / e.total;\r\n progressBar.show(percent);\r\n }\r\n },\r\n onError: function (xhr) {\r\n _this_1.alert(t('上传图片错误'), t('上传图片错误') + \"\\uFF0C\" + t('服务器返回状态') + \": \" + xhr.status);\r\n if (hooks.error)\r\n hooks.error(xhr, editor);\r\n },\r\n onFail: function (xhr, resultStr) {\r\n _this_1.alert(t('上传图片失败'), t('上传图片返回结果错误') + (\"\\uFF0C\" + t('返回结果') + \": \") + resultStr);\r\n if (hooks.fail)\r\n hooks.fail(xhr, editor, resultStr);\r\n },\r\n onSuccess: function (xhr, result) {\r\n if (hooks.customInsert) {\r\n // 自定义插入图片\r\n hooks.customInsert(_this_1.insertImg.bind(_this_1), result, editor);\r\n return;\r\n }\r\n if (result.errno != '0') {\r\n // 返回格式不对,应该为 { errno: 0, data: [...] }\r\n _this_1.alert(t('上传图片失败'), t('上传图片返回结果错误') + \"\\uFF0C\" + t('返回结果') + \" errno=\" + result.errno);\r\n if (hooks.fail)\r\n hooks.fail(xhr, editor, result);\r\n return;\r\n }\r\n // 成功,插入图片\r\n var data = result.data;\r\n data.forEach(function (link) {\r\n _this_1.insertImg(link);\r\n });\r\n // 钩子函数\r\n if (hooks.success)\r\n hooks.success(xhr, editor, result);\r\n },\r\n });\r\n if (typeof xhr === 'string') {\r\n // 上传被阻止\r\n this.alert(xhr);\r\n }\r\n // 阻止以下代码执行,重要!!!\r\n return;\r\n }\r\n // ------------------------------ 显示 base64 格式 ------------------------------\r\n if (uploadImgShowBase64) {\r\n util_1.arrForEach(files, function (file) {\r\n var _this = _this_1;\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function () {\r\n if (!this.result)\r\n return;\r\n _this.insertImg(this.result.toString());\r\n };\r\n });\r\n }\r\n };\r\n return UploadImg;\r\n}());\r\nexports.default = UploadImg;\r\n","\"use strict\";\r\n/**\r\n * @description 双栈实现撤销恢复\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar stack_1 = require(\"./stack\");\r\nvar Cache = /** @class */ (function () {\r\n function Cache(maxSize) {\r\n this.maxSize = maxSize;\r\n /**\r\n * 上一步操作是否为 撤销/恢复\r\n */\r\n this.isRe = false;\r\n this.data = new stack_1.CeilStack(maxSize);\r\n this.revokeData = new stack_1.CeilStack(maxSize);\r\n }\r\n Object.defineProperty(Cache.prototype, \"size\", {\r\n /**\r\n * 返回当前栈中的数据长度。格式为:[正常的数据的条数,被撤销的数据的条数]\r\n */\r\n get: function () {\r\n return [this.data.size, this.revokeData.size];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 重设数据缓存器的缓存长度(第一次有效)\r\n */\r\n Cache.prototype.resetMaxSize = function (maxSize) {\r\n this.data.resetMax(maxSize);\r\n this.revokeData.resetMax(maxSize);\r\n };\r\n /**\r\n * 保存数据\r\n */\r\n Cache.prototype.save = function (data) {\r\n if (this.isRe) {\r\n this.revokeData.clear();\r\n this.isRe = false;\r\n }\r\n this.data.instack(data);\r\n return this;\r\n };\r\n /**\r\n * 撤销\r\n * @param fn 撤销时,如果有数据,执行的回调函数\r\n */\r\n Cache.prototype.revoke = function (fn) {\r\n !this.isRe && (this.isRe = true);\r\n var data = this.data.outstack();\r\n if (data) {\r\n this.revokeData.instack(data);\r\n fn(data);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * 恢复\r\n * @param fn 恢复时,如果有数据,执行的回调函数\r\n */\r\n Cache.prototype.restore = function (fn) {\r\n !this.isRe && (this.isRe = true);\r\n var data = this.revokeData.outstack();\r\n if (data) {\r\n this.data.instack(data);\r\n fn(data);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\r\nexports.default = Cache;\r\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && 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 ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? 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 ? ObjectPrototype : null;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else redefine(target, key, src[key], options);\n } return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\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};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","module.exports = require(\"core-js-pure/stable/instance/includes\");","module.exports = require(\"core-js-pure/stable/map\");","'use strict';\nvar $ = require('./export');\nvar global = require('../internals/global');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar fails = require('../internals/fails');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar defineProperty = require('../internals/object-define-property').f;\nvar forEach = require('../internals/array-iteration').forEach;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var exported = {};\n var Constructor;\n\n if (!DESCRIPTORS || typeof NativeConstructor != 'function'\n || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); }))\n ) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else {\n Constructor = wrapper(function (target, iterable) {\n setInternalState(anInstance(target, Constructor, CONSTRUCTOR_NAME), {\n type: CONSTRUCTOR_NAME,\n collection: new NativeConstructor()\n });\n if (iterable != undefined) iterate(iterable, target[ADDER], target, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) {\n createNonEnumerableProperty(Constructor.prototype, KEY, function (a, b) {\n var collection = getInternalState(this).collection;\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = collection[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n }\n });\n\n IS_WEAK || defineProperty(Constructor.prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).collection.size;\n }\n });\n }\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: true }, exported);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\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 var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else 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 = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else 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 var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\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(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\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 defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","module.exports = require(\"core-js-pure/stable/array/is-array\");","var _Symbol$iterator = require(\"@babel/runtime-corejs3/core-js/symbol/iterator\");\n\nvar _Symbol = require(\"@babel/runtime-corejs3/core-js/symbol\");\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","module.exports = require(\"core-js-pure/stable/set-timeout\");","\"use strict\";\r\n/**\r\n * @description 样式配置\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n zIndex: 10000,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 处理粘贴逻辑\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getPasteImgs = exports.getPasteHtml = exports.getPasteText = void 0;\r\nvar util_1 = require(\"../../utils/util\");\r\nvar parse_html_1 = __importDefault(require(\"./parse-html\"));\r\n/**\r\n * 获取粘贴的纯文本\r\n * @param e Event 参数\r\n */\r\nfunction getPasteText(e) {\r\n // const clipboardData = e.clipboardData || (e.originalEvent && e.originalEvent.clipboardData)\r\n var clipboardData = e.clipboardData; // 暂不考虑 originalEvent 的情况\r\n var pasteText = '';\r\n if (clipboardData == null) {\r\n pasteText = window.clipboardData && window.clipboardData.getData('text');\r\n }\r\n else {\r\n pasteText = clipboardData.getData('text/plain');\r\n }\r\n return util_1.replaceHtmlSymbol(pasteText);\r\n}\r\nexports.getPasteText = getPasteText;\r\n/**\r\n * 获取粘贴的 html 字符串\r\n * @param e Event 参数\r\n * @param filterStyle 是否过滤 style 样式\r\n * @param ignoreImg 是否忽略 img 标签\r\n */\r\nfunction getPasteHtml(e, filterStyle, ignoreImg) {\r\n if (filterStyle === void 0) { filterStyle = true; }\r\n if (ignoreImg === void 0) { ignoreImg = false; }\r\n var clipboardData = e.clipboardData; // 暂不考虑 originalEvent 的情况\r\n var pasteHtml = '';\r\n if (clipboardData) {\r\n pasteHtml = clipboardData.getData('text/html');\r\n }\r\n // 无法通过 'text/html' 格式获取 html,则尝试获取 text\r\n if (!pasteHtml) {\r\n var text = getPasteText(e);\r\n if (!text) {\r\n return ''; // 没有找到任何文字,则返回\r\n }\r\n pasteHtml = \"<p>\" + text + \"</p>\";\r\n }\r\n // 剔除多余的标签、属性\r\n pasteHtml = parse_html_1.default(pasteHtml, filterStyle, ignoreImg);\r\n return pasteHtml;\r\n}\r\nexports.getPasteHtml = getPasteHtml;\r\n/**\r\n * 获取粘贴的图片文件\r\n * @param e Event 参数\r\n */\r\nfunction getPasteImgs(e) {\r\n var result = [];\r\n var txt = getPasteText(e);\r\n if (txt) {\r\n // 有文字,就忽略图片\r\n return result;\r\n }\r\n var clipboardData = e.clipboardData;\r\n var items = clipboardData.items;\r\n if (!items) {\r\n return result;\r\n }\r\n util_1.forEach(items, function (key, value) {\r\n var type = value.type;\r\n if (/image/i.test(type)) {\r\n result.push(value.getAsFile());\r\n }\r\n });\r\n return result;\r\n}\r\nexports.getPasteImgs = getPasteImgs;\r\n","module.exports = require(\"core-js-pure/stable/set\");","module.exports = require(\"core-js-pure/stable/instance/bind\");","\"use strict\";\r\n/**\r\n * @description 下拉列表 class\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar const_1 = require(\"../../utils/const\");\r\nvar DropList = /** @class */ (function () {\r\n function DropList(menu, conf) {\r\n var _this = this;\r\n this.hideTimeoutId = 0;\r\n this.showTimeoutId = 0;\r\n this.menu = menu;\r\n this.conf = conf;\r\n // 容器\r\n var $container = dom_core_1.default('<div class=\"w-e-droplist\"></div>');\r\n // 标题\r\n var $title = dom_core_1.default(\"<p>\" + conf.title + \"</p>\");\r\n $title.addClass('w-e-dp-title');\r\n $container.append($title);\r\n // 列表和类型\r\n var list = conf.list || [];\r\n var type = conf.type || 'list';\r\n // item 的点击事件\r\n var clickHandler = conf.clickHandler || const_1.EMPTY_FN;\r\n // 加入 DOM 并绑定事件\r\n var $list = dom_core_1.default('<ul class=\"' + (type === 'list' ? 'w-e-list' : 'w-e-block') + '\"></ul>');\r\n list.forEach(function (item) {\r\n var $elem = item.$elem;\r\n var value = item.value;\r\n var $li = dom_core_1.default('<li class=\"w-e-item\"></li>');\r\n if ($elem) {\r\n $li.append($elem);\r\n $list.append($li);\r\n $li.on('click', function () {\r\n clickHandler(value);\r\n // item 点击之后,隐藏 list\r\n _this.hideTimeoutId = window.setTimeout(function () {\r\n _this.hide();\r\n });\r\n });\r\n }\r\n });\r\n $container.append($list);\r\n // 绑定隐藏事件\r\n $container.on('mouseleave', function () {\r\n _this.hideTimeoutId = window.setTimeout(function () {\r\n _this.hide();\r\n });\r\n });\r\n // 记录属性\r\n this.$container = $container;\r\n this.rendered = false;\r\n this._show = false;\r\n }\r\n /**\r\n * 显示 DropList\r\n */\r\n DropList.prototype.show = function () {\r\n if (this.hideTimeoutId) {\r\n // 清除之前的定时隐藏\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n var menu = this.menu;\r\n var $menuELem = menu.$elem;\r\n var $container = this.$container;\r\n if (this._show) {\r\n return;\r\n }\r\n if (this.rendered) {\r\n // 显示\r\n $container.show();\r\n }\r\n else {\r\n // 加入 DOM 之前先定位位置\r\n var menuHeight = $menuELem.getSizeData().height || 0;\r\n var width = this.conf.width || 100; // 默认为 100\r\n $container.css('margin-top', menuHeight + 'px').css('width', width + 'px');\r\n // 加入到 DOM\r\n $menuELem.append($container);\r\n this.rendered = true;\r\n }\r\n // 修改属性\r\n this._show = true;\r\n };\r\n /**\r\n * 隐藏 DropList\r\n */\r\n DropList.prototype.hide = function () {\r\n if (this.showTimeoutId) {\r\n // 清除之前的定时显示\r\n clearTimeout(this.showTimeoutId);\r\n }\r\n var $container = this.$container;\r\n if (!this._show) {\r\n return;\r\n }\r\n // 隐藏并需改属性\r\n $container.hide();\r\n this._show = false;\r\n };\r\n Object.defineProperty(DropList.prototype, \"isShow\", {\r\n get: function () {\r\n return this._show;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DropList;\r\n}());\r\nexports.default = DropList;\r\n","\"use strict\";\r\n/**\r\n * @description 检查选区是否在链接中,即菜单是否应该 active\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction isActive(editor) {\r\n var $selectionELem = editor.selection.getSelectionContainerElem();\r\n if (!$selectionELem) {\r\n return false;\r\n }\r\n if ($selectionELem.getNodeName() === 'A') {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\nexports.default = isActive;\r\n","\"use strict\";\r\n/**\r\n * @description 检查选区是否在代码中,即菜单是否应该 active\r\n * @author lkw\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction isActive(editor) {\r\n var $selectionELem = editor.selection.getSelectionContainerElem();\r\n if (!$selectionELem) {\r\n return false;\r\n }\r\n if ($selectionELem.getNodeName() == 'CODE' ||\r\n $selectionELem.getNodeName() == 'PRE' ||\r\n $selectionELem.parent().getNodeName() == 'CODE' ||\r\n $selectionELem.parent().getNodeName() == 'PRE' ||\r\n /hljs/.test($selectionELem.parent().attr('class'))) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\nexports.default = isActive;\r\n","\"use strict\";\r\n/**\r\n * @description 入口文件\r\n * @author wangfupeng\r\n */\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nrequire(\"./assets/style/common.less\");\r\nrequire(\"./assets/style/icon.less\");\r\nrequire(\"./assets/style/menus.less\");\r\nrequire(\"./assets/style/text.less\");\r\nrequire(\"./assets/style/panel.less\");\r\nrequire(\"./assets/style/droplist.less\");\r\nrequire(\"./utils/polyfill\");\r\nvar index_1 = __importDefault(require(\"./editor/index\"));\r\n__exportStar(require(\"./menus/menu-constructors/index\"), exports);\r\n// 检验是否浏览器环境\r\ntry {\r\n document;\r\n}\r\ncatch (ex) {\r\n throw new Error('请在浏览器环境下运行');\r\n}\r\nexports.default = index_1.default;\r\n","var parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","require('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\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 || new Function(\"return 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","var parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","require('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./common.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-toolbar,\\n.w-e-text-container,\\n.w-e-menu-panel {\\n padding: 0;\\n margin: 0;\\n box-sizing: border-box;\\n background-color: #fff;\\n /*表情菜单样式*/\\n /*分割线样式*/\\n}\\n.w-e-toolbar .eleImg,\\n.w-e-text-container .eleImg,\\n.w-e-menu-panel .eleImg {\\n cursor: pointer;\\n display: inline-block;\\n font-size: 18px;\\n padding: 0 3px;\\n}\\n.w-e-toolbar *,\\n.w-e-text-container *,\\n.w-e-menu-panel * {\\n padding: 0;\\n margin: 0;\\n box-sizing: border-box;\\n}\\n.w-e-toolbar hr,\\n.w-e-text-container hr,\\n.w-e-menu-panel hr {\\n cursor: pointer;\\n display: block;\\n height: 0px;\\n border: 0;\\n border-top: 3px solid #ccc;\\n margin: 20px 0;\\n}\\n.w-e-clear-fix:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n}\\n.w-e-drop-list-item {\\n position: relative;\\n top: 1px;\\n padding-right: 7px;\\n color: #333 !important;\\n}\\n.w-e-drop-list-tl {\\n padding-left: 10px;\\n text-align: left;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./icon.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"../font/w-e-icon.woff?ddq1c7\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\nexports.push([module.id, \"@font-face {\\n font-family: 'w-e-icon';\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('truetype');\\n font-weight: normal;\\n font-style: normal;\\n}\\n[class^=\\\"w-e-icon-\\\"],\\n[class*=\\\" w-e-icon-\\\"] {\\n /* use !important to prevent issues with browser extensions that change fonts */\\n font-family: 'w-e-icon' !important;\\n speak: none;\\n font-style: normal;\\n font-weight: normal;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n /* Better Font Rendering =========== */\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.w-e-icon-close:before {\\n content: \\\"\\\\f00d\\\";\\n}\\n.w-e-icon-upload2:before {\\n content: \\\"\\\\e9c6\\\";\\n}\\n.w-e-icon-trash-o:before {\\n content: \\\"\\\\f014\\\";\\n}\\n.w-e-icon-header:before {\\n content: \\\"\\\\f1dc\\\";\\n}\\n.w-e-icon-pencil2:before {\\n content: \\\"\\\\e906\\\";\\n}\\n.w-e-icon-paint-brush:before {\\n content: \\\"\\\\f1fc\\\";\\n}\\n.w-e-icon-image:before {\\n content: \\\"\\\\e90d\\\";\\n}\\n.w-e-icon-play:before {\\n content: \\\"\\\\e912\\\";\\n}\\n.w-e-icon-location:before {\\n content: \\\"\\\\e947\\\";\\n}\\n.w-e-icon-undo:before {\\n content: \\\"\\\\e965\\\";\\n}\\n.w-e-icon-redo:before {\\n content: \\\"\\\\e966\\\";\\n}\\n.w-e-icon-quotes-left:before {\\n content: \\\"\\\\e977\\\";\\n}\\n.w-e-icon-list-numbered:before {\\n content: \\\"\\\\e9b9\\\";\\n}\\n.w-e-icon-list2:before {\\n content: \\\"\\\\e9bb\\\";\\n}\\n.w-e-icon-link:before {\\n content: \\\"\\\\e9cb\\\";\\n}\\n.w-e-icon-happy:before {\\n content: \\\"\\\\e9df\\\";\\n}\\n.w-e-icon-bold:before {\\n content: \\\"\\\\ea62\\\";\\n}\\n.w-e-icon-underline:before {\\n content: \\\"\\\\ea63\\\";\\n}\\n.w-e-icon-italic:before {\\n content: \\\"\\\\ea64\\\";\\n}\\n.w-e-icon-strikethrough:before {\\n content: \\\"\\\\ea65\\\";\\n}\\n.w-e-icon-table2:before {\\n content: \\\"\\\\ea71\\\";\\n}\\n.w-e-icon-paragraph-left:before {\\n content: \\\"\\\\ea77\\\";\\n}\\n.w-e-icon-paragraph-center:before {\\n content: \\\"\\\\ea78\\\";\\n}\\n.w-e-icon-paragraph-right:before {\\n content: \\\"\\\\ea79\\\";\\n}\\n.w-e-icon-paragraph-justify:before {\\n content: \\\"\\\\ea7a\\\";\\n}\\n.w-e-icon-terminal:before {\\n content: \\\"\\\\f120\\\";\\n}\\n.w-e-icon-page-break:before {\\n content: \\\"\\\\ea68\\\";\\n}\\n.w-e-icon-cancel-circle:before {\\n content: \\\"\\\\ea0d\\\";\\n}\\n.w-e-icon-font:before {\\n content: \\\"\\\\ea5c\\\";\\n}\\n.w-e-icon-text-heigh:before {\\n content: \\\"\\\\ea5f\\\";\\n}\\n.w-e-icon-paint-format:before {\\n content: \\\"\\\\e90c\\\";\\n}\\n.w-e-icon-indent-increase:before {\\n content: \\\"\\\\ea7b\\\";\\n}\\n.w-e-icon-indent-decrease:before {\\n content: \\\"\\\\ea7c\\\";\\n}\\n.w-e-icon-row-height:before {\\n content: \\\"\\\\e9be\\\";\\n}\\n.w-e-icon-fullscreen_exit:before {\\n content: \\\"\\\\e900\\\";\\n}\\n.w-e-icon-fullscreen:before {\\n content: \\\"\\\\e901\\\";\\n}\\n.w-e-icon-split-line:before {\\n content: \\\"\\\\ea0b\\\";\\n}\\n.w-e-icon-checkbox-checked:before {\\n content: \\\"\\\\ea52\\\";\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};","export default \"data:font/woff;base64,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\"","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./menus.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-toolbar {\\n display: flex;\\n padding: 0 6px;\\n flex-wrap: wrap;\\n position: relative;\\n /* 单个菜单 */\\n}\\n.w-e-toolbar .w-e-menu {\\n position: relative;\\n display: flex;\\n width: 40px;\\n height: 40px;\\n align-items: center;\\n justify-content: center;\\n text-align: center;\\n cursor: pointer;\\n}\\n.w-e-toolbar .w-e-menu i {\\n color: #999;\\n}\\n.w-e-toolbar .w-e-menu:hover {\\n background-color: #F6F6F6;\\n}\\n.w-e-toolbar .w-e-menu:hover i {\\n color: #333;\\n}\\n.w-e-toolbar .w-e-active i {\\n color: #1e88e5;\\n}\\n.w-e-toolbar .w-e-active:hover i {\\n color: #1e88e5;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./text.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-text-container {\\n position: relative;\\n}\\n.w-e-text-container .w-e-progress {\\n position: absolute;\\n background-color: #1e88e5;\\n top: 0;\\n left: 0;\\n height: 1px;\\n}\\n.w-e-text-container .placeholder {\\n color: #D4D4D4;\\n position: absolute;\\n font-size: 11pt;\\n line-height: 22px;\\n left: 10px;\\n top: 10px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n z-index: -1;\\n}\\n.w-e-text {\\n padding: 0 10px;\\n overflow-y: auto;\\n}\\n.w-e-text p,\\n.w-e-text h1,\\n.w-e-text h2,\\n.w-e-text h3,\\n.w-e-text h4,\\n.w-e-text h5,\\n.w-e-text table,\\n.w-e-text pre {\\n margin: 10px 0;\\n line-height: 1.5;\\n}\\n.w-e-text ul,\\n.w-e-text ol {\\n margin: 10px 0 10px 20px;\\n}\\n.w-e-text blockquote {\\n display: block;\\n border-left: 8px solid #d0e5f2;\\n padding: 5px 10px;\\n margin: 10px 0;\\n line-height: 1.4;\\n font-size: 100%;\\n background-color: #f1f1f1;\\n}\\n.w-e-text code {\\n display: inline-block;\\n background-color: #f1f1f1;\\n border-radius: 3px;\\n padding: 3px 5px;\\n margin: 0 3px;\\n}\\n.w-e-text pre code {\\n display: block;\\n}\\n.w-e-text table {\\n border-top: 1px solid #ccc;\\n border-left: 1px solid #ccc;\\n}\\n.w-e-text table td,\\n.w-e-text table th {\\n border-bottom: 1px solid #ccc;\\n border-right: 1px solid #ccc;\\n padding: 3px 5px;\\n min-height: 30px;\\n}\\n.w-e-text table th {\\n border-bottom: 2px solid #ccc;\\n text-align: center;\\n background-color: #f1f1f1;\\n}\\n.w-e-text:focus {\\n outline: none;\\n}\\n.w-e-text img {\\n cursor: pointer;\\n}\\n.w-e-text img:hover {\\n box-shadow: 0 0 5px #333;\\n}\\n.w-e-tooltip {\\n display: flex;\\n color: #f1f1f1;\\n background-color: rgba(0, 0, 0, 0.75);\\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);\\n border-radius: 4px;\\n padding: 4px 5px 6px;\\n position: absolute;\\n}\\n.w-e-tooltip-up::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border: 5px solid rgba(0, 0, 0, 0);\\n border-top-color: rgba(0, 0, 0, 0.73);\\n}\\n.w-e-tooltip-down::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border: 5px solid rgba(0, 0, 0, 0);\\n border-bottom-color: rgba(0, 0, 0, 0.73);\\n}\\n.w-e-tooltip-item-wrapper {\\n cursor: pointer;\\n font-size: 14px;\\n margin: 0 5px;\\n}\\n.w-e-tooltip-item-wrapper:hover {\\n color: #ccc;\\n text-decoration: underline;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./panel.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-menu .w-e-panel-container {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n border: 1px solid #ccc;\\n border-top: 0;\\n box-shadow: 1px 1px 2px #ccc;\\n color: #333;\\n background-color: #fff;\\n text-align: left;\\n /* 为 emotion panel 定制的样式 */\\n /* 上传图片的 panel 定制样式 */\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-close {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 5px;\\n margin: 2px 5px 0 0;\\n cursor: pointer;\\n color: #999;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-close:hover {\\n color: #333;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-title {\\n list-style: none;\\n display: flex;\\n font-size: 14px;\\n margin: 2px 10px 0 10px;\\n border-bottom: 1px solid #f1f1f1;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-title .w-e-item {\\n padding: 3px 5px;\\n color: #999;\\n cursor: pointer;\\n margin: 0 3px;\\n position: relative;\\n top: 1px;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-title .w-e-active {\\n color: #333;\\n border-bottom: 1px solid #333;\\n cursor: default;\\n font-weight: 700;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content {\\n padding: 10px 15px 10px 15px;\\n font-size: 16px;\\n /* 输入框的样式 */\\n /* 按钮的样式 */\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content input:focus,\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content textarea:focus,\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content button:focus {\\n outline: none;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content textarea {\\n width: 100%;\\n border: 1px solid #ccc;\\n padding: 5px;\\n margin-top: 10px;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content textarea:focus {\\n border-color: #1e88e5;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content input[type=text] {\\n border: none;\\n border-bottom: 1px solid #ccc;\\n font-size: 14px;\\n height: 20px;\\n color: #333;\\n text-align: left;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content input[type=text].small {\\n width: 30px;\\n text-align: center;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content input[type=text].block {\\n display: block;\\n width: 100%;\\n margin: 10px 0;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus {\\n border-bottom: 2px solid #1e88e5;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button {\\n font-size: 14px;\\n color: #1e88e5;\\n border: none;\\n padding: 5px 10px;\\n background-color: #fff;\\n cursor: pointer;\\n border-radius: 3px;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left {\\n float: left;\\n margin-right: 10px;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right {\\n float: right;\\n margin-left: 10px;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray {\\n color: #999;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red {\\n color: #c24f4a;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover {\\n background-color: #f1f1f1;\\n}\\n.w-e-menu .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n}\\n.w-e-menu .w-e-panel-container .w-e-emoticon-container .w-e-item {\\n cursor: pointer;\\n font-size: 18px;\\n padding: 0 3px;\\n display: inline-block;\\n}\\n.w-e-menu .w-e-panel-container .w-e-up-img-container {\\n text-align: center;\\n}\\n.w-e-menu .w-e-panel-container .w-e-up-img-container .w-e-up-btn {\\n display: inline-block;\\n color: #999;\\n cursor: pointer;\\n font-size: 60px;\\n line-height: 1;\\n}\\n.w-e-menu .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover {\\n color: #333;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./droplist.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-toolbar .w-e-droplist {\\n position: absolute;\\n left: 0;\\n top: 0;\\n background-color: #fff;\\n border: 1px solid #f1f1f1;\\n border-right-color: #ccc;\\n border-bottom-color: #ccc;\\n}\\n.w-e-toolbar .w-e-droplist .w-e-dp-title {\\n text-align: center;\\n color: #999;\\n line-height: 2;\\n border-bottom: 1px solid #f1f1f1;\\n font-size: 13px;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-list {\\n list-style: none;\\n line-height: 1;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item {\\n color: #333;\\n padding: 5px 0;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover {\\n background-color: #f1f1f1;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-block {\\n list-style: none;\\n text-align: left;\\n padding: 5px;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item {\\n display: inline-block;\\n padding: 3px 5px;\\n}\\n.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover {\\n background-color: #f1f1f1;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\r\n/**\r\n * @description polyfill 【注意,js 语法的兼容,都通过 babel transform runtime 支持】\r\n * @author wangfupeng\r\n */\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = function (s) {\r\n var matches = this.ownerDocument.querySelectorAll(s);\r\n var i = matches.length;\r\n for (i; i >= 0; i--) {\r\n if (matches.item(i) === this)\r\n break;\r\n }\r\n return i > -1;\r\n };\r\n}\r\n// 有的第三方库需要原生 Promise ,而 IE11 又没有原生 Promise ,就报错\r\nwindow.Promise = Promise;\r\n","module.exports = require(\"core-js-pure/stable/promise\");","var parent = require('../../es/promise');\n\nmodule.exports = parent;\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\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 $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\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 var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, 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\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = 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});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","\"use strict\";\r\n/**\r\n * @description 编辑器 class\r\n * @author wangfupeng\r\n */\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../utils/dom-core\"));\r\nvar util_1 = require(\"../utils/util\");\r\nvar config_1 = __importDefault(require(\"../config\"));\r\nvar selection_1 = __importDefault(require(\"./selection\"));\r\nvar command_1 = __importDefault(require(\"./command\"));\r\nvar index_1 = __importDefault(require(\"../text/index\"));\r\nvar index_2 = __importDefault(require(\"../menus/index\"));\r\nvar init_dom_1 = __importDefault(require(\"./init-fns/init-dom\"));\r\nvar init_selection_1 = __importDefault(require(\"./init-fns/init-selection\"));\r\nvar bind_event_1 = __importDefault(require(\"./init-fns/bind-event\"));\r\nvar i18next_init_1 = __importDefault(require(\"./init-fns/i18next-init\"));\r\nvar set_full_screen_1 = __importStar(require(\"./init-fns/set-full-screen\"));\r\nvar z_index_1 = __importDefault(require(\"./z-index\"));\r\nvar index_3 = __importDefault(require(\"./change/index\"));\r\nvar index_4 = __importDefault(require(\"./history/index\"));\r\nvar disable_1 = __importDefault(require(\"./disable\"));\r\n// 创建菜单的 class\r\nvar BtnMenu_1 = __importDefault(require(\"../menus/menu-constructors/BtnMenu\"));\r\nvar DropList_1 = __importDefault(require(\"../menus/menu-constructors/DropList\"));\r\nvar DropListMenu_1 = __importDefault(require(\"../menus/menu-constructors/DropListMenu\"));\r\nvar Panel_1 = __importDefault(require(\"../menus/menu-constructors/Panel\"));\r\nvar PanelMenu_1 = __importDefault(require(\"../menus/menu-constructors/PanelMenu\"));\r\nvar Tooltip_1 = __importDefault(require(\"../menus/menu-constructors/Tooltip\"));\r\nvar EDITOR_ID = 1;\r\nvar Editor = /** @class */ (function () {\r\n /**\r\n * 构造函数\r\n * @param toolbarSelector 工具栏 DOM selector\r\n * @param textSelector 文本区域 DOM selector\r\n */\r\n function Editor(toolbarSelector, textSelector) {\r\n // 实例销毁前需要执行的钩子集合\r\n this.beforeDestroyHooks = [];\r\n // id,用以区分单个页面不同的编辑器对象\r\n this.id = \"wangEditor-\" + EDITOR_ID++;\r\n this.toolbarSelector = toolbarSelector;\r\n this.textSelector = textSelector;\r\n if (toolbarSelector == null) {\r\n throw new Error('错误:初始化编辑器时候未传入任何参数,请查阅文档');\r\n }\r\n // 属性的默认值,后面可能会再修改\r\n // 默认配置 - 当一个页面有多个编辑器的时候,因为 JS 的特性(引用类型)会导致多个编辑器的 config 引用是同一个,所以需要 深度克隆 断掉引用\r\n this.config = util_1.deepClone(config_1.default);\r\n this.$toolbarElem = dom_core_1.default('<div></div>');\r\n this.$textContainerElem = dom_core_1.default('<div></div>');\r\n this.$textElem = dom_core_1.default('<div></div>');\r\n this.toolbarElemId = '';\r\n this.textElemId = '';\r\n this.isFocus = false;\r\n this.isComposing = false;\r\n this.isCompatibleMode = false;\r\n this.selection = new selection_1.default(this);\r\n this.cmd = new command_1.default(this);\r\n this.txt = new index_1.default(this);\r\n this.menus = new index_2.default(this);\r\n this.zIndex = new z_index_1.default();\r\n this.change = new index_3.default(this);\r\n this.history = new index_4.default(this);\r\n }\r\n /**\r\n * 初始化选区\r\n * @param newLine 新建一行\r\n */\r\n Editor.prototype.initSelection = function (newLine) {\r\n init_selection_1.default(this, newLine);\r\n };\r\n /**\r\n * 创建编辑器实例\r\n */\r\n Editor.prototype.create = function () {\r\n // 初始化 ZIndex\r\n this.zIndex.init(this);\r\n // 确定当前的历史记录模式\r\n this.isCompatibleMode = this.config.compatibleMode();\r\n // 标准模式下,重置延迟时间\r\n if (!this.isCompatibleMode) {\r\n this.config.onchangeTimeout = 30;\r\n }\r\n // 国际化 因为要在创建菜单前使用 所以要最先 初始化\r\n i18next_init_1.default(this);\r\n // 初始化 DOM\r\n init_dom_1.default(this);\r\n // 初始化 text\r\n this.txt.init();\r\n // 初始化菜单\r\n this.menus.init();\r\n // 初始化全屏功能\r\n set_full_screen_1.default(this);\r\n // 初始化选区,将光标定位到内容尾部\r\n this.initSelection(true);\r\n // 绑定事件\r\n bind_event_1.default(this);\r\n // 绑定监听的目标节点\r\n this.change.observe();\r\n this.history.observe();\r\n };\r\n /**\r\n * 提供给用户添加销毁前的钩子函数\r\n * @param fn 钩子函数\r\n */\r\n Editor.prototype.beforeDestroy = function (fn) {\r\n this.beforeDestroyHooks.push(fn);\r\n return this;\r\n };\r\n /**\r\n * 销毁当前编辑器实例\r\n */\r\n Editor.prototype.destroy = function () {\r\n var _this = this;\r\n // 调用钩子函数\r\n this.beforeDestroyHooks.forEach(function (fn) { return fn.call(_this); });\r\n // 销毁 DOM 节点\r\n this.$toolbarElem.remove();\r\n this.$textContainerElem.remove();\r\n };\r\n /**\r\n * 将编辑器设置为全屏\r\n */\r\n Editor.prototype.fullScreen = function () {\r\n set_full_screen_1.setFullScreen(this);\r\n };\r\n /**\r\n * 将编辑器退出全屏\r\n */\r\n Editor.prototype.unFullScreen = function () {\r\n set_full_screen_1.setUnFullScreen(this);\r\n };\r\n /**\r\n * 禁用api\r\n */\r\n Editor.prototype.disable = function () {\r\n disable_1.default.disable(this);\r\n };\r\n /**\r\n * 启用api\r\n */\r\n Editor.prototype.enable = function () {\r\n disable_1.default.enable(this);\r\n };\r\n // 暴露 $\r\n Editor.$ = dom_core_1.default;\r\n Editor.BtnMenu = BtnMenu_1.default;\r\n Editor.DropList = DropList_1.default;\r\n Editor.DropListMenu = DropListMenu_1.default;\r\n Editor.Panel = Panel_1.default;\r\n Editor.PanelMenu = PanelMenu_1.default;\r\n Editor.Tooltip = Tooltip_1.default;\r\n return Editor;\r\n}());\r\nexports.default = Editor;\r\n","require('../../modules/web.dom-collections.iterator');\nvar forEach = require('../array/virtual/for-each');\nvar classof = require('../../internals/classof');\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.forEach;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach)\n // eslint-disable-next-line no-prototype-builtins\n || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own;\n};\n","var parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n","require('../../../modules/es.array.for-each');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var parent = require('../../es/instance/includes');\n\nmodule.exports = parent;\n","var arrayIncludes = require('../array/virtual/includes');\nvar stringIncludes = require('../string/virtual/includes');\n\nvar ArrayPrototype = Array.prototype;\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.includes;\n if (it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.includes)) return arrayIncludes;\n if (typeof it === 'string' || it === StringPrototype || (it instanceof String && own === StringPrototype.includes)) {\n return stringIncludes;\n } return own;\n};\n","require('../../../modules/es.array.includes');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').includes;\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","require('../../../modules/es.string.includes');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('String').includes;\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","var parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n","var filter = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.filter;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.filter) ? filter : own;\n};\n","require('../../../modules/es.array.filter');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').filter;\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var parent = require('../../es/instance/splice');\n\nmodule.exports = parent;\n","var splice = require('../array/virtual/splice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.splice;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.splice) ? splice : own;\n};\n","require('../../../modules/es.array.splice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').splice;\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n","var indexOf = require('../array/virtual/index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.indexOf;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.indexOf) ? indexOf : own;\n};\n","require('../../../modules/es.array.index-of');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').indexOf;\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var parent = require('../../es/map');\n\nmodule.exports = parent;\n","require('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var parent = require('../../es/instance/trim');\n\nmodule.exports = parent;\n","var trim = require('../string/virtual/trim');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.trim;\n return typeof it === 'string' || it === StringPrototype\n || (it instanceof String && own === StringPrototype.trim) ? trim : own;\n};\n","require('../../../modules/es.string.trim');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('String').trim;\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var parent = require('../../es/instance/map');\n\nmodule.exports = parent;\n","var map = require('../array/virtual/map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.map;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.map) ? map : own;\n};\n","require('../../../modules/es.array.map');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').map;\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","require('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.github.io/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","module.exports = require(\"core-js-pure/features/symbol/iterator\");","var parent = require('../../es/symbol/iterator');\n\nmodule.exports = parent;\n","require('../../modules/es.symbol.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","module.exports = require(\"core-js-pure/features/symbol\");","var parent = require('../../es/symbol');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.observable');\nrequire('../../modules/esnext.symbol.pattern-match');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\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(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('asyncDispose');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('dispose');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\ndefineWellKnownSymbol('replaceAll');\n","require('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setTimeout;\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n","var parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","var slice = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.slice;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.slice) ? slice : own;\n};\n","require('../../../modules/es.array.slice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').slice;\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","module.exports = require(\"core-js-pure/stable/parse-int\");","var parent = require('../es/parse-int');\n\nmodule.exports = parent;\n","require('../modules/es.parse-int');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseInt;\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","\"use strict\";\r\n/**\r\n * @description 编辑器配置\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar menus_1 = __importDefault(require(\"./menus\"));\r\nvar events_1 = __importDefault(require(\"./events\"));\r\nvar style_1 = __importDefault(require(\"./style\"));\r\nvar paste_1 = __importDefault(require(\"./paste\"));\r\nvar cmd_1 = __importDefault(require(\"./cmd\"));\r\nvar image_1 = __importDefault(require(\"./image\"));\r\nvar text_1 = __importDefault(require(\"./text\"));\r\nvar lang_1 = __importDefault(require(\"./lang\"));\r\nvar history_1 = __importDefault(require(\"./history\"));\r\n// 合并所有的配置信息\r\nvar defaultConfig = Object.assign({}, menus_1.default, events_1.default, style_1.default, cmd_1.default, paste_1.default, image_1.default, text_1.default, lang_1.default, history_1.default, \r\n//链接校验的配置函数\r\n{\r\n linkCheck: function (text, link) {\r\n return true;\r\n },\r\n}, \r\n//网络图片校验的配置函数\r\n{\r\n linkImgCheck: function (src) {\r\n return true;\r\n },\r\n});\r\nexports.default = defaultConfig;\r\n","module.exports = require(\"core-js-pure/stable/object/assign\");","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","\"use strict\";\r\n/**\r\n * @description 菜单配置\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SINA_PATH1 = 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal';\r\nvar SINA_PATH2 = 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal';\r\n/*表情菜单数据结构类型END*/\r\nexports.default = {\r\n menus: [\r\n 'head',\r\n 'bold',\r\n 'fontSize',\r\n // 'customFontSize',\r\n 'fontName',\r\n 'italic',\r\n 'underline',\r\n 'strikeThrough',\r\n 'indent',\r\n 'lineHeight',\r\n 'foreColor',\r\n 'backColor',\r\n 'link',\r\n 'list',\r\n 'justify',\r\n 'quote',\r\n 'emoticon',\r\n 'image',\r\n 'video',\r\n 'table',\r\n 'code',\r\n 'splitLine',\r\n 'undo',\r\n 'redo',\r\n ],\r\n fontNames: [\r\n '黑体',\r\n '仿宋',\r\n '楷体',\r\n '标楷体',\r\n '华文仿宋',\r\n '华文楷体',\r\n '宋体',\r\n '微软雅黑',\r\n 'Arial',\r\n 'Tahoma',\r\n 'Verdana',\r\n 'Times New Roman',\r\n 'Courier New',\r\n ],\r\n fontSizes: {\r\n 'x-small': {\r\n name: '10px',\r\n value: '1',\r\n },\r\n small: {\r\n name: '13px',\r\n value: '2',\r\n },\r\n normal: {\r\n name: '16px',\r\n value: '3',\r\n },\r\n large: {\r\n name: '18px',\r\n value: '4',\r\n },\r\n 'x-large': {\r\n name: '24px',\r\n value: '5',\r\n },\r\n 'xx-large': {\r\n name: '32px',\r\n value: '6',\r\n },\r\n 'xxx-large': {\r\n name: '48px',\r\n value: '7',\r\n },\r\n },\r\n // customFontSize: [ // 该菜单暂时不用 - 王福朋 20200924\r\n // { value: '9px', text: '9' },\r\n // { value: '10px', text: '10' },\r\n // { value: '12px', text: '12' },\r\n // { value: '14px', text: '14' },\r\n // { value: '16px', text: '16' },\r\n // { value: '20px', text: '20' },\r\n // { value: '42px', text: '42' },\r\n // { value: '72px', text: '72' },\r\n // ],\r\n colors: [\r\n '#000000',\r\n '#eeece0',\r\n '#1c487f',\r\n '#4d80bf',\r\n '#c24f4a',\r\n '#8baa4a',\r\n '#7b5ba1',\r\n '#46acc8',\r\n '#f9963b',\r\n '#ffffff',\r\n ],\r\n //插入代码语言配置\r\n languageType: [\r\n 'Bash',\r\n 'C',\r\n 'C#',\r\n 'C++',\r\n 'CSS',\r\n 'Java',\r\n 'JavaScript',\r\n 'JSON',\r\n 'TypeScript',\r\n 'Plain text',\r\n 'Html',\r\n 'XML',\r\n 'SQL',\r\n 'Go',\r\n 'Kotlin',\r\n 'Lua',\r\n 'Markdown',\r\n 'PHP',\r\n 'Python',\r\n 'Shell Session',\r\n 'Ruby',\r\n ],\r\n languageTab: ' ',\r\n /**\r\n * 表情配置菜单\r\n * 如果为emoji表情直接作为元素插入\r\n * emoticon:Array<EmotionsType>\r\n */\r\n emotions: [\r\n {\r\n // tab 的标题\r\n title: '默认',\r\n // type -> 'emoji' / 'image'\r\n type: 'image',\r\n // content -> 数组\r\n content: [\r\n {\r\n alt: '[坏笑]',\r\n src: SINA_PATH1 + \"/50/pcmoren_huaixiao_org.png\",\r\n },\r\n {\r\n alt: '[舔屏]',\r\n src: SINA_PATH1 + \"/40/pcmoren_tian_org.png\",\r\n },\r\n {\r\n alt: '[污]',\r\n src: SINA_PATH1 + \"/3c/pcmoren_wu_org.png\",\r\n },\r\n ],\r\n },\r\n {\r\n // tab 的标题\r\n title: '新浪',\r\n // type -> 'emoji' / 'image'\r\n type: 'image',\r\n // content -> 数组\r\n content: [\r\n {\r\n src: SINA_PATH2 + \"/7a/shenshou_thumb.gif\",\r\n alt: '[草泥马]',\r\n },\r\n {\r\n src: SINA_PATH2 + \"/60/horse2_thumb.gif\",\r\n alt: '[神马]',\r\n },\r\n {\r\n src: SINA_PATH2 + \"/bc/fuyun_thumb.gif\",\r\n alt: '[浮云]',\r\n },\r\n ],\r\n },\r\n {\r\n // tab 的标题\r\n title: 'emoji',\r\n // type -> 'emoji' / 'image'\r\n type: 'emoji',\r\n // content -> 数组\r\n content: '😀 😃 😄 😁 😆 😅 😂 😊 😇 🙂 🙃 😉 😓 😪 😴 🙄 🤔 😬 🤐'.split(/\\s/),\r\n },\r\n {\r\n // tab 的标题\r\n title: '手势',\r\n // type -> 'emoji' / 'image'\r\n type: 'emoji',\r\n // content -> 数组\r\n content: [\r\n '🙌',\r\n '👏',\r\n '👋',\r\n '👍',\r\n '👎',\r\n '👊',\r\n '✊',\r\n '️👌',\r\n '✋',\r\n '👐',\r\n '💪',\r\n '🙏',\r\n '️👆',\r\n '👇',\r\n '👈',\r\n '👉',\r\n '🖕',\r\n '🖐',\r\n '🤘',\r\n ],\r\n },\r\n ],\r\n lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3'],\r\n undoLimit: 20,\r\n indentation: '2em',\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 事件配置\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar const_1 = require(\"../utils/const\");\r\nexports.default = {\r\n onchangeTimeout: 200,\r\n onchange: const_1.EMPTY_FN,\r\n onfocus: const_1.EMPTY_FN,\r\n onblur: const_1.EMPTY_FN,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 粘贴,配置文件\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n // 粘贴过滤样式,默认开启\r\n pasteFilterStyle: true,\r\n // 粘贴内容时,忽略图片。默认关闭\r\n pasteIgnoreImg: false,\r\n // 对粘贴的文字进行自定义处理,返回处理后的结果。编辑器会将处理后的结果粘贴到编辑区域中。\r\n // IE 暂时不支持\r\n pasteTextHandle: function (content) {\r\n // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回\r\n return content;\r\n },\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 命令配置项\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n styleWithCSS: false,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 图片相关的配置\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar const_1 = require(\"../utils/const\");\r\nexports.default = {\r\n // 显示“插入网络图片”\r\n showLinkImg: true,\r\n // 插入图片成功之后的回调函数\r\n linkImgCallback: const_1.EMPTY_FN,\r\n // 服务端地址\r\n uploadImgServer: '',\r\n // 使用 base64 存储图片\r\n uploadImgShowBase64: false,\r\n // 上传图片的最大体积,默认 5M\r\n uploadImgMaxSize: 5 * 1024 * 1024,\r\n // 一次最多上传多少个图片\r\n uploadImgMaxLength: 100,\r\n // 自定义上传图片的名称\r\n uploadFileName: '',\r\n // 上传图片自定义参数\r\n uploadImgParams: {},\r\n // 自定义参数拼接到 url 中\r\n uploadImgParamsWithUrl: false,\r\n // 上传图片自定义 header\r\n uploadImgHeaders: {},\r\n // 钩子函数\r\n uploadImgHooks: {},\r\n // 上传图片超时时间 ms\r\n uploadImgTimeout: 10 * 1000,\r\n // 跨域带 cookie\r\n withCredentials: false,\r\n // 自定义上传\r\n customUploadImg: null,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 默认常量配置\r\n * @author xiaokyo\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n focus: true,\r\n height: 300,\r\n placeholder: '请输入正文',\r\n zIndexFullScreen: 10000,\r\n showFullScreen: true,\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n lang: 'zh-CN',\r\n languages: {\r\n 'zh-CN': {\r\n wangEditor: {\r\n 插入: '插入',\r\n 默认: '默认',\r\n 创建: '创建',\r\n 修改: '修改',\r\n 如: '如',\r\n 请输入正文: '请输入正文',\r\n menus: {\r\n dropListMenu: {\r\n 设置标题: '设置标题',\r\n 背景颜色: '背景颜色',\r\n 文字颜色: '文字颜色',\r\n 设置字号: '设置字号',\r\n 设置字体: '设置字体',\r\n 设置缩进: '设置缩进',\r\n 对齐方式: '对齐方式',\r\n 设置行高: '设置行高',\r\n 序列: '序列',\r\n head: {\r\n 正文: '正文',\r\n },\r\n indent: {\r\n 增加缩进: '增加缩进',\r\n 减少缩进: '减少缩进',\r\n },\r\n justify: {\r\n 靠左: '靠左',\r\n 居中: '居中',\r\n 靠右: '靠右',\r\n 两端: '两端',\r\n },\r\n list: {\r\n 无序列表: '无序列表',\r\n 有序列表: '有序列表',\r\n },\r\n },\r\n panelMenus: {\r\n emoticon: {\r\n 默认: '默认',\r\n 新浪: '新浪',\r\n emoji: 'emoji',\r\n 手势: '手势',\r\n },\r\n image: {\r\n 图片链接: '图片链接',\r\n 上传图片: '上传图片',\r\n 网络图片: '网络图片',\r\n },\r\n link: {\r\n 链接: '链接',\r\n 链接文字: '链接文字',\r\n 取消链接: '取消链接',\r\n 查看链接: '查看链接',\r\n },\r\n video: {\r\n 插入视频: '插入视频',\r\n },\r\n table: {\r\n 行: '行',\r\n 列: '列',\r\n 的: '的',\r\n 表格: '表格',\r\n 添加行: '添加行',\r\n 删除行: '删除行',\r\n 添加列: '添加列',\r\n 删除列: '删除列',\r\n 设置表头: '设置表头',\r\n 取消表头: '取消表头',\r\n 插入表格: '插入表格',\r\n 删除表格: '删除表格',\r\n },\r\n code: {\r\n 删除代码: '删除代码',\r\n 修改代码: '修改代码',\r\n 插入代码: '插入代码',\r\n },\r\n },\r\n },\r\n validate: {\r\n 张图片: '张图片',\r\n 大于: '大于',\r\n 图片链接: '图片链接',\r\n 不是图片: '不是图片',\r\n 返回结果: '返回结果',\r\n 上传图片超时: '上传图片超时',\r\n 上传图片错误: '上传图片错误',\r\n 上传图片失败: '上传图片失败',\r\n 插入图片错误: '插入图片错误',\r\n 一次最多上传: '一次最多上传',\r\n 下载链接失败: '下载链接失败',\r\n 图片验证未通过: '图片验证未通过',\r\n 服务器返回状态: '服务器返回状态',\r\n 上传图片返回结果错误: '上传图片返回结果错误',\r\n 请替换为支持的图片类型: '请替换为支持的图片类型',\r\n 您插入的网络图片无法识别: '您插入的网络图片无法识别',\r\n 您刚才插入的图片链接未通过编辑器校验: '您刚才插入的图片链接未通过编辑器校验',\r\n },\r\n },\r\n },\r\n en: {\r\n wangEditor: {\r\n 插入: 'insert',\r\n 默认: 'default',\r\n 创建: 'create',\r\n 修改: 'edit',\r\n 如: 'like',\r\n 请输入正文: 'please enter the text',\r\n menus: {\r\n dropListMenu: {\r\n 设置标题: 'title',\r\n 背景颜色: 'background',\r\n 文字颜色: 'font color',\r\n 设置字号: 'font size',\r\n 设置字体: 'font family',\r\n 设置缩进: 'indent',\r\n 对齐方式: 'align',\r\n 设置行高: 'line heihgt',\r\n 序列: 'list',\r\n head: {\r\n 正文: 'text',\r\n },\r\n indent: {\r\n 增加缩进: 'indent',\r\n 减少缩进: 'outdent',\r\n },\r\n justify: {\r\n 靠左: 'left',\r\n 居中: 'center',\r\n 靠右: 'right',\r\n 两端: 'justify',\r\n },\r\n list: {\r\n 无序列表: 'unordered',\r\n 有序列表: 'ordered',\r\n },\r\n },\r\n panelMenus: {\r\n emoticon: {\r\n 默认: 'default',\r\n 新浪: 'sina',\r\n emoji: 'emoji',\r\n 手势: 'gesture',\r\n },\r\n image: {\r\n 图片链接: 'image link',\r\n 上传图片: 'upload image',\r\n 网络图片: 'network image',\r\n },\r\n link: {\r\n 链接: 'link',\r\n 链接文字: 'link text',\r\n 取消链接: 'unlink',\r\n 查看链接: 'view links',\r\n },\r\n video: {\r\n 插入视频: 'insert video',\r\n },\r\n table: {\r\n 行: 'rows',\r\n 列: 'columns',\r\n 的: ' ',\r\n 表格: 'table',\r\n 添加行: 'insert row',\r\n 删除行: 'delete row',\r\n 添加列: 'insert column',\r\n 删除列: 'delete column',\r\n 设置表头: 'set header',\r\n 取消表头: 'cancel header',\r\n 插入表格: 'insert table',\r\n 删除表格: 'delete table',\r\n },\r\n code: {\r\n 删除代码: 'delete code',\r\n 修改代码: 'edit code',\r\n 插入代码: 'insert code',\r\n },\r\n },\r\n },\r\n validate: {\r\n 张图片: 'images',\r\n 大于: 'greater than',\r\n 图片链接: 'image link',\r\n 不是图片: 'is not image',\r\n 返回结果: 'return results',\r\n 上传图片超时: 'upload image timeout',\r\n 上传图片错误: 'upload image error',\r\n 上传图片失败: 'upload image failed',\r\n 插入图片错误: 'insert image error',\r\n 一次最多上传: 'once most at upload',\r\n 下载链接失败: 'download link failed',\r\n 图片验证未通过: 'image validate failed',\r\n 服务器返回状态: 'server return status',\r\n 上传图片返回结果错误: 'upload image return results error',\r\n 请替换为支持的图片类型: 'please replace with a supported image type',\r\n 您插入的网络图片无法识别: 'the network picture you inserted is not recognized',\r\n 您刚才插入的图片链接未通过编辑器校验: 'the image link you just inserted did not pass the editor verification',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 历史记录 - 数据缓存的模式\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../utils/util\");\r\n/**\r\n * 是否为兼容模式。返回 true 表示当前使用兼容(内容备份)模式,否则使用标准(差异备份)模式\r\n */\r\nfunction compatibleMode() {\r\n if (util_1.UA.isIE() || util_1.UA.isOldEdge) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.default = {\r\n compatibleMode: compatibleMode,\r\n historyMaxSize: 30,\r\n};\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description selection range API\r\n * @author wangfupeng\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../utils/dom-core\"));\r\nvar util_1 = require(\"../utils/util\");\r\nvar index_1 = __importDefault(require(\"./selection-range-top-nodes/index\"));\r\nvar SelectionAndRange = /** @class */ (function () {\r\n function SelectionAndRange(editor) {\r\n this.editor = editor;\r\n this._currentRange = null;\r\n }\r\n /**\r\n * 获取当前 range\r\n */\r\n SelectionAndRange.prototype.getRange = function () {\r\n return this._currentRange;\r\n };\r\n /**\r\n * 保存选区范围\r\n * @param _range 选区范围\r\n */\r\n SelectionAndRange.prototype.saveRange = function (_range) {\r\n if (_range) {\r\n // 保存已有选区\r\n this._currentRange = _range;\r\n return;\r\n }\r\n // 获取当前的选区\r\n var selection = window.getSelection();\r\n if (selection.rangeCount === 0) {\r\n return;\r\n }\r\n var range = selection.getRangeAt(0);\r\n // 获取选区范围的 DOM 元素\r\n var $containerElem = this.getSelectionContainerElem(range);\r\n if (!$containerElem) {\r\n // 当 选区范围内没有 DOM元素 则抛出\r\n return;\r\n }\r\n if ($containerElem.attr('contenteditable') === 'false' ||\r\n $containerElem.parentUntil('[contenteditable=false]')) {\r\n // 这里大体意义上就是个保险\r\n // 确保 编辑区域 的 contenteditable属性 的值为 true\r\n return;\r\n }\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n if ($textElem.isContain($containerElem)) {\r\n // 是编辑内容之内的\r\n this._currentRange = range;\r\n }\r\n };\r\n /**\r\n * 折叠选区范围\r\n * @param toStart true 开始位置,false 结束位置\r\n */\r\n SelectionAndRange.prototype.collapseRange = function (toStart) {\r\n if (toStart === void 0) { toStart = false; }\r\n var range = this._currentRange;\r\n if (range) {\r\n range.collapse(toStart);\r\n }\r\n };\r\n /**\r\n * 获取选区范围内的文字\r\n */\r\n SelectionAndRange.prototype.getSelectionText = function () {\r\n var range = this._currentRange;\r\n if (range) {\r\n return range.toString();\r\n }\r\n else {\r\n return '';\r\n }\r\n };\r\n /**\r\n * 获取选区范围的 DOM 元素\r\n * @param range 选区范围\r\n */\r\n SelectionAndRange.prototype.getSelectionContainerElem = function (range) {\r\n var r;\r\n r = range || this._currentRange;\r\n var elem;\r\n if (r) {\r\n elem = r.commonAncestorContainer;\r\n return dom_core_1.default(elem.nodeType === 1 ? elem : elem.parentNode);\r\n }\r\n };\r\n /**\r\n * 选区范围开始的 DOM 元素\r\n * @param range 选区范围\r\n */\r\n SelectionAndRange.prototype.getSelectionStartElem = function (range) {\r\n var r;\r\n r = range || this._currentRange;\r\n var elem;\r\n if (r) {\r\n elem = r.startContainer;\r\n return dom_core_1.default(elem.nodeType === 1 ? elem : elem.parentNode);\r\n }\r\n };\r\n /**\r\n * 选区范围结束的 DOM 元素\r\n * @param range 选区范围\r\n */\r\n SelectionAndRange.prototype.getSelectionEndElem = function (range) {\r\n var r;\r\n r = range || this._currentRange;\r\n var elem;\r\n if (r) {\r\n elem = r.endContainer;\r\n return dom_core_1.default(elem.nodeType === 1 ? elem : elem.parentNode);\r\n }\r\n };\r\n /**\r\n * 选区是否为空(没有选择文字)\r\n */\r\n SelectionAndRange.prototype.isSelectionEmpty = function () {\r\n var range = this._currentRange;\r\n if (range && range.startContainer) {\r\n if (range.startContainer === range.endContainer) {\r\n if (range.startOffset === range.endOffset) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * 恢复选区范围\r\n */\r\n SelectionAndRange.prototype.restoreSelection = function () {\r\n var selection = window.getSelection();\r\n var r = this._currentRange;\r\n if (selection && r) {\r\n selection.removeAllRanges();\r\n selection.addRange(r);\r\n }\r\n };\r\n /**\r\n * 创建一个空白(即 ​ 字符)选区\r\n */\r\n SelectionAndRange.prototype.createEmptyRange = function () {\r\n var editor = this.editor;\r\n var range = this.getRange();\r\n var $elem;\r\n if (!range) {\r\n // 当前无 range\r\n return;\r\n }\r\n if (!this.isSelectionEmpty()) {\r\n // 当前选区必须没有内容才可以,有内容就直接 return\r\n return;\r\n }\r\n try {\r\n // 目前只支持 webkit 内核\r\n if (util_1.UA.isWebkit()) {\r\n // 插入 ​\r\n editor.cmd.do('insertHTML', '​');\r\n // 修改 offset 位置\r\n range.setEnd(range.endContainer, range.endOffset + 1);\r\n // 存储\r\n this.saveRange(range);\r\n }\r\n else {\r\n $elem = dom_core_1.default('<strong>​</strong>');\r\n editor.cmd.do('insertElem', $elem);\r\n this.createRangeByElem($elem, true);\r\n }\r\n }\r\n catch (ex) {\r\n // 部分情况下会报错,兼容一下\r\n }\r\n };\r\n /**\r\n * 根据 DOM 元素设置选区\r\n * @param $elem DOM 元素\r\n * @param toStart true 开始位置,false 结束位置\r\n * @param isContent 是否选中 $elem 的内容\r\n */\r\n SelectionAndRange.prototype.createRangeByElem = function ($elem, toStart, isContent) {\r\n if (!$elem.length) {\r\n return;\r\n }\r\n var elem = $elem.elems[0];\r\n var range = document.createRange();\r\n if (isContent) {\r\n range.selectNodeContents(elem);\r\n }\r\n else {\r\n // 如果用户没有传入 isContent 参数,那就默认为 false\r\n range.selectNode(elem);\r\n }\r\n if (toStart != null) {\r\n // 传入了 toStart 参数,折叠选区。如果没传入 toStart 参数,则忽略这一步\r\n range.collapse(toStart);\r\n }\r\n // 存储 range\r\n this.saveRange(range);\r\n };\r\n /**\r\n * 获取 当前 选取范围的 顶级(段落) 元素\r\n * @param $editor\r\n */\r\n SelectionAndRange.prototype.getSelectionRangeTopNodes = function (editor) {\r\n var item = new index_1.default(editor);\r\n item.init();\r\n return item.getSelectionNodes();\r\n };\r\n /**\r\n * 移动光标位置\r\n * @param {Node} node 元素节点\r\n */\r\n SelectionAndRange.prototype.moveCursor = function (node) {\r\n var range = this.getRange();\r\n var pos = node.childNodes.length;\r\n if (!range) {\r\n return;\r\n }\r\n if (node) {\r\n range.setStart(node, pos);\r\n range.setEnd(node, pos);\r\n this.restoreSelection();\r\n }\r\n };\r\n return SelectionAndRange;\r\n}());\r\nexports.default = SelectionAndRange;\r\n","\"use strict\";\r\n/**\r\n * @description 选取范围所有顶级(段落)节点\r\n * @author tonghan\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n// 构造函数\r\nvar SelectionRangeTopNodes = /** @class */ (function () {\r\n /**\r\n * 构造函数\r\n * @param editor\r\n */\r\n function SelectionRangeTopNodes(editor) {\r\n // 初始化属性\r\n this.editor = editor;\r\n this.$nodeList = [];\r\n this.$startElem = dom_core_1.default(editor.selection.getSelectionStartElem()).getNodeTop(this.editor);\r\n this.$endElem = dom_core_1.default(editor.selection.getSelectionEndElem()).getNodeTop(this.editor);\r\n }\r\n /**\r\n * 初始化\r\n */\r\n SelectionRangeTopNodes.prototype.init = function () {\r\n this.recordSelectionNodes(dom_core_1.default(this.$startElem));\r\n };\r\n /**\r\n * 添加 节点 到nodeList\r\n * @param $node 节点\r\n */\r\n SelectionRangeTopNodes.prototype.addNodeList = function ($node) {\r\n this.$nodeList.push(dom_core_1.default($node));\r\n };\r\n /**\r\n * 是否是 选区结束 节点\r\n * @param $node 节点\r\n */\r\n SelectionRangeTopNodes.prototype.isEndElem = function ($node) {\r\n var _a;\r\n return (_a = this.$endElem) === null || _a === void 0 ? void 0 : _a.equal($node);\r\n };\r\n /**\r\n * 获取当前节点的下一个兄弟节点\r\n * @param $node 节点\r\n */\r\n SelectionRangeTopNodes.prototype.getNextSibling = function ($node) {\r\n return dom_core_1.default($node.elems[0].nextSibling);\r\n };\r\n /**\r\n * 记录节点 - 从选区开始节点开始 一直到匹配到选区结束节点为止\r\n * @param $node 节点\r\n */\r\n SelectionRangeTopNodes.prototype.recordSelectionNodes = function ($node) {\r\n var $elem = $node.getNodeTop(this.editor);\r\n if ($elem.length > 0) {\r\n this.addNodeList($elem);\r\n if (!this.isEndElem($elem)) {\r\n this.recordSelectionNodes(this.getNextSibling($elem));\r\n }\r\n }\r\n };\r\n /**\r\n * 获取 选中节点列表\r\n */\r\n SelectionRangeTopNodes.prototype.getSelectionNodes = function () {\r\n return this.$nodeList;\r\n };\r\n return SelectionRangeTopNodes;\r\n}());\r\n/**\r\n * 导出\r\n */\r\nexports.default = SelectionRangeTopNodes;\r\n","\"use strict\";\r\n/**\r\n * @description 封装 document.execCommand\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../utils/dom-core\"));\r\nvar Command = /** @class */ (function () {\r\n function Command(editor) {\r\n this.editor = editor;\r\n }\r\n Command.prototype.do = function (name, value) {\r\n var editor = this.editor;\r\n if (editor.config.styleWithCSS) {\r\n document.execCommand('styleWithCSS', false, 'true');\r\n }\r\n var selection = editor.selection;\r\n // 如果无选区,忽略\r\n if (!selection.getRange()) {\r\n return;\r\n }\r\n // 恢复选取\r\n selection.restoreSelection();\r\n // 执行\r\n switch (name) {\r\n case 'insertHTML':\r\n this.insertHTML(value);\r\n break;\r\n case 'insertElem':\r\n this.insertElem(value);\r\n break;\r\n default:\r\n // 默认 command\r\n this.execCommand(name, value);\r\n break;\r\n }\r\n // 修改菜单状态\r\n editor.menus.changeActive();\r\n // 最后,恢复选取保证光标在原来的位置闪烁\r\n selection.saveRange();\r\n selection.restoreSelection();\r\n };\r\n /**\r\n * 插入 html\r\n * @param html html 字符串\r\n */\r\n Command.prototype.insertHTML = function (html) {\r\n var editor = this.editor;\r\n var range = editor.selection.getRange();\r\n if (range == null)\r\n return;\r\n if (this.queryCommandSupported('insertHTML')) {\r\n // W3C\r\n this.execCommand('insertHTML', html);\r\n }\r\n else if (range.insertNode) {\r\n // IE\r\n range.deleteContents();\r\n range.insertNode(dom_core_1.default(html).elems[0]);\r\n editor.selection.collapseRange();\r\n }\r\n // else if (range.pasteHTML) {\r\n // // IE <= 10\r\n // range.pasteHTML(html)\r\n // }\r\n };\r\n /**\r\n * 插入 DOM 元素\r\n * @param $elem DOM 元素\r\n */\r\n Command.prototype.insertElem = function ($elem) {\r\n var editor = this.editor;\r\n var range = editor.selection.getRange();\r\n if (range == null)\r\n return;\r\n if (range.insertNode) {\r\n range.deleteContents();\r\n range.insertNode($elem.elems[0]);\r\n }\r\n };\r\n /**\r\n * 执行 document.execCommand\r\n * @param name name\r\n * @param value value\r\n */\r\n Command.prototype.execCommand = function (name, value) {\r\n document.execCommand(name, false, value);\r\n };\r\n /**\r\n * 执行 document.queryCommandValue\r\n * @param name name\r\n */\r\n Command.prototype.queryCommandValue = function (name) {\r\n return document.queryCommandValue(name);\r\n };\r\n /**\r\n * 执行 document.queryCommandState\r\n * @param name name\r\n */\r\n Command.prototype.queryCommandState = function (name) {\r\n return document.queryCommandState(name);\r\n };\r\n /**\r\n * 执行 document.queryCommandSupported\r\n * @param name name\r\n */\r\n Command.prototype.queryCommandSupported = function (name) {\r\n return document.queryCommandSupported(name);\r\n };\r\n return Command;\r\n}());\r\nexports.default = Command;\r\n","\"use strict\";\r\n/**\r\n * @description 编辑区域,入口文件\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../utils/dom-core\"));\r\nvar index_1 = __importDefault(require(\"./event-hooks/index\"));\r\nvar util_1 = require(\"../utils/util\");\r\nvar getChildrenJSON_1 = __importDefault(require(\"./getChildrenJSON\"));\r\nvar Text = /** @class */ (function () {\r\n function Text(editor) {\r\n this.editor = editor;\r\n this.eventHooks = {\r\n changeEvents: [],\r\n dropEvents: [],\r\n clickEvents: [],\r\n keyupEvents: [],\r\n tabUpEvents: [],\r\n tabDownEvents: [],\r\n enterUpEvents: [],\r\n enterDownEvents: [],\r\n deleteUpEvents: [],\r\n deleteDownEvents: [],\r\n pasteEvents: [],\r\n linkClickEvents: [],\r\n codeClickEvents: [],\r\n textScrollEvents: [],\r\n toolbarClickEvents: [],\r\n imgClickEvents: [],\r\n imgDragBarMouseDownEvents: [],\r\n tableClickEvents: [],\r\n menuClickEvents: [],\r\n dropListMenuHoverEvents: [],\r\n splitLineEvents: [],\r\n };\r\n }\r\n /**\r\n * 初始化\r\n */\r\n Text.prototype.init = function () {\r\n // 实时保存选取范围\r\n this._saveRange();\r\n // 绑定事件\r\n this._bindEventHooks();\r\n // 初始化 text 事件钩子函数\r\n index_1.default(this);\r\n };\r\n /**\r\n * 切换placeholder\r\n */\r\n Text.prototype.togglePlaceholder = function () {\r\n var html = this.html();\r\n var $placeholder = this.editor.$textContainerElem.find('.placeholder');\r\n $placeholder.hide();\r\n if (!html || html === '<p><br></p>' || html === ' ')\r\n $placeholder.show();\r\n };\r\n /**\r\n * 清空内容\r\n */\r\n Text.prototype.clear = function () {\r\n this.html('<p><br></p>');\r\n };\r\n /**\r\n * 设置/获取 html\r\n * @param val html 字符串\r\n */\r\n Text.prototype.html = function (val) {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n // 没有 val ,则是获取 html\r\n if (val == null) {\r\n var html = $textElem.html();\r\n // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉\r\n html = html.replace(/\\u200b/gm, '');\r\n html = html.replace(/<p><\\/p>/gim, ''); // 去掉空行\r\n html = html.replace(/<p><br\\/?><\\/p>$/gim, ''); // 去掉最后的 <p><br><p>\r\n /**\r\n * 这里的代码为了处理火狐多余的空行标签,但是强制删除空行标签会带来其他问题\r\n * html()方法返回的的值,\"<p><br></p>\"中pr会被删除,只留下<p>,点不进去,从而产生垃圾数据\r\n * 目前在末位有多个空行的情况下执行撤销重做操作,会产生一种不记录末尾空行的错觉\r\n * 暂时注释, 等待进一步的兼容处理\r\n */\r\n // html = html.replace(/><br>(?!<)/gi, '>') // 过滤 <p><br>内容</p> 中的br\r\n // html = html.replace(/(?!>)<br></gi, '<') // 过滤 <p>内容<br></p> 中的br\r\n /**\r\n * pre标签格式化\r\n * html()方法理论上应当输出纯净的代码文本,但是对于是否解析html标签还没有良好的判断\r\n * 如果去除hljs的标签,在解析状态下回显,会造成显示错误并且无法再通过hljs方法渲染\r\n * 暂且其弃用\r\n */\r\n // html = formatCodeHtml(editor, html)\r\n return html;\r\n }\r\n // 有 val ,则是设置 html\r\n val = val.trim();\r\n if (val === '') {\r\n val = \"<p><br></p>\";\r\n }\r\n if (val.indexOf('<') !== 0) {\r\n // 内容用 p 标签包裹\r\n val = \"<p>\" + val + \"</p>\";\r\n }\r\n $textElem.html(val);\r\n // 初始化选区,将光标定位到内容尾部\r\n editor.initSelection();\r\n };\r\n /**\r\n * 获取 json 格式的数据\r\n */\r\n Text.prototype.getJSON = function () {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n return getChildrenJSON_1.default($textElem);\r\n };\r\n /**\r\n * 获取/设置 字符串内容\r\n * @param val text 字符串\r\n */\r\n Text.prototype.text = function (val) {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n var $textContainerElem = editor.$textContainerElem;\r\n // 没有 val ,是获取 text\r\n if (val == null) {\r\n var text = $textElem.text();\r\n // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉\r\n text = text.replace(/\\u200b/gm, '');\r\n return text;\r\n }\r\n // 有 val ,则是设置 text\r\n $textElem.text(\"<p>\" + val + \"</p>\");\r\n // 初始化选区,将光标定位到内容尾部\r\n editor.initSelection();\r\n };\r\n /**\r\n * 追加 html 内容\r\n * @param html html 字符串\r\n */\r\n Text.prototype.append = function (html) {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n if (html.indexOf('<') !== 0) {\r\n // 普通字符串,用 <p> 包裹\r\n html = \"<p>\" + html + \"</p>\";\r\n }\r\n $textElem.append(dom_core_1.default(html));\r\n // 初始化选区,将光标定位到内容尾部\r\n editor.initSelection();\r\n };\r\n /**\r\n * 每一步操作,都实时保存选区范围\r\n */\r\n Text.prototype._saveRange = function () {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n // 保存当前的选区\r\n function saveRange() {\r\n // 随时保存选区\r\n editor.selection.saveRange();\r\n // 更新按钮 active 状态\r\n editor.menus.changeActive();\r\n }\r\n // 按键后保存\r\n $textElem.on('keyup', saveRange);\r\n $textElem.on('mousedown', function () {\r\n // mousedown 状态下,鼠标滑动到编辑区域外面,也需要保存选区\r\n $textElem.on('mouseleave', saveRange);\r\n });\r\n $textElem.on('mouseup', function () {\r\n var selection = editor.selection;\r\n var range = selection.getRange();\r\n if (range == null)\r\n return;\r\n var startOffset = range.startOffset, endOffset = range.endOffset;\r\n var endContainer = range === null || range === void 0 ? void 0 : range.endContainer;\r\n // 修复当selection结束时,点击编辑器内部,保存选区异常的情况\r\n if (startOffset !== endOffset && endContainer != null) {\r\n range === null || range === void 0 ? void 0 : range.setStart(endContainer, endOffset);\r\n }\r\n saveRange();\r\n // 在编辑器区域之内完成点击,取消鼠标滑动到编辑区外面的事件\r\n $textElem.off('mouseleave', saveRange);\r\n });\r\n };\r\n /**\r\n * 绑定事件,事件会触发钩子函数\r\n */\r\n Text.prototype._bindEventHooks = function () {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n var eventHooks = this.eventHooks;\r\n // click hooks\r\n $textElem.on('click', function (e) {\r\n var clickEvents = eventHooks.clickEvents;\r\n clickEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // enter 键 up 时的 hooks\r\n $textElem.on('keyup', function (e) {\r\n if (e.keyCode !== 13)\r\n return;\r\n var enterUpEvents = eventHooks.enterUpEvents;\r\n enterUpEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // 键盘 up 时的 hooks\r\n $textElem.on('keyup', function (e) {\r\n var keyupEvents = eventHooks.keyupEvents;\r\n keyupEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // delete 键 up 时 hooks\r\n $textElem.on('keyup', function (e) {\r\n if (e.keyCode !== 8)\r\n return;\r\n var deleteUpEvents = eventHooks.deleteUpEvents;\r\n deleteUpEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // delete 键 down 时 hooks\r\n $textElem.on('keydown', function (e) {\r\n if (e.keyCode !== 8)\r\n return;\r\n var deleteDownEvents = eventHooks.deleteDownEvents;\r\n deleteDownEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // 粘贴\r\n $textElem.on('paste', function (e) {\r\n if (util_1.UA.isIE())\r\n return; // IE 不支持\r\n // 阻止默认行为,使用 execCommand 的粘贴命令\r\n e.preventDefault();\r\n var pasteEvents = eventHooks.pasteEvents;\r\n pasteEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // 撤销/恢复 快捷键\r\n $textElem.on('keydown', function (e) {\r\n if (\r\n // 编辑器处于聚焦状态下(多编辑器实例) || 当前处于兼容模式(兼容模式撤销/恢复后不聚焦,所以直接过,但会造成多编辑器同时撤销/恢复)\r\n (editor.isFocus || editor.isCompatibleMode) &&\r\n (e.ctrlKey || e.metaKey) &&\r\n e.keyCode === 90) {\r\n // 取消默认行为\r\n e.preventDefault();\r\n // 执行事件\r\n if (e.shiftKey) {\r\n // 恢复\r\n editor.history.restore();\r\n }\r\n else {\r\n // 撤销\r\n editor.history.revoke();\r\n }\r\n }\r\n });\r\n // tab up\r\n $textElem.on('keyup', function (e) {\r\n if (e.keyCode !== 9)\r\n return;\r\n e.preventDefault();\r\n var tabUpEvents = eventHooks.tabUpEvents;\r\n tabUpEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // tab down\r\n $textElem.on('keydown', function (e) {\r\n if (e.keyCode !== 9)\r\n return;\r\n e.preventDefault();\r\n var tabDownEvents = eventHooks.tabDownEvents;\r\n tabDownEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n // 文本编辑区域 滚动时触发\r\n $textElem.on('scroll', \r\n // 使用节流\r\n util_1.throttle(function (e) {\r\n var textScrollEvents = eventHooks.textScrollEvents;\r\n textScrollEvents.forEach(function (fn) { return fn(e); });\r\n }, 100));\r\n // 拖拽相关的事件\r\n function preventDefault(e) {\r\n // 禁用 document 拖拽事件\r\n e.preventDefault();\r\n }\r\n dom_core_1.default(document)\r\n .on('dragleave', preventDefault)\r\n .on('drop', preventDefault)\r\n .on('dragenter', preventDefault)\r\n .on('dragover', preventDefault);\r\n // 全局事件在编辑器实例销毁的时候进行解绑\r\n editor.beforeDestroy(function () {\r\n dom_core_1.default(document)\r\n .off('dragleave', preventDefault)\r\n .off('drop', preventDefault)\r\n .off('dragenter', preventDefault)\r\n .off('dragover', preventDefault);\r\n });\r\n $textElem.on('drop', function (e) {\r\n e.preventDefault();\r\n var events = eventHooks.dropEvents;\r\n events.forEach(function (fn) { return fn(e); });\r\n });\r\n // link click\r\n $textElem.on('click', function (e) {\r\n // 存储链接元素\r\n var $link = null;\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n if ($target.getNodeName() === 'A') {\r\n // 当前点击的就是一个链接\r\n $link = $target;\r\n }\r\n else {\r\n // 否则,向父节点中寻找链接\r\n var $parent = $target.parentUntil('a');\r\n if ($parent != null) {\r\n // 找到了\r\n $link = $parent;\r\n }\r\n }\r\n if ($link == null)\r\n return; // 没有点击链接,则返回\r\n var linkClickEvents = eventHooks.linkClickEvents;\r\n linkClickEvents.forEach(function (fn) { return fn($link); });\r\n });\r\n // img click\r\n $textElem.on('click', function (e) {\r\n // 存储图片元素\r\n var $img = null;\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n //处理图片点击 判断是否是表情 根据 不存在class或者className!==eleImg、没有alt属性\r\n if ($target.getNodeName() === 'IMG' &&\r\n (!$target.elems[0].getAttribute('class') ||\r\n $target.elems[0].getAttribute('class') !== 'eleImg') &&\r\n !$target.elems[0].getAttribute('alt')) {\r\n // 当前点击的就是img\r\n e.stopPropagation();\r\n $img = $target;\r\n }\r\n if ($img == null)\r\n return; // 没有点击图片,则返回\r\n var imgClickEvents = eventHooks.imgClickEvents;\r\n imgClickEvents.forEach(function (fn) { return fn($img); });\r\n });\r\n // code click\r\n $textElem.on('click', function (e) {\r\n // 存储代码元素\r\n var $code = null;\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n if ($target.getNodeName() === 'PRE') {\r\n // 当前点击的就是一个链接\r\n $code = $target;\r\n }\r\n else {\r\n // 否则,向父节点中寻找链接\r\n var $parent = $target.parentUntil('pre');\r\n if ($parent != null) {\r\n // 找到了\r\n $code = $parent;\r\n }\r\n }\r\n if ($code == null)\r\n return; // 没有点击链接,则返回\r\n var codeClickEvents = eventHooks.codeClickEvents;\r\n codeClickEvents.forEach(function (fn) { return fn($code); });\r\n });\r\n // splitLine click\r\n $textElem.on('click', function (e) {\r\n // 存储分割线元素\r\n var $splitLine = null;\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n // 判断当前点击元素\r\n if ($target.getNodeName() === 'HR') {\r\n $splitLine = $target;\r\n }\r\n else {\r\n $target == null;\r\n }\r\n if ($splitLine == null)\r\n return; // 没有点击分割线,则返回\r\n // 设置、恢复选区\r\n editor.selection.createRangeByElem($splitLine);\r\n editor.selection.restoreSelection();\r\n var splitLineClickEvents = eventHooks.splitLineEvents;\r\n splitLineClickEvents.forEach(function (fn) { return fn($splitLine); });\r\n });\r\n // 菜单栏被点击\r\n editor.$toolbarElem.on('click', function (e) {\r\n var toolbarClickEvents = eventHooks.toolbarClickEvents;\r\n toolbarClickEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n //mousedown事件\r\n editor.$textContainerElem.on('mousedown', function (e) {\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n if ($target.hasClass('w-e-img-drag-rb')) {\r\n // 点击的元素,是图片拖拽调整大小的 bar\r\n var imgDragBarMouseDownEvents = eventHooks.imgDragBarMouseDownEvents;\r\n imgDragBarMouseDownEvents.forEach(function (fn) { return fn(); });\r\n }\r\n });\r\n //table click\r\n $textElem.on('click', function (e) {\r\n // 存储元素\r\n var $dom = null;\r\n var target = e.target;\r\n //获取最祖父元素\r\n $dom = dom_core_1.default(target).parentUntil('TABLE', target);\r\n if ($dom == null)\r\n return; // 没有table范围内,则返回\r\n var tableClickEvents = eventHooks.tableClickEvents;\r\n tableClickEvents.forEach(function (fn) { return fn($dom); });\r\n });\r\n // enter 键 down\r\n $textElem.on('keydown', function (e) {\r\n if (e.keyCode !== 13)\r\n return;\r\n var enterDownEvents = eventHooks.enterDownEvents;\r\n enterDownEvents.forEach(function (fn) { return fn(e); });\r\n });\r\n };\r\n return Text;\r\n}());\r\nexports.default = Text;\r\n","var parent = require('../../es/instance/find');\n\nmodule.exports = parent;\n","var find = require('../array/virtual/find');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.find;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.find) ? find : own;\n};\n","require('../../../modules/es.array.find');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').find;\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","\"use strict\";\r\n/**\r\n * @description Text 事件钩子函数。Text 公共的,不是某个菜单独有的\r\n * @wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar enter_to_create_p_1 = __importDefault(require(\"./enter-to-create-p\"));\r\nvar del_to_keep_p_1 = __importDefault(require(\"./del-to-keep-p\"));\r\nvar tab_to_space_1 = __importDefault(require(\"./tab-to-space\"));\r\nvar paste_text_html_1 = __importDefault(require(\"./paste-text-html\"));\r\nvar img_click_active_1 = __importDefault(require(\"./img-click-active\"));\r\n/**\r\n * 初始化 text 事件钩子函数\r\n * @param text text 实例\r\n */\r\nfunction initTextHooks(text) {\r\n var editor = text.editor;\r\n var eventHooks = text.eventHooks;\r\n // 回车时,保证生成的是 <p> 标签\r\n enter_to_create_p_1.default(editor, eventHooks.enterUpEvents, eventHooks.enterDownEvents);\r\n // 删除时,保留 <p><br></p>\r\n del_to_keep_p_1.default(editor, eventHooks.deleteUpEvents, eventHooks.deleteDownEvents);\r\n // tab 转换为空格\r\n tab_to_space_1.default(editor, eventHooks.tabDownEvents);\r\n // 粘贴 text html\r\n paste_text_html_1.default(editor, eventHooks.pasteEvents);\r\n // img click active\r\n img_click_active_1.default(editor, eventHooks.imgClickEvents);\r\n}\r\nexports.default = initTextHooks;\r\n","\"use strict\";\r\n/**\r\n * @description 回车时,保证生成的是 <p> 标签\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n/**\r\n * 回车时,保证生成的是 <p> 标签\r\n * @param editor 编辑器实例\r\n * @param enterUpEvents enter 键 up 时的 hooks\r\n * @param enterDownEvents enter 键 down 时的 hooks\r\n */\r\nfunction enterToCreateP(editor, enterUpEvents, enterDownEvents) {\r\n function insertEmptyP($selectionElem) {\r\n var $p = dom_core_1.default('<p><br></p>');\r\n $p.insertBefore($selectionElem);\r\n editor.selection.createRangeByElem($p, true);\r\n editor.selection.restoreSelection();\r\n $selectionElem.remove();\r\n }\r\n // enter up 时\r\n function fn() {\r\n var $textElem = editor.$textElem;\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n var $parentElem = $selectionElem.parent();\r\n if ($parentElem.html() === '<code><br></code>') {\r\n // 回车之前光标所在一个 <p><code>.....</code></p> ,忽然回车生成一个空的 <p><code><br></code></p>\r\n // 而且继续回车跳不出去,因此只能特殊处理\r\n insertEmptyP($selectionElem);\r\n return;\r\n }\r\n if (!$parentElem.equal($textElem)) {\r\n // 不是顶级标签\r\n return;\r\n }\r\n var nodeName = $selectionElem.getNodeName();\r\n if (nodeName === 'P') {\r\n // 当前的标签是 P ,不用做处理\r\n return;\r\n }\r\n if ($selectionElem.text()) {\r\n // 有内容,不做处理\r\n return;\r\n }\r\n // 插入 <p> ,并将选取定位到 <p>,删除当前标签\r\n insertEmptyP($selectionElem);\r\n }\r\n enterUpEvents.push(fn);\r\n // enter down 时\r\n function createPWhenEnterText(e) {\r\n var _a;\r\n // selection中的range缓存还有问题,更新不及时,此处手动更新range,处理enter的bug\r\n editor.selection.saveRange((_a = getSelection()) === null || _a === void 0 ? void 0 : _a.getRangeAt(0));\r\n var $selectElem = editor.selection.getSelectionContainerElem();\r\n if ($selectElem.id === editor.textElemId) {\r\n // 回车时,默认创建了 text 标签(没有 p 标签包裹),父元素直接就是 $textElem\r\n // 例如,光标放在 table 最后侧,回车时,默认就是这个情况\r\n e.preventDefault();\r\n editor.cmd.do('insertHTML', '<p><br></p>');\r\n }\r\n }\r\n enterDownEvents.push(createPWhenEnterText);\r\n}\r\nexports.default = enterToCreateP;\r\n","\"use strict\";\r\n/**\r\n * @description 删除时保留 <p><br></p>\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n/**\r\n * 删除时保留 <p><br></p>\r\n * @param editor 编辑器实例\r\n * @param deleteUpEvents delete 键 up 时的 hooks\r\n * @param deleteDownEvents delete 建 down 时的 hooks\r\n */\r\nfunction deleteToKeepP(editor, deleteUpEvents, deleteDownEvents) {\r\n function upFn() {\r\n var $textElem = editor.$textElem;\r\n var txtHtml = $textElem.html().toLowerCase().trim();\r\n // firefox 时用 txtHtml === '<br>' 判断,其他用 !txtHtml 判断\r\n if (!txtHtml || txtHtml === '<br>') {\r\n // 内容空了\r\n var $p = dom_core_1.default('<p><br/></p>');\r\n $textElem.html(' '); // 一定要先清空,否则在 firefox 下有问题\r\n $textElem.append($p);\r\n editor.selection.createRangeByElem($p, false, true);\r\n editor.selection.restoreSelection();\r\n }\r\n }\r\n deleteUpEvents.push(upFn);\r\n function downFn(e) {\r\n var $textElem = editor.$textElem;\r\n var txtHtml = $textElem.html().toLowerCase().trim();\r\n if (txtHtml === '<p><br></p>') {\r\n // 最后剩下一个空行,就不再删除了\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n deleteDownEvents.push(downFn);\r\n}\r\nexports.default = deleteToKeepP;\r\n","\"use strict\";\r\n/**\r\n * @description 编辑区域 tab 的特殊处理\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * 编辑区域 tab 的特殊处理,转换为空格\r\n * @param editor 编辑器实例\r\n * @param tabDownEvents tab down 事件钩子\r\n */\r\nfunction tabHandler(editor, tabDownEvents) {\r\n // 定义函数\r\n function fn() {\r\n if (!editor.cmd.queryCommandSupported('insertHTML')) {\r\n // 必须原生支持 insertHTML 命令\r\n return;\r\n }\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n if (!$selectionElem) {\r\n return;\r\n }\r\n var $parentElem = $selectionElem.parent();\r\n var selectionNodeName = $selectionElem.getNodeName();\r\n var parentNodeName = $parentElem.getNodeName();\r\n if (selectionNodeName == 'CODE' ||\r\n parentNodeName === 'CODE' ||\r\n parentNodeName === 'PRE' ||\r\n /hljs/.test(parentNodeName)) {\r\n // <pre><code> 里面\r\n editor.cmd.do('insertHTML', editor.config.languageTab);\r\n }\r\n else {\r\n // 普通文字\r\n editor.cmd.do('insertHTML', ' ');\r\n }\r\n }\r\n // 保留函数\r\n tabDownEvents.push(fn);\r\n}\r\nexports.default = tabHandler;\r\n","\"use strict\";\r\n/**\r\n * @description 粘贴 text html\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar paste_event_1 = require(\"../paste/paste-event\");\r\nvar util_1 = require(\"../../utils/util\");\r\nvar const_1 = require(\"../../utils/const\");\r\n/**\r\n * 格式化html\r\n * @param val 粘贴的html\r\n * @author liuwei\r\n */\r\nfunction formatHtml(val) {\r\n var pasteText = val;\r\n // div 全部替换为 p 标签\r\n pasteText = pasteText.replace(/<div>/gim, '<p>').replace(/<\\/div>/gim, '</p>');\r\n // 不允许空行,放在最后\r\n pasteText = pasteText.replace(/<p><\\/p>/gim, '<p><br></p>');\r\n // 去除''\r\n return pasteText.trim();\r\n}\r\n/**\r\n * 格式化html\r\n * @param val 粘贴的html\r\n * @author liuwei\r\n */\r\nfunction formatCode(val) {\r\n var pasteText = val.replace(/<br>|<br\\/>/gm, '\\n').replace(/<[^>]+>/gm, '');\r\n return pasteText;\r\n}\r\n/**\r\n * 粘贴文本和 html\r\n * @param editor 编辑器对象\r\n * @param pasteEvents 粘贴事件列表\r\n */\r\nfunction pasteTextHtml(editor, pasteEvents) {\r\n function fn(e) {\r\n // 获取配置\r\n var config = editor.config;\r\n var pasteFilterStyle = config.pasteFilterStyle;\r\n var pasteIgnoreImg = config.pasteIgnoreImg;\r\n var pasteTextHandle = config.pasteTextHandle;\r\n // 获取粘贴的文字\r\n var pasteHtml = paste_event_1.getPasteHtml(e, pasteFilterStyle, pasteIgnoreImg);\r\n var pasteText = paste_event_1.getPasteText(e);\r\n pasteText = pasteText.replace(/\\n/gm, '<br>');\r\n // 当前选区所在的 DOM 节点\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n if (!$selectionElem) {\r\n return;\r\n }\r\n var nodeName = $selectionElem === null || $selectionElem === void 0 ? void 0 : $selectionElem.getNodeName();\r\n var $topElem = $selectionElem === null || $selectionElem === void 0 ? void 0 : $selectionElem.getNodeTop(editor);\r\n // 当前节点顶级可能没有\r\n var topNodeName = '';\r\n if ($topElem.elems[0]) {\r\n topNodeName = $topElem === null || $topElem === void 0 ? void 0 : $topElem.getNodeName();\r\n }\r\n // code 中只能粘贴纯文本\r\n if (nodeName === 'CODE' || topNodeName === 'PRE') {\r\n if (pasteTextHandle && util_1.isFunction(pasteTextHandle)) {\r\n // 用户自定义过滤处理粘贴内容\r\n pasteText = '' + (pasteTextHandle(pasteText) || '');\r\n }\r\n editor.cmd.do('insertHTML', formatCode(pasteText));\r\n return;\r\n }\r\n // 如果复制进来的是url链接则插入时将它转为链接\r\n if (const_1.urlRegex.test(pasteText)) {\r\n return editor.cmd.do('insertHTML', \"<a href=\\\"\" + pasteText + \"\\\" target=\\\"_blank\\\">\" + pasteText + \"</a>\");\r\n }\r\n // table 中(td、th),待开发。。。\r\n if (!pasteHtml) {\r\n return;\r\n }\r\n try {\r\n // firefox 中,获取的 pasteHtml 可能是没有 <ul> 包裹的 <li>\r\n // 因此执行 insertHTML 会报错\r\n if (pasteTextHandle && util_1.isFunction(pasteTextHandle)) {\r\n // 用户自定义过滤处理粘贴内容\r\n pasteHtml = '' + (pasteTextHandle(pasteHtml) || ''); // html\r\n }\r\n editor.cmd.do('insertHTML', \"\" + formatHtml(pasteHtml));\r\n }\r\n catch (ex) {\r\n // 此时使用 pasteText 来兼容一下\r\n if (pasteTextHandle && util_1.isFunction(pasteTextHandle)) {\r\n // 用户自定义过滤处理粘贴内容\r\n pasteText = '' + (pasteTextHandle(pasteText) || '');\r\n }\r\n editor.cmd.do('insertHTML', \"\" + formatHtml(pasteText)); // text\r\n }\r\n }\r\n pasteEvents.push(fn);\r\n}\r\nexports.default = pasteTextHtml;\r\n","\"use strict\";\r\n/**\r\n * @description 将粘贴的 html 字符串,转换为正确、简洁的 html 代码。剔除不必要的标签和属性。\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tags_1 = require(\"./tags\");\r\nvar simplehtmlparser_js_1 = __importDefault(require(\"../../lib/simplehtmlparser.js\"));\r\n/**\r\n * 过滤掉空 span\r\n * @param html html\r\n */\r\nfunction filterEmptySpan(html) {\r\n var regForReplace = /<span>.*?<\\/span>/gi;\r\n var regForMatch = /<span>(.*?)<\\/span>/;\r\n return html.replace(regForReplace, function (s) {\r\n // s 是单个 span ,如 <span>文字</span>\r\n var result = s.match(regForMatch);\r\n if (result == null)\r\n return '';\r\n return result[1];\r\n });\r\n}\r\n/**\r\n * 是否忽略标签\r\n * @param tag tag\r\n * @param ignoreImg 是否忽略 img 标签\r\n */\r\nfunction isIgnoreTag(tag, ignoreImg) {\r\n tag = tag.toLowerCase().trim();\r\n // 忽略的标签\r\n if (tags_1.IGNORE_TAGS.has(tag)) {\r\n return true;\r\n }\r\n // 是否忽略图片\r\n if (ignoreImg) {\r\n if (tag === 'img') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * 为 tag 生成 html 字符串,开始部分\r\n * @param tag tag\r\n * @param attrs 属性\r\n */\r\nfunction genStartHtml(tag, attrs) {\r\n var result = '';\r\n // tag < 符号\r\n result = \"<\" + tag;\r\n // 拼接属性\r\n var attrStrArr = [];\r\n attrs.forEach(function (attr) {\r\n attrStrArr.push(attr.name + \"=\\\"\" + attr.value + \"\\\"\");\r\n });\r\n if (attrStrArr.length > 0) {\r\n result = result + ' ' + attrStrArr.join(' ');\r\n }\r\n // tag > 符号\r\n var isEmpty = tags_1.EMPTY_TAGS.has(tag); // 没有子节点或文本的标签,如 img\r\n result = result + (isEmpty ? '/' : '') + '>';\r\n return result;\r\n}\r\n/**\r\n * 为 tag 生成 html 字符串,结尾部分\r\n * @param tag tag\r\n */\r\nfunction genEndHtml(tag) {\r\n return \"</\" + tag + \">\";\r\n}\r\n/**\r\n * 处理粘贴的 html\r\n * @param html html 字符串\r\n * @param filterStyle 是否过滤 style 样式\r\n * @param ignoreImg 是否忽略 img 标签\r\n */\r\nfunction parseHtml(html, filterStyle, ignoreImg) {\r\n if (filterStyle === void 0) { filterStyle = true; }\r\n if (ignoreImg === void 0) { ignoreImg = false; }\r\n var resultArr = []; // 存储结果,数组形式,最后再 join\r\n // 当前正在处理的标签,以及记录和清除的方法\r\n var CUR_TAG = '';\r\n function markTagStart(tag) {\r\n tag = tag.trim();\r\n if (!tag)\r\n return;\r\n if (tags_1.EMPTY_TAGS.has(tag))\r\n return; // 内容为空的标签,如 img ,不用记录\r\n CUR_TAG = tag;\r\n }\r\n function markTagEnd() {\r\n CUR_TAG = '';\r\n }\r\n // 能通过 'text/html' 格式获取 html\r\n var htmlParser = new simplehtmlparser_js_1.default();\r\n htmlParser.parse(html, {\r\n startElement: function (tag, attrs) {\r\n // 首先,标记开始\r\n markTagStart(tag);\r\n // 忽略的标签\r\n if (isIgnoreTag(tag, ignoreImg)) {\r\n return;\r\n }\r\n // 找出该标签必须的属性(其他的属性忽略)\r\n var necessaryAttrKeys = tags_1.NECESSARY_ATTRS.get(tag) || [];\r\n var attrsForTag = [];\r\n attrs.forEach(function (attr) {\r\n // 属性名\r\n var name = attr.name;\r\n // style 单独处理\r\n if (name === 'style') {\r\n // 保留 style 样式\r\n if (!filterStyle) {\r\n attrsForTag.push(attr);\r\n }\r\n return;\r\n }\r\n // 除了 style 之外的其他属性\r\n if (necessaryAttrKeys.includes(name) === false) {\r\n // 不是必须的属性,忽略\r\n return;\r\n }\r\n attrsForTag.push(attr);\r\n });\r\n // 拼接为 HTML 标签\r\n var html = genStartHtml(tag, attrsForTag);\r\n resultArr.push(html);\r\n },\r\n characters: function (str) {\r\n str = str.trim();\r\n if (!str)\r\n return;\r\n // 忽略的标签\r\n if (isIgnoreTag(CUR_TAG, ignoreImg)) {\r\n return;\r\n }\r\n resultArr.push(str);\r\n },\r\n endElement: function (tag) {\r\n // 忽略的标签\r\n if (isIgnoreTag(tag, ignoreImg)) {\r\n return;\r\n }\r\n // 拼接为 HTML 标签\r\n var html = genEndHtml(tag);\r\n resultArr.push(html);\r\n // 最后,标记结束\r\n markTagEnd();\r\n },\r\n comment: function (str) {\r\n /* 注释,不做处理 */\r\n },\r\n });\r\n var result = resultArr.join(''); // 转换为字符串\r\n // 过滤掉空 span 标签\r\n result = filterEmptySpan(result);\r\n return result;\r\n}\r\nexports.default = parseHtml;\r\n","\"use strict\";\r\n/**\r\n * @description 粘贴相关的 tags\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TOP_LEVEL_TAGS = exports.EMPTY_TAGS = exports.NECESSARY_ATTRS = exports.IGNORE_TAGS = void 0;\r\n// 忽略的标签\r\nexports.IGNORE_TAGS = new Set([\r\n 'doctype',\r\n '!doctype',\r\n 'html',\r\n 'head',\r\n 'meta',\r\n 'body',\r\n 'script',\r\n 'style',\r\n 'link',\r\n 'frame',\r\n 'iframe',\r\n 'title',\r\n 'svg',\r\n 'center',\r\n]);\r\n// 指定标签必要的属性\r\nexports.NECESSARY_ATTRS = new Map([\r\n ['img', ['src', 'alt']],\r\n ['a', ['href', 'target']],\r\n ['td', ['colspan', 'rowspan']],\r\n ['th', ['colspan', 'rowspan']],\r\n]);\r\n// 没有子节点或文本的标签\r\nexports.EMPTY_TAGS = new Set([\r\n 'area',\r\n 'base',\r\n 'basefont',\r\n 'br',\r\n 'col',\r\n 'hr',\r\n 'img',\r\n 'input',\r\n 'isindex',\r\n 'embed',\r\n]);\r\n// 编辑区域顶级节点\r\nexports.TOP_LEVEL_TAGS = new Set([\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'p',\r\n 'ul',\r\n 'ol',\r\n 'table',\r\n 'blockquote',\r\n 'pre',\r\n 'hr',\r\n 'form',\r\n]);\r\n","var parent = require('../../es/set');\n\nmodule.exports = parent;\n","require('../../modules/es.set');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// Copyright 2004 Erik Arvidsson. All Rights Reserved.\r\n//\r\n// This code is triple licensed using Apache Software License 2.0,\r\n// Mozilla Public License or GNU Public License\r\n//\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\r\n// use this file except in compliance with the License. You may obtain a copy\r\n// of the License at http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// The contents of this file are subject to the Mozilla Public License\r\n// Version 1.1 (the \"License\"); you may not use this file except in\r\n// compliance with the License. You may obtain a copy of the License at\r\n// http://www.mozilla.org/MPL/\r\n//\r\n// Software distributed under the License is distributed on an \"AS IS\"\r\n// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the\r\n// License for the specific language governing rights and limitations\r\n// under the License.\r\n//\r\n// The Original Code is Simple HTML Parser.\r\n//\r\n// The Initial Developer of the Original Code is Erik Arvidsson.\r\n// Portions created by Erik Arvidssson are Copyright (C) 2004. All Rights\r\n// Reserved.\r\n//\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// This program is free software; you can redistribute it and/or\r\n// modify it under the terms of the GNU General Public License\r\n// as published by the Free Software Foundation; either version 2\r\n// of the License, or (at your option) any later version.\r\n//\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n//\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program; if not, write to the Free Software\r\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r\n//\r\n///////////////////////////////////////////////////////////////////////////////\r\n\r\n/*\r\nvar handler ={\r\n\tstartElement: function (sTagName, oAttrs) {},\r\n\tendElement: function (sTagName) {},\r\n characters:\t\tfunction (s) {},\r\n comment:\t\tfunction (s) {}\r\n};\r\n*/\r\n\r\nfunction SimpleHtmlParser() {}\r\n\r\nSimpleHtmlParser.prototype = {\r\n handler: null,\r\n\r\n // regexps\r\n\r\n startTagRe: /^<([^>\\s\\/]+)((\\s+[^=>\\s]+(\\s*=\\s*((\\\"[^\"]*\\\")|(\\'[^']*\\')|[^>\\s]+))?)*)\\s*\\/?\\s*>/m,\r\n endTagRe: /^<\\/([^>\\s]+)[^>]*>/m,\r\n attrRe: /([^=\\s]+)(\\s*=\\s*((\\\"([^\"]*)\\\")|(\\'([^']*)\\')|[^>\\s]+))?/gm,\r\n\r\n parse: function (s, oHandler) {\r\n if (oHandler) this.contentHandler = oHandler\r\n\r\n var i = 0\r\n var res, lc, lm, rc, index\r\n var treatAsChars = false\r\n var oThis = this\r\n while (s.length > 0) {\r\n // Comment\r\n if (s.substring(0, 4) == '<!--') {\r\n index = s.indexOf('-->')\r\n if (index != -1) {\r\n this.contentHandler.comment(s.substring(4, index))\r\n s = s.substring(index + 3)\r\n treatAsChars = false\r\n } else {\r\n treatAsChars = true\r\n }\r\n }\r\n\r\n // end tag\r\n else if (s.substring(0, 2) == '</') {\r\n if (this.endTagRe.test(s)) {\r\n lc = RegExp.leftContext\r\n lm = RegExp.lastMatch\r\n rc = RegExp.rightContext\r\n\r\n lm.replace(this.endTagRe, function () {\r\n return oThis.parseEndTag.apply(oThis, arguments)\r\n })\r\n\r\n s = rc\r\n treatAsChars = false\r\n } else {\r\n treatAsChars = true\r\n }\r\n }\r\n // start tag\r\n else if (s.charAt(0) == '<') {\r\n if (this.startTagRe.test(s)) {\r\n lc = RegExp.leftContext\r\n lm = RegExp.lastMatch\r\n rc = RegExp.rightContext\r\n\r\n lm.replace(this.startTagRe, function () {\r\n return oThis.parseStartTag.apply(oThis, arguments)\r\n })\r\n\r\n s = rc\r\n treatAsChars = false\r\n } else {\r\n treatAsChars = true\r\n }\r\n }\r\n\r\n if (treatAsChars) {\r\n index = s.indexOf('<')\r\n if (index == -1) {\r\n this.contentHandler.characters(s)\r\n s = ''\r\n } else {\r\n this.contentHandler.characters(s.substring(0, index))\r\n s = s.substring(index)\r\n }\r\n }\r\n\r\n treatAsChars = true\r\n }\r\n },\r\n\r\n parseStartTag: function (sTag, sTagName, sRest) {\r\n var attrs = this.parseAttributes(sTagName, sRest)\r\n this.contentHandler.startElement(sTagName, attrs)\r\n },\r\n\r\n parseEndTag: function (sTag, sTagName) {\r\n this.contentHandler.endElement(sTagName)\r\n },\r\n\r\n parseAttributes: function (sTagName, s) {\r\n var oThis = this\r\n var attrs = []\r\n s.replace(this.attrRe, function (a0, a1, a2, a3, a4, a5, a6) {\r\n attrs.push(oThis.parseAttribute(sTagName, a0, a1, a2, a3, a4, a5, a6))\r\n })\r\n return attrs\r\n },\r\n\r\n parseAttribute: function (sTagName, sAttribute, sName) {\r\n var value = ''\r\n if (arguments[7]) value = arguments[8]\r\n else if (arguments[5]) value = arguments[6]\r\n else if (arguments[3]) value = arguments[4]\r\n\r\n var empty = !value && !arguments[3]\r\n return { name: sName, value: empty ? null : value }\r\n },\r\n}\r\n\r\n// export default SimpleHtmlParser\r\nmodule.exports = SimpleHtmlParser\r\n","\"use strict\";\r\n/**\r\n * @description 图片点击后选区更新到img的位置\r\n * @author tonghan\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * 图片点击后选区更新到img的位置\r\n * @param editor 编辑器实例\r\n * @param imgClickEvents delete 键 up 时的 hooks\r\n */\r\nfunction imgClickActive(editor, imgClickEvents) {\r\n function clickFn($img) {\r\n editor.selection.createRangeByElem($img);\r\n editor.selection.restoreSelection();\r\n }\r\n imgClickEvents.push(clickFn);\r\n}\r\nexports.default = imgClickActive;\r\n","\"use strict\";\r\n/**\r\n * @description 获取子元素的 JSON 格式数据\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../utils/dom-core\"));\r\n/**\r\n * 获取子元素的 JSON 格式数据\r\n * @param $elem DOM 节点\r\n */\r\nfunction getChildrenJSON($elem) {\r\n var result = []; // 存储结果\r\n var $children = $elem.childNodes() || []; // 注意 childNodes() 可以获取文本节点\r\n $children.forEach(function (curElem) {\r\n var elemResult;\r\n var nodeType = curElem.nodeType;\r\n // 文本节点\r\n if (nodeType === 3) {\r\n elemResult = curElem.textContent || '';\r\n elemResult = util_1.replaceHtmlSymbol(elemResult);\r\n }\r\n // 普通 DOM 节点\r\n if (nodeType === 1) {\r\n elemResult = {};\r\n elemResult = elemResult;\r\n // tag\r\n elemResult.tag = curElem.nodeName.toLowerCase();\r\n // attr\r\n var attrData = [];\r\n var attrList = curElem.attributes || [];\r\n var attrListLength = attrList.length || 0;\r\n for (var i = 0; i < attrListLength; i++) {\r\n var attr = attrList[i];\r\n attrData.push({\r\n name: attr.name,\r\n value: attr.value,\r\n });\r\n }\r\n elemResult.attrs = attrData;\r\n // children(递归)\r\n elemResult.children = getChildrenJSON(dom_core_1.default(curElem));\r\n }\r\n if (elemResult) {\r\n result.push(elemResult);\r\n }\r\n });\r\n return result;\r\n}\r\nexports.default = getChildrenJSON;\r\n","\"use strict\";\r\n/**\r\n * @description Menus 菜单栏 入口文件\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar menu_list_1 = __importDefault(require(\"./menu-list\"));\r\n// import { MenuActive } from './menu-constructors/Menu'\r\nvar Menus = /** @class */ (function () {\r\n function Menus(editor) {\r\n this.editor = editor;\r\n this.menuList = [];\r\n this.constructorList = menu_list_1.default; // 所有菜单构造函数的列表\r\n }\r\n /**\r\n * 自定义添加菜单\r\n * @param key 菜单 key ,和 editor.config.menus 对应\r\n * @param Menu 菜单构造函数\r\n */\r\n Menus.prototype.extend = function (key, Menu) {\r\n if (!Menu || typeof Menu !== 'function')\r\n return;\r\n this.constructorList[key] = Menu;\r\n };\r\n // 初始化菜单\r\n Menus.prototype.init = function () {\r\n var _this = this;\r\n // 从用户配置的 menus 入手,看需要初始化哪些菜单\r\n var config = this.editor.config;\r\n config.menus.forEach(function (menuKey) {\r\n var MenuConstructor = _this.constructorList[menuKey]; // 暂用 any ,后面再替换\r\n if (MenuConstructor == null || typeof MenuConstructor !== 'function') {\r\n // 必须是 class\r\n return;\r\n }\r\n // 创建 menu 实例,并放到 menuList 中\r\n var m = new MenuConstructor(_this.editor);\r\n m.key = menuKey;\r\n _this.menuList.push(m);\r\n });\r\n // 渲染 DOM\r\n this._addToToolbar();\r\n };\r\n // 添加到菜单栏\r\n Menus.prototype._addToToolbar = function () {\r\n var editor = this.editor;\r\n var $toolbarElem = editor.$toolbarElem;\r\n // 遍历添加到 DOM\r\n this.menuList.forEach(function (menu) {\r\n var $elem = menu.$elem;\r\n if ($elem) {\r\n $toolbarElem.append($elem);\r\n }\r\n });\r\n };\r\n /**\r\n * 获取菜单对象\r\n * @param 菜单名称 小写\r\n * @return Menus 菜单对象\r\n */\r\n Menus.prototype.menuFind = function (key) {\r\n var menuList = this.menuList;\r\n for (var i = 0, l = menuList.length; i < l; i++) {\r\n if (menuList[i].key === key)\r\n return menuList[i];\r\n }\r\n return menuList[0];\r\n };\r\n /**\r\n * @description 修改菜单激活状态\r\n */\r\n Menus.prototype.changeActive = function () {\r\n this.menuList.forEach(function (menu) {\r\n setTimeout(menu.tryChangeActive.bind(menu), 100); // 暂用 any ,后面再替换\r\n });\r\n };\r\n return Menus;\r\n}());\r\nexports.default = Menus;\r\n","var parent = require('../../es/instance/bind');\n\nmodule.exports = parent;\n","var bind = require('../function/virtual/bind');\n\nvar FunctionPrototype = Function.prototype;\n\nmodule.exports = function (it) {\n var own = it.bind;\n return it === FunctionPrototype || (it instanceof Function && own === FunctionPrototype.bind) ? bind : own;\n};\n","require('../../../modules/es.function.bind');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Function').bind;\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","\"use strict\";\r\n/**\r\n * @description 所有菜单的构造函数\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __importDefault(require(\"./bold/index\"));\r\nvar index_2 = __importDefault(require(\"./head/index\"));\r\nvar index_3 = __importDefault(require(\"./link/index\"));\r\nvar index_4 = __importDefault(require(\"./italic/index\"));\r\nvar index_5 = __importDefault(require(\"./underline/index\"));\r\nvar index_6 = __importDefault(require(\"./strike-through/index\"));\r\nvar index_7 = __importDefault(require(\"./font-style/index\"));\r\nvar font_size_1 = __importDefault(require(\"./font-size\"));\r\nvar index_8 = __importDefault(require(\"./justify/index\"));\r\nvar index_9 = __importDefault(require(\"./quote/index\"));\r\nvar index_10 = __importDefault(require(\"./back-color/index\"));\r\nvar index_11 = __importDefault(require(\"./font-color/index\"));\r\nvar index_12 = __importDefault(require(\"./video/index\"));\r\nvar index_13 = __importDefault(require(\"./img/index\"));\r\nvar index_14 = __importDefault(require(\"./indent/index\"));\r\nvar index_15 = __importDefault(require(\"./emoticon/index\"));\r\nvar index_16 = __importDefault(require(\"./list/index\"));\r\nvar index_17 = __importDefault(require(\"./lineHeight/index\"));\r\nvar index_18 = __importDefault(require(\"./undo/index\"));\r\nvar index_19 = __importDefault(require(\"./redo/index\"));\r\nvar index_20 = __importDefault(require(\"./table/index\"));\r\nvar code_1 = __importDefault(require(\"./code\"));\r\nvar index_21 = __importDefault(require(\"./split-line/index\"));\r\nexports.default = {\r\n bold: index_1.default,\r\n head: index_2.default,\r\n italic: index_4.default,\r\n link: index_3.default,\r\n underline: index_5.default,\r\n strikeThrough: index_6.default,\r\n fontName: index_7.default,\r\n fontSize: font_size_1.default,\r\n justify: index_8.default,\r\n quote: index_9.default,\r\n backColor: index_10.default,\r\n foreColor: index_11.default,\r\n video: index_12.default,\r\n image: index_13.default,\r\n indent: index_14.default,\r\n emoticon: index_15.default,\r\n list: index_16.default,\r\n lineHeight: index_17.default,\r\n undo: index_18.default,\r\n redo: index_19.default,\r\n table: index_20.default,\r\n code: code_1.default,\r\n splitLine: index_21.default,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 加粗\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Bold = /** @class */ (function (_super) {\r\n __extends(Bold, _super);\r\n function Bold(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-bold\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Bold.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var isSelectEmpty = editor.selection.isSelectionEmpty();\r\n if (isSelectEmpty) {\r\n // 选区范围是空的,插入并选中一个“空白”\r\n editor.selection.createEmptyRange();\r\n }\r\n // 执行 bold 命令\r\n editor.cmd.do('bold');\r\n if (isSelectEmpty) {\r\n // 需要将选区范围折叠起来\r\n editor.selection.collapseRange();\r\n editor.selection.restoreSelection();\r\n }\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Bold.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (editor.cmd.queryCommandState('bold')) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Bold;\r\n}(BtnMenu_1.default));\r\nexports.default = Bold;\r\n","var parent = require('../../es/object/set-prototype-of');\n\nmodule.exports = parent;\n","require('../../modules/es.object.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.setPrototypeOf;\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","\"use strict\";\r\n/**\r\n * @description 标题\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Head = /** @class */ (function (_super) {\r\n __extends(Head, _super);\r\n function Head(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-header\"></i></div>');\r\n var dropListConf = {\r\n width: 100,\r\n title: '设置标题',\r\n type: 'list',\r\n list: [\r\n { $elem: dom_core_1.default('<h1>H1</h1>'), value: '<h1>' },\r\n { $elem: dom_core_1.default('<h2>H2</h2>'), value: '<h2>' },\r\n { $elem: dom_core_1.default('<h3>H3</h3>'), value: '<h3>' },\r\n { $elem: dom_core_1.default('<h4>H4</h4>'), value: '<h4>' },\r\n { $elem: dom_core_1.default('<h5>H5</h5>'), value: '<h5>' },\r\n {\r\n $elem: dom_core_1.default(\"<p>\" + editor.i18next.t('menus.dropListMenu.head.正文') + \"</p>\"),\r\n value: '<p>',\r\n },\r\n ],\r\n clickHandler: function (value) {\r\n // 注意 this 是指向当前的 Head 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, dropListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n Head.prototype.command = function (value) {\r\n var editor = this.editor;\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n if ($selectionElem && editor.$textElem.equal($selectionElem)) {\r\n // 不能选中多行来设置标题,否则会出现问题\r\n // 例如选中的是 <p>xxx</p><p>yyy</p> 来设置标题,设置之后会成为 <h1>xxx<br>yyy</h1> 不符合预期\r\n return;\r\n }\r\n editor.cmd.do('formatBlock', value);\r\n };\r\n /**\r\n * 尝试改变菜单激活(高亮)状态\r\n */\r\n Head.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n var reg = /^h/i;\r\n var cmdValue = editor.cmd.queryCommandValue('formatBlock');\r\n if (reg.test(cmdValue)) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Head;\r\n}(DropListMenu_1.default));\r\nexports.default = Head;\r\n","\"use strict\";\r\n/**\r\n * @description 链接 菜单\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar is_active_1 = __importDefault(require(\"./is-active\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar index_1 = __importDefault(require(\"./bind-event/index\"));\r\nvar Link = /** @class */ (function (_super) {\r\n __extends(Link, _super);\r\n function Link(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-link\"></i></div>');\r\n _this = _super.call(this, $elem, editor) || this;\r\n // 绑定事件,如点击链接时,可以查看链接\r\n index_1.default(editor);\r\n return _this;\r\n }\r\n /**\r\n * 菜单点击事件\r\n */\r\n Link.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var $linkElem;\r\n if (this.isActive) {\r\n // 菜单被激活,说明选区在链接里\r\n $linkElem = editor.selection.getSelectionContainerElem();\r\n if (!$linkElem) {\r\n return;\r\n }\r\n // 弹出 panel\r\n this.createPanel($linkElem.text(), $linkElem.attr('href'));\r\n }\r\n else {\r\n // 菜单未被激活,说明选区不在链接里\r\n if (editor.selection.isSelectionEmpty()) {\r\n // 选区是空的,未选中内容\r\n this.createPanel('', '');\r\n }\r\n else {\r\n // 选中内容了\r\n this.createPanel(editor.selection.getSelectionText(), '');\r\n }\r\n }\r\n };\r\n /**\r\n * 创建 panel\r\n * @param text 文本\r\n * @param link 链接\r\n */\r\n Link.prototype.createPanel = function (text, link) {\r\n var conf = create_panel_conf_1.default(this.editor, text, link);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 尝试修改菜单 active 状态\r\n */\r\n Link.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (is_active_1.default(editor)) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Link;\r\n}(PanelMenu_1.default));\r\nexports.default = Link;\r\n","\"use strict\";\r\n/**\r\n * @description link 菜单 panel tab 配置\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar is_active_1 = __importDefault(require(\"./is-active\"));\r\nfunction default_1(editor, text, link) {\r\n // panel 中需要用到的id\r\n var inputLinkId = util_1.getRandom('input-link');\r\n var inputTextId = util_1.getRandom('input-text');\r\n var btnOkId = util_1.getRandom('btn-ok');\r\n var btnDelId = util_1.getRandom('btn-del');\r\n // 是否显示“取消链接”\r\n var delBtnDisplay = is_active_1.default(editor) ? 'inline-block' : 'none';\r\n var $selectedLink;\r\n /**\r\n * 选中整个链接元素\r\n */\r\n function selectLinkElem() {\r\n if (!is_active_1.default(editor))\r\n return;\r\n var $linkElem = editor.selection.getSelectionContainerElem();\r\n if (!$linkElem)\r\n return;\r\n editor.selection.createRangeByElem($linkElem);\r\n editor.selection.restoreSelection();\r\n $selectedLink = $linkElem; // 赋值给函数内全局变量\r\n }\r\n /**\r\n * 插入链接\r\n * @param text 文字\r\n * @param link 链接\r\n */\r\n function insertLink(text, link) {\r\n if (is_active_1.default(editor)) {\r\n // 选区处于链接中,则选中整个菜单,再执行 insertHTML\r\n selectLinkElem();\r\n editor.cmd.do('insertHTML', \"<a href=\\\"\" + link + \"\\\" target=\\\"_blank\\\">\" + text + \"</a>\");\r\n }\r\n else {\r\n // 选区未处于链接中,直接插入即可\r\n editor.cmd.do('insertHTML', \"<a href=\\\"\" + link + \"\\\" target=\\\"_blank\\\">\" + text + \"</a>\");\r\n }\r\n }\r\n /**\r\n * 取消链接\r\n */\r\n function delLink() {\r\n if (!is_active_1.default(editor)) {\r\n return;\r\n }\r\n // 选中整个链接\r\n selectLinkElem();\r\n // 用文本替换链接\r\n var selectionText = $selectedLink.text();\r\n editor.cmd.do('insertHTML', '<span>' + selectionText + '</span>');\r\n }\r\n /**\r\n * 校验链接是否合法\r\n * @param link 链接\r\n */\r\n function checkLink(text, link) {\r\n //查看开发者自定义配置的返回值\r\n var check = editor.config.linkCheck(text, link);\r\n if (check === undefined) {\r\n //用户未能通过开发者的校验,且开发者不希望编辑器提示用户\r\n }\r\n else if (check === true) {\r\n //用户通过了开发者的校验\r\n return true;\r\n }\r\n else {\r\n //用户未能通过开发者的校验,开发者希望我们提示这一字符串\r\n alert(check);\r\n }\r\n return false;\r\n }\r\n var conf = {\r\n width: 300,\r\n height: 0,\r\n // panel 中可包含多个 tab\r\n tabs: [\r\n {\r\n // tab 的标题\r\n title: editor.i18next.t('menus.panelMenus.link.链接'),\r\n // 模板\r\n tpl: \"<div>\\n <input \\n id=\\\"\" + inputTextId + \"\\\" \\n type=\\\"text\\\" \\n class=\\\"block\\\" \\n value=\\\"\" + text + \"\\\" \\n placeholder=\\\"\" + editor.i18next.t('menus.panelMenus.link.链接文字') + \"\\\"/>\\n </td>\\n <input \\n id=\\\"\" + inputLinkId + \"\\\" \\n type=\\\"text\\\" \\n class=\\\"block\\\" \\n value=\\\"\" + link + \"\\\" \\n placeholder=\\\"\" + editor.i18next.t('如') + \" https://...\\\"/>\\n </td>\\n <div class=\\\"w-e-button-container\\\">\\n <button id=\\\"\" + btnOkId + \"\\\" class=\\\"right\\\">\\n \" + editor.i18next.t('插入') + \"\\n </button>\\n <button id=\\\"\" + btnDelId + \"\\\" class=\\\"gray right\\\" style=\\\"display:\" + delBtnDisplay + \"\\\">\\n \" + editor.i18next.t('menus.panelMenus.link.取消链接') + \"\\n </button>\\n </div>\\n </div>\",\r\n // 事件绑定\r\n events: [\r\n // 插入链接\r\n {\r\n selector: '#' + btnOkId,\r\n type: 'click',\r\n fn: function () {\r\n // 执行插入链接\r\n var $link = dom_core_1.default('#' + inputLinkId);\r\n var $text = dom_core_1.default('#' + inputTextId);\r\n var link = $link.val().trim();\r\n var text = $text.val().trim();\r\n // 链接为空,则不插入\r\n if (!link)\r\n return;\r\n // 文本为空,则用链接代替\r\n if (!text)\r\n text = link;\r\n // 校验链接是否满足用户的规则,若不满足则不插入\r\n if (!checkLink(text, link))\r\n return;\r\n insertLink(text, link);\r\n // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭\r\n return true;\r\n },\r\n },\r\n // 取消链接\r\n {\r\n selector: '#' + btnDelId,\r\n type: 'click',\r\n fn: function () {\r\n // 执行取消链接\r\n delLink();\r\n // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 绑定链接元素的事件,入口\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tooltip_event_1 = __importDefault(require(\"./tooltip-event\"));\r\n/**\r\n * 绑定事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindEvent(editor) {\r\n // tooltip 事件\r\n tooltip_event_1.default(editor);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\n/**\r\n * @description tooltip 事件\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nvar Tooltip_1 = __importDefault(require(\"../../menu-constructors/Tooltip\"));\r\n/**\r\n * 生成 Tooltip 的显示隐藏函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var tooltip;\r\n /**\r\n * 显示 tooltip\r\n * @param $link 链接元素\r\n */\r\n function showLinkTooltip($link) {\r\n var conf = [\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + editor.i18next.t('menus.panelMenus.link.查看链接') + \"</span>\"),\r\n onClick: function (editor, $link) {\r\n var link = $link.attr('href');\r\n window.open(link, '_target');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + editor.i18next.t('menus.panelMenus.link.取消链接') + \"</span>\"),\r\n onClick: function (editor, $link) {\r\n // 选中链接元素\r\n editor.selection.createRangeByElem($link);\r\n editor.selection.restoreSelection();\r\n // 用文字,替换链接\r\n var selectionText = $link.text();\r\n editor.cmd.do('insertHTML', '<span>' + selectionText + '</span>');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n ];\r\n // 创建 tooltip\r\n tooltip = new Tooltip_1.default(editor, $link, conf);\r\n tooltip.create();\r\n }\r\n /**\r\n * 隐藏 tooltip\r\n */\r\n function hideLinkTooltip() {\r\n // 移除 tooltip\r\n if (tooltip) {\r\n tooltip.remove();\r\n tooltip = null;\r\n }\r\n }\r\n return {\r\n showLinkTooltip: showLinkTooltip,\r\n hideLinkTooltip: hideLinkTooltip,\r\n };\r\n}\r\n/**\r\n * 绑定 tooltip 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindTooltipEvent(editor) {\r\n var _a = createShowHideFn(editor), showLinkTooltip = _a.showLinkTooltip, hideLinkTooltip = _a.hideLinkTooltip;\r\n // 点击链接元素是,显示 tooltip\r\n editor.txt.eventHooks.linkClickEvents.push(showLinkTooltip);\r\n // 点击其他地方,或者滚动时,隐藏 tooltip\r\n editor.txt.eventHooks.clickEvents.push(hideLinkTooltip);\r\n editor.txt.eventHooks.keyupEvents.push(hideLinkTooltip);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideLinkTooltip);\r\n editor.txt.eventHooks.menuClickEvents.push(hideLinkTooltip);\r\n editor.txt.eventHooks.textScrollEvents.push(hideLinkTooltip);\r\n}\r\nexports.default = bindTooltipEvent;\r\n","\"use strict\";\r\n/**\r\n * @description 斜体\r\n * @author liuwei\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Italic = /** @class */ (function (_super) {\r\n __extends(Italic, _super);\r\n function Italic(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-italic\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Italic.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var isSelectEmpty = editor.selection.isSelectionEmpty();\r\n if (isSelectEmpty) {\r\n // 选区范围是空的,插入并选中一个“空白”\r\n editor.selection.createEmptyRange();\r\n }\r\n // 执行 italic 命令\r\n editor.cmd.do('italic');\r\n if (isSelectEmpty) {\r\n // 需要将选区范围折叠起来\r\n editor.selection.collapseRange();\r\n editor.selection.restoreSelection();\r\n }\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Italic.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (editor.cmd.queryCommandState('italic')) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Italic;\r\n}(BtnMenu_1.default));\r\nexports.default = Italic;\r\n","\"use strict\";\r\n/**\r\n * @description 下划线 underline\r\n * @author dyl\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Underline = /** @class */ (function (_super) {\r\n __extends(Underline, _super);\r\n function Underline(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-underline\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Underline.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var isSelectEmpty = editor.selection.isSelectionEmpty();\r\n if (isSelectEmpty) {\r\n // 选区范围是空的,插入并选中一个“空白”\r\n editor.selection.createEmptyRange();\r\n }\r\n // 执行 Underline 命令\r\n editor.cmd.do('underline');\r\n if (isSelectEmpty) {\r\n // 需要将选区范围折叠起来\r\n editor.selection.collapseRange();\r\n editor.selection.restoreSelection();\r\n }\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Underline.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (editor.cmd.queryCommandState('underline')) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Underline;\r\n}(BtnMenu_1.default));\r\nexports.default = Underline;\r\n","\"use strict\";\r\n/**\r\n * @description 删除线\r\n * @author lkw\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar StrikeThrough = /** @class */ (function (_super) {\r\n __extends(StrikeThrough, _super);\r\n function StrikeThrough(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-strikethrough\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n StrikeThrough.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var isSelectEmpty = editor.selection.isSelectionEmpty();\r\n if (isSelectEmpty) {\r\n // 选区范围是空的,插入并选中一个“空白”\r\n editor.selection.createEmptyRange();\r\n }\r\n // 执行 strikeThrough 命令\r\n editor.cmd.do('strikeThrough');\r\n if (isSelectEmpty) {\r\n // 需要将选区范围折叠起来\r\n editor.selection.collapseRange();\r\n editor.selection.restoreSelection();\r\n }\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n StrikeThrough.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (editor.cmd.queryCommandState('strikeThrough')) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return StrikeThrough;\r\n}(BtnMenu_1.default));\r\nexports.default = StrikeThrough;\r\n","\"use strict\";\r\n/**\r\n * @description 字体样式 FontStyle\r\n * @author dyl\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar FontStyleList_1 = __importDefault(require(\"./FontStyleList\"));\r\nvar FontStyle = /** @class */ (function (_super) {\r\n __extends(FontStyle, _super);\r\n function FontStyle(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-font\\\"></i>\\n </div>\");\r\n var fontStyleList = new FontStyleList_1.default(editor.config.fontNames);\r\n var fontListConf = {\r\n width: 100,\r\n title: '设置字体',\r\n type: 'list',\r\n list: fontStyleList.getItemList(),\r\n clickHandler: function (value) {\r\n // this 是指向当前的 FontStyle 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, fontListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n FontStyle.prototype.command = function (value) {\r\n var editor = this.editor;\r\n editor.cmd.do('fontName', value);\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n * ?字体是否需要有激活状态这个操作?\r\n */\r\n FontStyle.prototype.tryChangeActive = function () {\r\n // const editor = this.editor\r\n // const cmdValue = editor.cmd.queryCommandValue('fontName')\r\n // if (menusConfig.fontNames.indexOf(cmdValue) >= 0) {\r\n // this.active()\r\n // } else {\r\n // this.unActive()\r\n // }\r\n };\r\n return FontStyle;\r\n}(DropListMenu_1.default));\r\nexports.default = FontStyle;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description 字体 class\r\n * @author dyl\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n/**\r\n * 封装的一个字体菜单列表数据的组装对象,\r\n * 原因是因为在constructor函数中,直接执行此流程,会让代码量看起来较多,\r\n * 如果要在constructor调用外部函数,个人目前发现会有错误提示,\r\n * 因此,想着顺便研究实践下ts,遍创建了这样一个类\r\n */\r\nvar FontStyleList = /** @class */ (function () {\r\n function FontStyleList(list) {\r\n var _this = this;\r\n this.itemList = [];\r\n list.forEach(function (fontValue) {\r\n _this.itemList.push({\r\n $elem: dom_core_1.default(\"<p style=\\\"font-family:'\" + fontValue + \"'\\\">\" + fontValue + \"</p>\"),\r\n value: fontValue,\r\n });\r\n });\r\n }\r\n FontStyleList.prototype.getItemList = function () {\r\n return this.itemList;\r\n };\r\n return FontStyleList;\r\n}());\r\nexports.default = FontStyleList;\r\n","\"use strict\";\r\n/**\r\n * @description 字号 FontSize\r\n * @author lkw\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar FontSizeList_1 = __importDefault(require(\"./FontSizeList\"));\r\nvar FontSize = /** @class */ (function (_super) {\r\n __extends(FontSize, _super);\r\n function FontSize(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-text-heigh\\\"></i>\\n </div>\");\r\n var fontStyleList = new FontSizeList_1.default(editor.config.fontSizes);\r\n var fontListConf = {\r\n width: 160,\r\n title: '设置字号',\r\n type: 'list',\r\n list: fontStyleList.getItemList(),\r\n clickHandler: function (value) {\r\n // this 是指向当前的 FontSize 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, fontListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n FontSize.prototype.command = function (value) {\r\n var editor = this.editor;\r\n editor.cmd.do('fontSize', value);\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n * ?字号是否需要有激活状态这个操作?\r\n */\r\n FontSize.prototype.tryChangeActive = function () { };\r\n return FontSize;\r\n}(DropListMenu_1.default));\r\nexports.default = FontSize;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description 字号 class\r\n * @author lkw\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n/**\r\n * FontSizeList 字号配置列表\r\n */\r\nvar FontSizeList = /** @class */ (function () {\r\n function FontSizeList(list) {\r\n this.itemList = [];\r\n for (var key in list) {\r\n var item = list[key];\r\n this.itemList.push({\r\n $elem: dom_core_1.default(\"<p style=\\\"font-size:\" + key + \"\\\">\" + item.name + \"</p>\"),\r\n value: item.value,\r\n });\r\n }\r\n }\r\n FontSizeList.prototype.getItemList = function () {\r\n return this.itemList;\r\n };\r\n return FontSizeList;\r\n}());\r\nexports.default = FontSizeList;\r\n","\"use strict\";\r\n/**\r\n * @description 对齐方式\r\n * @author liuwei\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Justify = /** @class */ (function (_super) {\r\n __extends(Justify, _super);\r\n function Justify(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-paragraph-left\"></i></div>');\r\n var dropListConf = {\r\n width: 100,\r\n title: '对齐方式',\r\n type: 'list',\r\n list: [\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-paragraph-left w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.justify.靠左') + \"\\n </p>\"),\r\n value: 'justifyLeft',\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-paragraph-center w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.justify.居中') + \"\\n </p>\"),\r\n value: 'justifyCenter',\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-paragraph-right w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.justify.靠右') + \"\\n </p>\"),\r\n value: 'justifyRight',\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-paragraph-justify w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.justify.两端') + \"\\n </p>\"),\r\n value: 'justifyFull',\r\n },\r\n ],\r\n clickHandler: function (value) {\r\n // 执行对应的value操作\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, dropListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n Justify.prototype.command = function (value) {\r\n var editor = this.editor;\r\n var selection = editor.selection;\r\n var $selectionElem = selection.getSelectionContainerElem();\r\n // 保存选区\r\n selection.saveRange();\r\n // 数据项\r\n var justifyClass = {\r\n justifyLeft: 'left',\r\n justifyCenter: 'center',\r\n justifyRight: 'right',\r\n justifyFull: 'justify',\r\n };\r\n // 获取顶级元素\r\n var $elems = editor.selection.getSelectionRangeTopNodes(editor);\r\n // 选区等于textElem时表示选择了多个段落\r\n if ($selectionElem && editor.$textElem.equal($selectionElem)) {\r\n // 获取在css中对应style的值\r\n var justifyValue_1 = justifyClass[value];\r\n $elems.forEach(function (el) {\r\n el.css('text-align', justifyValue_1);\r\n });\r\n }\r\n else {\r\n // 如果单行的使用execcommand实现\r\n editor.cmd.do(value, value);\r\n }\r\n //恢复选区\r\n selection.restoreSelection();\r\n };\r\n /**\r\n * 尝试改变菜单激活(高亮)状态\r\n * 默认左对齐,若选择其他对其方式对active进行高亮否则unActive\r\n * ?考虑优化的话 是否可以对具体选中的进行高亮\r\n */\r\n Justify.prototype.tryChangeActive = function () {\r\n // const editor = this.editor\r\n // let isjustify = ['justifyCenter', 'justifyRight'].some(e => editor.cmd.queryCommandState(e))\r\n // if (isjustify) {\r\n // this.active()\r\n // } else {\r\n // this.unActive()\r\n // }\r\n };\r\n return Justify;\r\n}(DropListMenu_1.default));\r\nexports.default = Justify;\r\n","\"use strict\";\r\n/**\r\n * @description 引用\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar util_1 = require(\"../../utils/util\");\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar Quote = /** @class */ (function (_super) {\r\n __extends(Quote, _super);\r\n function Quote(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-quotes-left\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Quote.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var isSelectEmpty = editor.selection.isSelectionEmpty();\r\n var $topNodeElem = editor.selection.getSelectionRangeTopNodes(editor)[0];\r\n var nodeName = this.getTopNodeName();\r\n if (isSelectEmpty) {\r\n // 选区范围是空的,插入并选中一个“空白”\r\n editor.selection.createEmptyRange();\r\n }\r\n if (util_1.UA.isIE() || util_1.UA.isFirefox || util_1.UA.isOldEdge) {\r\n // IE 中不支持 formatBlock <BLOCKQUOTE> ,要用其他方式兼容\r\n // 兼容firefox无法取消blockquote的问题\r\n var nodeList = $topNodeElem.getNode().childNodes;\r\n if (nodeName === 'P') {\r\n // 将 P 转换为 quote\r\n var $targetELem = dom_core_1.default(\"<blockquote></blockquote>\");\r\n var targetElem = $targetELem.getNode();\r\n this.insertNode(targetElem, nodeList);\r\n $targetELem.insertAfter($topNodeElem);\r\n $topNodeElem.remove();\r\n editor.selection.moveCursor($targetELem.getNode());\r\n // 防止最后一行无法跳出\r\n dom_core_1.default(\"<p><br></p>\").insertAfter($targetELem);\r\n return;\r\n }\r\n if (nodeName === 'BLOCKQUOTE') {\r\n // 撤销 quote\r\n var $targetELem = dom_core_1.default(\"<p></p>\");\r\n var targetElem = $targetELem.getNode();\r\n this.insertNode(targetElem, nodeList);\r\n $targetELem.insertAfter($topNodeElem);\r\n $topNodeElem.remove();\r\n editor.selection.moveCursor($targetELem.elems[0]);\r\n }\r\n }\r\n else {\r\n // 执行 formatBlock 命令\r\n if (nodeName === 'BLOCKQUOTE') {\r\n editor.cmd.do('formatBlock', '<p>');\r\n }\r\n else {\r\n editor.cmd.do('formatBlock', '<blockquote>');\r\n }\r\n }\r\n if (isSelectEmpty) {\r\n // 需要将选区范围折叠起来\r\n editor.selection.collapseRange();\r\n editor.selection.restoreSelection();\r\n }\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Quote.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n var cmdValue = editor.cmd.queryCommandValue('formatBlock');\r\n if (cmdValue === 'blockquote') {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n /**\r\n * 获取包裹在最外层的节点(防止内部嵌入多个样式)\r\n * @param selectionElem 选中的节点\r\n * @returns {string} 最终要处理的节点名称\r\n */\r\n Quote.prototype.getTopNodeName = function () {\r\n var editor = this.editor;\r\n var $topNodeElem = editor.selection.getSelectionRangeTopNodes(editor)[0];\r\n var nodeName = $topNodeElem.getNodeName();\r\n return nodeName;\r\n };\r\n /**\r\n * 将nodelist插入element中,并做一些特殊化处理\r\n * @param element 需要插入的父节点\r\n * @param nodeList 需要插入的nodelist\r\n */\r\n Quote.prototype.insertNode = function (element, nodeList) {\r\n nodeList.forEach(function (node, i) {\r\n // 去除空节点\r\n if (node.nodeName && node.textContent !== null) {\r\n if (node.nodeName !== 'BR' || i !== nodeList.length - 1) {\r\n // 去除最后的br\r\n element.appendChild(node.cloneNode(true));\r\n }\r\n }\r\n });\r\n };\r\n return Quote;\r\n}(BtnMenu_1.default));\r\nexports.default = Quote;\r\n","\"use strict\";\r\n/**\r\n * @description 背景颜色 BackColor\r\n * @author lkw\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar BackColor = /** @class */ (function (_super) {\r\n __extends(BackColor, _super);\r\n function BackColor(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-paint-brush\\\"></i>\\n </div>\");\r\n var colorListConf = {\r\n width: 120,\r\n title: '背景颜色',\r\n // droplist 内容以 block 形式展示\r\n type: 'inline-block',\r\n list: editor.config.colors.map(function (color) {\r\n return {\r\n $elem: dom_core_1.default(\"<i style=\\\"color:\" + color + \";\\\" class=\\\"w-e-icon-paint-brush\\\"></i>\"),\r\n value: color,\r\n };\r\n }),\r\n clickHandler: function (value) {\r\n // this 是指向当前的 BackColor 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, colorListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n BackColor.prototype.command = function (value) {\r\n var editor = this.editor;\r\n editor.cmd.do('backColor', value);\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n BackColor.prototype.tryChangeActive = function () { };\r\n return BackColor;\r\n}(DropListMenu_1.default));\r\nexports.default = BackColor;\r\n","\"use strict\";\r\n/**\r\n * @description 文字颜色 FontColor\r\n * @author lkw\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar FontColor = /** @class */ (function (_super) {\r\n __extends(FontColor, _super);\r\n function FontColor(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-pencil2\\\"></i>\\n </div>\");\r\n var colorListConf = {\r\n width: 120,\r\n title: '文字颜色',\r\n // droplist 内容以 block 形式展示\r\n type: 'inline-block',\r\n list: editor.config.colors.map(function (color) {\r\n return {\r\n $elem: dom_core_1.default(\"<i style=\\\"color:\" + color + \";\\\" class=\\\"w-e-icon-pencil2\\\"></i>\"),\r\n value: color,\r\n };\r\n }),\r\n clickHandler: function (value) {\r\n // this 是指向当前的 BackColor 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, colorListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n FontColor.prototype.command = function (value) {\r\n var editor = this.editor;\r\n editor.cmd.do('foreColor', value);\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n FontColor.prototype.tryChangeActive = function () { };\r\n return FontColor;\r\n}(DropListMenu_1.default));\r\nexports.default = FontColor;\r\n","\"use strict\";\r\n/**\r\n * @description 视频 菜单\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar Video = /** @class */ (function (_super) {\r\n __extends(Video, _super);\r\n function Video(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-play\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 菜单点击事件\r\n */\r\n Video.prototype.clickHandler = function () {\r\n // 弹出 panel\r\n this.createPanel('');\r\n };\r\n /**\r\n * 创建 panel\r\n * @param link 链接\r\n */\r\n Video.prototype.createPanel = function (iframe) {\r\n var conf = create_panel_conf_1.default(this.editor, iframe);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 尝试修改菜单 active 状态\r\n */\r\n Video.prototype.tryChangeActive = function () { };\r\n return Video;\r\n}(PanelMenu_1.default));\r\nexports.default = Video;\r\n","\"use strict\";\r\n/**\r\n * @description video 菜单 panel tab 配置\r\n * @author tonghan\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nfunction default_1(editor, video) {\r\n // panel 中需要用到的id\r\n var inputIFrameId = util_1.getRandom('input-iframe');\r\n var btnOkId = util_1.getRandom('btn-ok');\r\n /**\r\n * 插入链接\r\n * @param iframe html标签\r\n */\r\n function insertVideo(video) {\r\n editor.cmd.do('insertHTML', video + '<p><br></p>');\r\n }\r\n var conf = {\r\n width: 300,\r\n height: 0,\r\n // panel 中可包含多个 tab\r\n tabs: [\r\n {\r\n // tab 的标题\r\n title: editor.i18next.t('menus.panelMenus.video.插入视频'),\r\n // 模板\r\n tpl: \"<div>\\n <input \\n id=\\\"\" + inputIFrameId + \"\\\" \\n type=\\\"text\\\" \\n class=\\\"block\\\" \\n placeholder=\\\"\" + editor.i18next.t('如') + \"\\uFF1A<iframe src=... ></iframe>\\\"/>\\n </td>\\n <div class=\\\"w-e-button-container\\\">\\n <button id=\\\"\" + btnOkId + \"\\\" class=\\\"right\\\">\\n \" + editor.i18next.t('插入') + \"\\n </button>\\n </div>\\n </div>\",\r\n // 事件绑定\r\n events: [\r\n // 插入视频\r\n {\r\n selector: '#' + btnOkId,\r\n type: 'click',\r\n fn: function () {\r\n // 执行插入视频\r\n var $video = dom_core_1.default('#' + inputIFrameId);\r\n var video = $video.val().trim();\r\n // 视频为空,则不插入\r\n if (!video)\r\n return;\r\n insertVideo(video);\r\n // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 插入、上传图片\r\n * @author wangfupeng\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar index_1 = __importDefault(require(\"./bind-event/index\"));\r\nvar Image = /** @class */ (function (_super) {\r\n __extends(Image, _super);\r\n function Image(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-image\"></i></div>');\r\n _this = _super.call(this, $elem, editor) || this;\r\n // 绑定事件,如粘贴图片\r\n index_1.default(editor);\r\n return _this;\r\n }\r\n /**\r\n * 菜单点击事件\r\n */\r\n Image.prototype.clickHandler = function () {\r\n this.createPanel();\r\n };\r\n /**\r\n * 创建 panel\r\n */\r\n Image.prototype.createPanel = function () {\r\n var conf = create_panel_conf_1.default(this.editor);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 尝试修改菜单 active 状态\r\n */\r\n Image.prototype.tryChangeActive = function () { };\r\n return Image;\r\n}(PanelMenu_1.default));\r\nexports.default = Image;\r\n","\"use strict\";\r\n/**\r\n * @description image 菜单 panel tab 配置\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar upload_img_1 = __importDefault(require(\"./upload-img\"));\r\nvar const_1 = require(\"../../utils/const\");\r\nfunction default_1(editor) {\r\n var config = editor.config;\r\n var uploadImg = new upload_img_1.default(editor);\r\n // panel 中需要用到的id\r\n var upTriggerId = util_1.getRandom('up-trigger-id');\r\n var upFileId = util_1.getRandom('up-file-id');\r\n var linkUrlId = util_1.getRandom('input-link-url');\r\n var linkBtnId = util_1.getRandom('btn-link');\r\n var i18nPrefix = 'menus.panelMenus.image.';\r\n var t = function (text, prefix) {\r\n if (prefix === void 0) { prefix = i18nPrefix; }\r\n return editor.i18next.t(prefix + text);\r\n };\r\n /**\r\n * 校验网络图片链接是否合法\r\n * @param linkImg 网络图片链接\r\n */\r\n function checkLinkImg(src) {\r\n //编辑器进行正常校验,图片合规则使指针为true,不合规为false\r\n var flag = true;\r\n if (!const_1.imgRegex.test(src)) {\r\n flag = false;\r\n }\r\n //查看开发者自定义配置的返回值\r\n var check = config.linkImgCheck(src);\r\n if (check === undefined) {\r\n //用户未能通过开发者的校验,且开发者不希望编辑器提示用户\r\n if (flag === false)\r\n console.log(t('您刚才插入的图片链接未通过编辑器校验', 'validate.'));\r\n }\r\n else if (check === true) {\r\n //用户通过了开发者的校验\r\n if (flag === false) {\r\n alert(t('您插入的网络图片无法识别', 'validate.') + \"\\uFF0C\" + t('请替换为支持的图片类型', 'validate.') + \"\\uFF1Ajpg | png | gif ...\");\r\n }\r\n else\r\n return true;\r\n }\r\n else {\r\n //用户未能通过开发者的校验,开发者希望我们提示这一字符串\r\n alert(check);\r\n }\r\n return false;\r\n }\r\n // tabs 配置 -----------------------------------------\r\n var fileMultipleAttr = config.uploadImgMaxLength === 1 ? '' : 'multiple=\"multiple\"';\r\n var tabsConf = [\r\n // first tab\r\n {\r\n // 标题\r\n title: t('上传图片'),\r\n // 模板\r\n tpl: \"<div class=\\\"w-e-up-img-container\\\">\\n <div id=\\\"\" + upTriggerId + \"\\\" class=\\\"w-e-up-btn\\\">\\n <i class=\\\"w-e-icon-upload2\\\"></i>\\n </div>\\n <div style=\\\"display:none;\\\">\\n <input id=\\\"\" + upFileId + \"\\\" type=\\\"file\\\" \" + fileMultipleAttr + \" accept=\\\"image/jpg,image/jpeg,image/png,image/gif,image/bmp\\\"/>\\n </div>\\n </div>\",\r\n // 事件绑定\r\n events: [\r\n // 触发选择图片\r\n {\r\n selector: '#' + upTriggerId,\r\n type: 'click',\r\n fn: function () {\r\n var $file = dom_core_1.default('#' + upFileId);\r\n var fileElem = $file.elems[0];\r\n if (fileElem) {\r\n fileElem.click();\r\n }\r\n else {\r\n // 返回 true 可关闭 panel\r\n return true;\r\n }\r\n },\r\n },\r\n // 选择图片完毕\r\n {\r\n selector: '#' + upFileId,\r\n type: 'change',\r\n fn: function () {\r\n var $file = dom_core_1.default('#' + upFileId);\r\n var fileElem = $file.elems[0];\r\n if (!fileElem) {\r\n // 返回 true 可关闭 panel\r\n return true;\r\n }\r\n // 获取选中的 file 对象列表\r\n var fileList = fileElem.files;\r\n if (fileList.length) {\r\n uploadImg.uploadImg(fileList);\r\n }\r\n // 返回 true 可关闭 panel\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n // second tab\r\n {\r\n title: t('网络图片'),\r\n tpl: \"<div>\\n <input \\n id=\\\"\" + linkUrlId + \"\\\" \\n type=\\\"text\\\" \\n class=\\\"block\\\"\\n placeholder=\\\"\" + t('图片链接') + \"\\\"/>\\n </td>\\n <div class=\\\"w-e-button-container\\\">\\n <button id=\\\"\" + linkBtnId + \"\\\" class=\\\"right\\\">\" + t('插入', '') + \"</button>\\n </div>\\n </div>\",\r\n events: [\r\n {\r\n selector: '#' + linkBtnId,\r\n type: 'click',\r\n fn: function () {\r\n var $linkUrl = dom_core_1.default('#' + linkUrlId);\r\n var url = $linkUrl.val().trim();\r\n //如果url为空则直接返回\r\n if (!url)\r\n return;\r\n //如果不能通过校验也直接返回\r\n if (!checkLinkImg(url))\r\n return;\r\n //插入图片url\r\n uploadImg.insertImg(url);\r\n // 返回 true 表示函数执行结束之后关闭 panel\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n // tabs end\r\n // 最终的配置 -----------------------------------------\r\n var conf = {\r\n width: 300,\r\n height: 0,\r\n tabs: [],\r\n };\r\n // 显示“上传图片”\r\n if (window.FileReader &&\r\n (config.uploadImgShowBase64 || config.uploadImgServer || config.customUploadImg)) {\r\n conf.tabs.push(tabsConf[0]);\r\n }\r\n // 显示“插入网络图片”\r\n if (config.showLinkImg) {\r\n conf.tabs.push(tabsConf[1]);\r\n }\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 上传的核心方法\r\n * @author wangfupeng\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\n/**\r\n * 发送 post 请求(用于文件上传)\r\n * @param url url\r\n * @param option 配置项\r\n */\r\nfunction post(url, option) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('POST', url);\r\n // 超时,默认 10s\r\n xhr.timeout = option.timeout || 10 * 1000;\r\n xhr.ontimeout = function () {\r\n console.error('wangEditor - 请求超时');\r\n option.onTimeout && option.onTimeout(xhr);\r\n };\r\n // 进度\r\n if (xhr.upload) {\r\n xhr.upload.onprogress = function (e) {\r\n var percent = e.loaded / e.total;\r\n option.onProgress && option.onProgress(percent, e);\r\n };\r\n }\r\n // 自定义 header\r\n if (option.headers) {\r\n util_1.forEach(option.headers, function (key, val) {\r\n xhr.setRequestHeader(key, val);\r\n });\r\n }\r\n // 跨域传 cookie\r\n xhr.withCredentials = !!option.withCredentials;\r\n // 上传之前的钩子函数,在 xhr.send() 之前执行\r\n if (option.beforeSend) {\r\n var beforeResult = option.beforeSend(xhr);\r\n if (beforeResult && typeof beforeResult === 'object') {\r\n if (beforeResult.prevent) {\r\n // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传\r\n return beforeResult.msg;\r\n }\r\n }\r\n }\r\n // 服务端返回之后\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState !== 4)\r\n return;\r\n var status = xhr.status;\r\n if (status < 200)\r\n return; // 请求发送过程中,尚未返回\r\n if (status >= 300 && status < 400)\r\n return; // 重定向\r\n if (status >= 400) {\r\n // 40x 50x 报错\r\n console.error('wangEditor - XHR 报错,状态码 ' + status);\r\n if (option.onError)\r\n option.onError(xhr); // 有,则执行 onError 函数即可\r\n return;\r\n }\r\n // status = 200 ,得到结果\r\n var resultStr = xhr.responseText;\r\n var result;\r\n if (typeof resultStr !== 'object') {\r\n try {\r\n result = JSON.parse(resultStr);\r\n }\r\n catch (ex) {\r\n console.error('wangEditor - 返回结果不是 JSON 格式', resultStr);\r\n if (option.onFail)\r\n option.onFail(xhr, resultStr);\r\n return;\r\n }\r\n }\r\n else {\r\n result = resultStr;\r\n }\r\n option.onSuccess(xhr, result);\r\n };\r\n // 发送请求\r\n xhr.send(option.formData || null);\r\n return xhr;\r\n}\r\nexports.default = post;\r\n","\"use strict\";\r\n/**\r\n * @description 上传进度条\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar Progress = /** @class */ (function () {\r\n function Progress(editor) {\r\n this.editor = editor;\r\n this.$textContainer = editor.$textContainerElem;\r\n this.$bar = dom_core_1.default('<div class=\"w-e-progress\"></div>');\r\n this.isShow = false;\r\n this.time = 0;\r\n this.timeoutId = 0;\r\n }\r\n /**\r\n * 显示进度条\r\n * @param progress 进度百分比\r\n */\r\n Progress.prototype.show = function (progress) {\r\n var _this = this;\r\n // 不要重新显示\r\n if (this.isShow) {\r\n return;\r\n }\r\n this.isShow = true;\r\n // 渲染 $bar\r\n var $bar = this.$bar;\r\n var $textContainer = this.$textContainer;\r\n $textContainer.append($bar);\r\n // 改变进度条(防抖,100ms 渲染一次)\r\n if (Date.now() - this.time > 100) {\r\n if (progress <= 1) {\r\n $bar.css('width', progress * 100 + '%');\r\n this.time = Date.now();\r\n }\r\n }\r\n // 500ms 之后隐藏\r\n var timeoutId = this.timeoutId;\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n this.timeoutId = window.setTimeout(function () {\r\n _this.hide();\r\n }, 500);\r\n };\r\n /**\r\n * 隐藏\r\n */\r\n Progress.prototype.hide = function () {\r\n var $bar = this.$bar;\r\n $bar.remove();\r\n this.isShow = false;\r\n this.time = 0;\r\n this.timeoutId = 0;\r\n };\r\n return Progress;\r\n}());\r\nexports.default = Progress;\r\n","module.exports = require(\"core-js-pure/stable/date/now\");","var parent = require('../../es/date/now');\n\nmodule.exports = parent;\n","require('../../modules/es.date.now');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date.now;\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.github.io/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","\"use strict\";\r\n/**\r\n * @description 绑定图片的事件\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar paste_img_1 = __importDefault(require(\"./paste-img\"));\r\nvar drop_img_1 = __importDefault(require(\"./drop-img\"));\r\nvar drag_size_1 = __importDefault(require(\"./drag-size\"));\r\nvar tooltip_event_1 = __importDefault(require(\"./tooltip-event\"));\r\n/**\r\n * 绑定事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindEvent(editor) {\r\n // 粘贴图片\r\n paste_img_1.default(editor);\r\n // 拖拽图片\r\n drop_img_1.default(editor);\r\n // 可再扩展其他事件...如图片 tooltip 等\r\n // 拖拽图片尺寸\r\n drag_size_1.default(editor);\r\n //Tooltip\r\n tooltip_event_1.default(editor);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\n/**\r\n * @description 粘贴图片\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar paste_event_1 = require(\"../../../text/paste/paste-event\");\r\nvar upload_img_1 = __importDefault(require(\"../upload-img\"));\r\n/**\r\n * 剪切板是否有 text 或者 html ?\r\n * @param editor 编辑器对象\r\n * @param e 粘贴事件参数\r\n */\r\nfunction _haveTextOrHtml(editor, e) {\r\n var config = editor.config;\r\n var pasteFilterStyle = config.pasteFilterStyle;\r\n var pasteIgnoreImg = config.pasteIgnoreImg;\r\n var pasteHtml = paste_event_1.getPasteHtml(e, pasteFilterStyle, pasteIgnoreImg);\r\n var pasteText = paste_event_1.getPasteText(e);\r\n if (pasteHtml)\r\n return true;\r\n if (pasteText)\r\n return true;\r\n return false; // text html 都没有,则返回 false\r\n}\r\n/**\r\n * 粘贴图片事件方法\r\n * @param e 事件参数\r\n */\r\nfunction pasteImgHandler(e, editor) {\r\n if (_haveTextOrHtml(editor, e)) {\r\n // 粘贴过来的有 text 或者 html ,则不执行粘贴图片逻辑\r\n return;\r\n }\r\n // 获取粘贴的图片列表\r\n var pastedFiles = paste_event_1.getPasteImgs(e);\r\n if (!pastedFiles.length) {\r\n return;\r\n }\r\n // code 中忽略(暂不管它)\r\n // 执行上传\r\n var uploadImg = new upload_img_1.default(editor);\r\n uploadImg.uploadImg(pastedFiles);\r\n}\r\n/**\r\n * 粘贴图片\r\n * @param editor 编辑器对象\r\n * @param pasteEvents 粘贴事件列表\r\n */\r\nfunction bindPasteImg(editor) {\r\n // 绑定 paste 事件\r\n editor.txt.eventHooks.pasteEvents.push(function (e) {\r\n pasteImgHandler(e, editor);\r\n });\r\n}\r\nexports.default = bindPasteImg;\r\n","\"use strict\";\r\n/**\r\n * @description 拖拽上传图片\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar upload_img_1 = __importDefault(require(\"../upload-img\"));\r\nfunction bindDropImg(editor) {\r\n /**\r\n * 拖拽图片的事件\r\n * @param e 事件参数\r\n */\r\n function dropImgHandler(e) {\r\n var files = e.dataTransfer && e.dataTransfer.files;\r\n if (!files || !files.length) {\r\n return;\r\n }\r\n // 上传图片\r\n var uploadImg = new upload_img_1.default(editor);\r\n uploadImg.uploadImg(files);\r\n }\r\n // 绑定 drop 事件\r\n editor.txt.eventHooks.dropEvents.push(dropImgHandler);\r\n}\r\nexports.default = bindDropImg;\r\n","\"use strict\";\r\n/**\r\n * @description 图片拖拽事件绑定\r\n * @author xiaokyo\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nrequire(\"../../../assets/style/drag-size.less\");\r\nvar util_1 = require(\"../../../utils/util\");\r\n/**\r\n * 设置拖拽框的rect\r\n * @param $drag drag Dom\r\n * @param width 要设置的宽度\r\n * @param height 要设置的高度\r\n * @param left 要设置的左边\r\n * @param top 要设置的顶部距离\r\n */\r\nfunction setDragStyle($drag, width, height, left, top) {\r\n $drag.attr('style', \"width:\" + width + \"px; height:\" + height + \"px; left:\" + left + \"px; top:\" + top + \"px;\");\r\n}\r\n/**\r\n * 生成一个图片指定大小的拖拽框\r\n * @param editor 编辑器实例\r\n * @param $textContainerElem 编辑框对象\r\n */\r\nfunction createDragBox(editor, $textContainerElem) {\r\n var $drag = dom_core_1.default(\"<div class=\\\"w-e-img-drag-mask\\\">\\n <div class=\\\"w-e-img-drag-show-size\\\"></div>\\n <div class=\\\"w-e-img-drag-rb\\\"></div>\\n </div>\");\r\n $drag.hide();\r\n $textContainerElem.append($drag);\r\n return $drag;\r\n}\r\n/**\r\n * 显示拖拽框并设置宽度\r\n * @param $textContainerElem 编辑框实例\r\n * @param $drag 拖拽框对象\r\n */\r\nfunction showDargBox($textContainerElem, $drag, $img) {\r\n var boxRect = $textContainerElem.getBoundingClientRect();\r\n var rect = $img.getBoundingClientRect();\r\n var rectW = rect.width.toFixed(2);\r\n var rectH = rect.height.toFixed(2);\r\n $drag.find('.w-e-img-drag-show-size').text(rectW + \"px * \" + rectH + \"px\");\r\n setDragStyle($drag, parseFloat(rectW), parseFloat(rectH), rect.left - boxRect.left, rect.top - boxRect.top);\r\n $drag.show();\r\n}\r\n/**\r\n * 生成图片拖拽框的 显示/隐藏 函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var $textContainerElem = editor.$textContainerElem;\r\n var $imgTarget;\r\n // 生成拖拽框\r\n var $drag = createDragBox(editor, $textContainerElem);\r\n /**\r\n * 设置拖拽事件\r\n * @param $drag 拖拽框的domElement\r\n * @param $textContainerElem 编辑器实例\r\n */\r\n function bindDragEvents($drag, $container) {\r\n $drag.on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n $drag.on('mousedown', '.w-e-img-drag-rb', function (e) {\r\n // e.stopPropagation()\r\n e.preventDefault();\r\n if (!$imgTarget)\r\n return;\r\n var firstX = e.clientX;\r\n var firstY = e.clientY;\r\n var boxRect = $container.getBoundingClientRect();\r\n var imgRect = $imgTarget.getBoundingClientRect();\r\n var width = imgRect.width;\r\n var height = imgRect.height;\r\n var left = imgRect.left - boxRect.left;\r\n var top = imgRect.top - boxRect.top;\r\n var ratio = width / height;\r\n var setW = width;\r\n var setH = height;\r\n var $document = dom_core_1.default(document);\r\n function offEvents() {\r\n $document.off('mousemove', mouseMoveHandler);\r\n $document.off('mouseup', mouseUpHandler);\r\n }\r\n function mouseMoveHandler(ev) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n setW = width + (ev.clientX - firstX);\r\n setH = height + (ev.clientY - firstY);\r\n // 等比计算\r\n if (setW / setH != ratio) {\r\n setH = setW / ratio;\r\n }\r\n setW = parseFloat(setW.toFixed(2));\r\n setH = parseFloat(setH.toFixed(2));\r\n $drag\r\n .find('.w-e-img-drag-show-size')\r\n .text(setW.toFixed(2).replace('.00', '') + \"px * \" + setH\r\n .toFixed(2)\r\n .replace('.00', '') + \"px\");\r\n setDragStyle($drag, setW, setH, left, top);\r\n }\r\n $document.on('mousemove', mouseMoveHandler);\r\n function mouseUpHandler() {\r\n $imgTarget.attr('width', setW + '');\r\n $imgTarget.attr('height', setH + '');\r\n var newImgRect = $imgTarget.getBoundingClientRect();\r\n setDragStyle($drag, setW, setH, newImgRect.left - boxRect.left, newImgRect.top - boxRect.top);\r\n // 解绑事件\r\n offEvents();\r\n }\r\n $document.on('mouseup', mouseUpHandler);\r\n // 解绑事件\r\n $document.on('mouseleave', offEvents);\r\n });\r\n }\r\n // 显示拖拽框\r\n function showDrag($target) {\r\n if (util_1.UA.isIE())\r\n return false;\r\n if ($target) {\r\n $imgTarget = $target;\r\n showDargBox($textContainerElem, $drag, $imgTarget);\r\n }\r\n }\r\n // 隐藏拖拽框\r\n function hideDrag() {\r\n $textContainerElem.find('.w-e-img-drag-mask').hide();\r\n }\r\n // 事件绑定\r\n bindDragEvents($drag, $textContainerElem);\r\n // 后期改成 blur 触发\r\n dom_core_1.default(document).on('click', hideDrag);\r\n editor.beforeDestroy(function () {\r\n dom_core_1.default(document).off('click', hideDrag);\r\n });\r\n return {\r\n showDrag: showDrag,\r\n hideDrag: hideDrag,\r\n };\r\n}\r\n/**\r\n * 点击事件委托\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindDragImgSize(editor) {\r\n var _a = createShowHideFn(editor), showDrag = _a.showDrag, hideDrag = _a.hideDrag;\r\n // 显示拖拽框\r\n editor.txt.eventHooks.imgClickEvents.push(showDrag);\r\n // 隐藏拖拽框\r\n editor.txt.eventHooks.textScrollEvents.push(hideDrag);\r\n editor.txt.eventHooks.keyupEvents.push(hideDrag);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideDrag);\r\n editor.txt.eventHooks.menuClickEvents.push(hideDrag);\r\n editor.txt.eventHooks.changeEvents.push(hideDrag);\r\n}\r\nexports.default = bindDragImgSize;\r\n","module.exports = require(\"core-js-pure/stable/parse-float\");","var parent = require('../es/parse-float');\n\nmodule.exports = parent;\n","require('../modules/es.parse-float');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseFloat;\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./drag-size.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-text-container {\\n overflow: hidden;\\n}\\n.w-e-img-drag-mask {\\n position: absolute;\\n z-index: 1;\\n border: 1px dashed #ccc;\\n box-sizing: border-box;\\n}\\n.w-e-img-drag-mask .w-e-img-drag-rb {\\n position: absolute;\\n right: -5px;\\n bottom: -5px;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n background: #ccc;\\n cursor: se-resize;\\n}\\n.w-e-img-drag-mask .w-e-img-drag-show-size {\\n min-width: 110px;\\n height: 22px;\\n line-height: 22px;\\n font-size: 14px;\\n color: #999;\\n position: absolute;\\n left: 0;\\n top: 0;\\n background-color: #999;\\n color: #fff;\\n border-radius: 2px;\\n padding: 0 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\r\n/**\r\n * @description tooltip 事件\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nvar Tooltip_1 = __importDefault(require(\"../../menu-constructors/Tooltip\"));\r\n/**\r\n * 生成 Tooltip 的显示隐藏函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var tooltip;\r\n /**\r\n * 显示 tooltip\r\n * @param $node 链接元素\r\n */\r\n function showImgTooltip($node) {\r\n var conf = [\r\n {\r\n $elem: dom_core_1.default(\"<span class='w-e-icon-trash-o'></span>\"),\r\n onClick: function (editor, $node) {\r\n // 选中img元素\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('delete');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default('<span>30%</span>'),\r\n onClick: function (editor, $node) {\r\n $node.attr('width', '30%');\r\n $node.removeAttr('height');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default('<span>50%</span>'),\r\n onClick: function (editor, $node) {\r\n $node.attr('width', '50%');\r\n $node.removeAttr('height');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default('<span>100%</span>'),\r\n onClick: function (editor, $node) {\r\n $node.attr('width', '100%');\r\n $node.removeAttr('height');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n ];\r\n tooltip = new Tooltip_1.default(editor, $node, conf);\r\n tooltip.create();\r\n }\r\n /**\r\n * 隐藏 tooltip\r\n */\r\n function hideImgTooltip() {\r\n // 移除 tooltip\r\n if (tooltip) {\r\n tooltip.remove();\r\n tooltip = null;\r\n }\r\n }\r\n return {\r\n showImgTooltip: showImgTooltip,\r\n hideImgTooltip: hideImgTooltip,\r\n };\r\n}\r\n/**\r\n * 绑定 tooltip 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindTooltipEvent(editor) {\r\n var _a = createShowHideFn(editor), showImgTooltip = _a.showImgTooltip, hideImgTooltip = _a.hideImgTooltip;\r\n // 点击图片元素是,显示 tooltip\r\n editor.txt.eventHooks.imgClickEvents.push(showImgTooltip);\r\n // 点击其他地方,或者滚动时,隐藏 tooltip\r\n editor.txt.eventHooks.clickEvents.push(hideImgTooltip);\r\n editor.txt.eventHooks.keyupEvents.push(hideImgTooltip);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideImgTooltip);\r\n editor.txt.eventHooks.menuClickEvents.push(hideImgTooltip);\r\n editor.txt.eventHooks.textScrollEvents.push(hideImgTooltip);\r\n editor.txt.eventHooks.imgDragBarMouseDownEvents.push(hideImgTooltip);\r\n // change 时隐藏\r\n editor.txt.eventHooks.changeEvents.push(hideImgTooltip);\r\n}\r\nexports.default = bindTooltipEvent;\r\n","\"use strict\";\r\n/**\r\n * @description 增加缩进/减少缩进\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar operate_element_1 = __importDefault(require(\"./operate-element\"));\r\nvar Indent = /** @class */ (function (_super) {\r\n __extends(Indent, _super);\r\n function Indent(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-indent-increase\\\"></i>\\n </div>\");\r\n var dropListConf = {\r\n width: 130,\r\n title: '设置缩进',\r\n type: 'list',\r\n list: [\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-indent-increase w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.indent.增加缩进') + \"\\n <p>\"),\r\n value: 'increase',\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-indent-decrease w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.indent.减少缩进') + \"\\n <p>\"),\r\n value: 'decrease',\r\n },\r\n ],\r\n clickHandler: function (value) {\r\n // 注意 this 是指向当前的 Indent 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, dropListConf) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n Indent.prototype.command = function (value) {\r\n var editor = this.editor;\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n // 判断 当前选区为 textElem 时\r\n if ($selectionElem && editor.$textElem.equal($selectionElem)) {\r\n // 当 当前选区 等于 textElem 时\r\n // 代表 当前选区 可能是一个选择了一个完整的段落或者多个段落\r\n var $elems = editor.selection.getSelectionRangeTopNodes(editor);\r\n if ($elems.length > 0) {\r\n $elems.forEach(function (item) {\r\n operate_element_1.default(dom_core_1.default(item), value, editor);\r\n });\r\n }\r\n }\r\n else {\r\n // 当 当前选区 不等于 textElem 时\r\n // 代表 当前选区要么是一个段落,要么是段落中的一部分\r\n if ($selectionElem && $selectionElem.length > 0) {\r\n $selectionElem.forEach(function (item) {\r\n operate_element_1.default(dom_core_1.default(item), value, editor);\r\n });\r\n }\r\n }\r\n // 恢复选区\r\n editor.selection.restoreSelection();\r\n this.tryChangeActive();\r\n };\r\n /**\r\n * 尝试改变菜单激活(高亮)状态\r\n */\r\n Indent.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n var $selectionElem = editor.selection.getSelectionStartElem();\r\n var $selectionStartElem = dom_core_1.default($selectionElem).getNodeTop(editor);\r\n if ($selectionStartElem.length <= 0)\r\n return;\r\n if ($selectionStartElem.elems[0].style['paddingLeft'] != '') {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Indent;\r\n}(DropListMenu_1.default));\r\nexports.default = Indent;\r\n","\"use strict\";\r\n/**\r\n * @description 对节点 操作 进行封装\r\n * 获取当前节点的段落\r\n * 根据type判断是增加还是减少缩进\r\n * @author tonghan\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar increase_indent_style_1 = __importDefault(require(\"./increase-indent-style\"));\r\nvar decrease_indent_style_1 = __importDefault(require(\"./decrease-indent-style\"));\r\nvar lengthRegex = /^(\\d+)(\\w+)$/;\r\nvar percentRegex = /^(\\d+)%$/;\r\nfunction parseIndentation(editor) {\r\n var indentation = editor.config.indentation;\r\n if (typeof indentation === 'string') {\r\n if (lengthRegex.test(indentation)) {\r\n var _a = indentation.trim().match(lengthRegex).slice(1, 3), value = _a[0], unit = _a[1];\r\n return {\r\n value: Number(value),\r\n unit: unit,\r\n };\r\n }\r\n else if (percentRegex.test(indentation)) {\r\n return {\r\n value: Number(indentation.trim().match(percentRegex)[1]),\r\n unit: '%',\r\n };\r\n }\r\n }\r\n else if (indentation.value !== void 0 && indentation.unit) {\r\n return indentation;\r\n }\r\n return {\r\n value: 2,\r\n unit: 'em',\r\n };\r\n}\r\nfunction operateElement($node, type, editor) {\r\n var $elem = $node.getNodeTop(editor);\r\n var reg = /^P$/i;\r\n if (reg.test($elem.getNodeName())) {\r\n if (type === 'increase')\r\n increase_indent_style_1.default($elem, parseIndentation(editor));\r\n else if (type === 'decrease')\r\n decrease_indent_style_1.default($elem, parseIndentation(editor));\r\n }\r\n}\r\nexports.default = operateElement;\r\n","\"use strict\";\r\n/**\r\n * @description 增加缩进\r\n * @author tonghan\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction increaseIndentStyle($node, options) {\r\n var $elem = $node.elems[0];\r\n if ($elem.style['paddingLeft'] === '') {\r\n $node.css('padding-left', options.value + options.unit);\r\n }\r\n else {\r\n var oldPL = $elem.style['paddingLeft'];\r\n var oldVal = oldPL.slice(0, oldPL.length - options.unit.length);\r\n var newVal = Number(oldVal) + options.value;\r\n $node.css('padding-left', \"\" + newVal + options.unit);\r\n }\r\n}\r\nexports.default = increaseIndentStyle;\r\n","\"use strict\";\r\n/**\r\n * @description 减少缩进\r\n * @author tonghan\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction decreaseIndentStyle($node, options) {\r\n var $elem = $node.elems[0];\r\n if ($elem.style['paddingLeft'] !== '') {\r\n var oldPL = $elem.style['paddingLeft'];\r\n var oldVal = oldPL.slice(0, oldPL.length - options.unit.length);\r\n var newVal = Number(oldVal) - options.value;\r\n if (newVal > 0) {\r\n $node.css('padding-left', \"\" + newVal + options.unit);\r\n }\r\n else {\r\n $node.css('padding-left', '');\r\n }\r\n }\r\n}\r\nexports.default = decreaseIndentStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description 插入表情\r\n * @author liuwe\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar Emoticon = /** @class */ (function (_super) {\r\n __extends(Emoticon, _super);\r\n function Emoticon(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-happy\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 创建 panel\r\n */\r\n Emoticon.prototype.createPanel = function () {\r\n var conf = create_panel_conf_1.default(this.editor);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 菜单表情点击事件\r\n */\r\n Emoticon.prototype.clickHandler = function () {\r\n this.createPanel();\r\n };\r\n Emoticon.prototype.tryChangeActive = function () { };\r\n return Emoticon;\r\n}(PanelMenu_1.default));\r\nexports.default = Emoticon;\r\n","\"use strict\";\r\n/**\r\n * @description 表情菜单 panel配置\r\n * @author liuwei\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nfunction default_1(editor) {\r\n // 声明emotions数据结构\r\n var emotions = editor.config.emotions;\r\n /* tabs配置项 ==================================================================*/\r\n // 生成表情结构 TODO jele type类型待优化\r\n function GenerateExpressionStructure(ele) {\r\n // 返回为一个数组对象\r\n var res = [];\r\n // 如果type是image类型则生成一个img标签\r\n if (ele.type == 'image') {\r\n res = ele.content.map(function (con) {\r\n if (typeof con == 'string')\r\n return '';\r\n return \"<span title=\\\"\" + con.alt + \"\\\">\\n <img class=\\\"eleImg\\\" style src=\\\"\" + con.src + \"\\\" alt=\\\"[\" + con.alt + \"]\\\">\\n </span>\";\r\n });\r\n res = res.filter(function (s) { return s !== ''; });\r\n }\r\n //否则直接当内容处理\r\n else {\r\n res = ele.content.map(function (con) {\r\n return \"<span class=\\\"eleImg\\\" title=\\\"\" + con + \"\\\">\" + con + \"</span>\";\r\n });\r\n }\r\n return res.join('').replace(/ /g, '');\r\n }\r\n var tabsConf = emotions.map(function (ele) {\r\n return {\r\n title: editor.i18next.t(\"menus.panelMenus.emoticon.\" + ele.title),\r\n // 判断type类型如果是image则以img的形式插入否则以内容\r\n tpl: \"<div>\" + GenerateExpressionStructure(ele) + \"</div>\",\r\n events: [\r\n {\r\n selector: '.eleImg',\r\n type: 'click',\r\n fn: function (e) {\r\n // e为事件对象\r\n var $target = dom_core_1.default(e.target);\r\n var nodeName = $target.getNodeName();\r\n var insertHtml;\r\n if (nodeName === 'IMG') {\r\n // 插入图片\r\n insertHtml = $target.parent().html().trim();\r\n }\r\n else {\r\n // 插入 emoji\r\n insertHtml = '<span>' + $target.html() + '</span>';\r\n }\r\n editor.cmd.do('insertHTML', insertHtml);\r\n // 示函数执行结束之后关闭 panel\r\n return true;\r\n },\r\n },\r\n ],\r\n };\r\n });\r\n /* tabs配置项 =================================================================end*/\r\n // 最终的配置 -----------------------------------------\r\n var conf = {\r\n width: 300,\r\n height: 230,\r\n tabs: tabsConf,\r\n };\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 无序列表/有序列表\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar List = /** @class */ (function (_super) {\r\n __extends(List, _super);\r\n function List(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-list2\\\"></i>\\n </div>\");\r\n var dropListConf = {\r\n width: 130,\r\n title: '序列',\r\n type: 'list',\r\n list: [\r\n {\r\n $elem: dom_core_1.default(\"\\n <p>\\n <i class=\\\"w-e-icon-list2 w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.list.无序列表') + \"\\n <p>\"),\r\n value: 'insertUnorderedList',\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<p>\\n <i class=\\\"w-e-icon-list-numbered w-e-drop-list-item\\\"></i>\\n \" + editor.i18next.t('menus.dropListMenu.list.有序列表') + \"\\n <p>\"),\r\n value: 'insertOrderedList',\r\n },\r\n ],\r\n clickHandler: function (value) {\r\n // 注意 this 是指向当前的 List 对象\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, dropListConf) || this;\r\n return _this;\r\n }\r\n List.prototype.command = function (value) {\r\n var editor = this.editor;\r\n var $textElem = editor.$textElem;\r\n editor.selection.restoreSelection();\r\n // 判断是否已经执行了命令\r\n if (editor.cmd.queryCommandState(value)) {\r\n return;\r\n }\r\n //禁止在table中添加列表\r\n var $selectionElem = dom_core_1.default(editor.selection.getSelectionContainerElem());\r\n var $dom = dom_core_1.default($selectionElem.elems[0]).parentUntil('TABLE', $selectionElem.elems[0]);\r\n if ($dom && dom_core_1.default($dom.elems[0]).getNodeName() === 'TABLE') {\r\n return;\r\n }\r\n editor.cmd.do(value);\r\n // 验证列表是否被包裹在 <p> 之内\r\n if ($selectionElem.getNodeName() === 'LI') {\r\n $selectionElem = $selectionElem.parent();\r\n }\r\n if (/^ol|ul$/i.test($selectionElem.getNodeName()) === false) {\r\n return;\r\n }\r\n if ($selectionElem.equal($textElem)) {\r\n // 证明是顶级标签,没有被 <p> 包裹\r\n return;\r\n }\r\n var $parent = $selectionElem.parent();\r\n if ($parent.equal($textElem)) {\r\n // $parent 是顶级标签,不能删除\r\n return;\r\n }\r\n $selectionElem.insertAfter($parent);\r\n $parent.remove();\r\n // 恢复选区\r\n editor.selection.restoreSelection();\r\n this.tryChangeActive();\r\n };\r\n List.prototype.tryChangeActive = function () { };\r\n return List;\r\n}(DropListMenu_1.default));\r\nexports.default = List;\r\n","\"use strict\";\r\n/**\r\n * @description 段落行高 LineHeight\r\n * @author lichunlin\r\n *\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DropListMenu_1 = __importDefault(require(\"../menu-constructors/DropListMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar lineHeightList_1 = __importDefault(require(\"./lineHeightList\"));\r\nvar util_1 = require(\"../../utils/util\");\r\nvar LineHeight = /** @class */ (function (_super) {\r\n __extends(LineHeight, _super);\r\n function LineHeight(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-row-height\\\"></i>\\n </div>\");\r\n var lineHeightMenu = new lineHeightList_1.default(editor, editor.config.lineHeights);\r\n var DropListMenu = {\r\n width: 100,\r\n title: '设置行高',\r\n type: 'list',\r\n list: lineHeightMenu.getItemList(),\r\n clickHandler: function (value) {\r\n //保存焦点\r\n editor.selection.saveRange();\r\n _this.command(value);\r\n },\r\n };\r\n _this = _super.call(this, $elem, editor, DropListMenu) || this;\r\n return _this;\r\n }\r\n /**\r\n * 执行命令\r\n * @param value value\r\n */\r\n LineHeight.prototype.command = function (value) {\r\n var _this = this;\r\n var _a;\r\n var selection = window.getSelection ? window.getSelection() : document.getSelection();\r\n //允许设置dom\r\n var allowArray = ['P'];\r\n var editor = this.editor;\r\n var st = '';\r\n //恢复焦点\r\n editor.selection.restoreSelection();\r\n var $selectionElem = dom_core_1.default(editor.selection.getSelectionContainerElem());\r\n var $selectionAll = dom_core_1.default(editor.selection.getSelectionContainerElem());\r\n // let dom:HTMLElement= $selectionElem.elems[0]\r\n var dom = dom_core_1.default(editor.selection.getSelectionStartElem()).elems[0];\r\n //获取元素的style\r\n var style = '';\r\n var styleList = [];\r\n //点击默认的时候删除line-height属性 并重新设置 style\r\n var styleStr = '';\r\n //选中多行操作\r\n if ($selectionElem && editor.$textElem.equal($selectionElem)) {\r\n var isIE = util_1.UA.isIE();\r\n if (isIE) {\r\n // ie下禁止多行操作 避免多行造成除第一行外的段落内容都被删除\r\n return;\r\n }\r\n //获取range 开头结束的dom在 祖父元素的下标\r\n var indexStore_1 = [];\r\n var arrayDom_a = [];\r\n var arrayDom_b = [];\r\n //获取range 开头结束的dom\r\n var StartElem_1 = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n var EndElem_1 = dom_core_1.default(editor.selection.getSelectionEndElem());\r\n var childList = (_a = editor.selection.getRange()) === null || _a === void 0 ? void 0 : _a.commonAncestorContainer.childNodes;\r\n arrayDom_a.push(this.getDom(StartElem_1.elems[0]));\r\n childList === null || childList === void 0 ? void 0 : childList.forEach(function (item, index) {\r\n if (item === _this.getDom(StartElem_1.elems[0])) {\r\n indexStore_1.push(index);\r\n }\r\n if (item === _this.getDom(EndElem_1.elems[0])) {\r\n indexStore_1.push(index);\r\n }\r\n });\r\n //遍历 获取头尾之间的dom元素\r\n var i = 0;\r\n var d = void 0;\r\n arrayDom_b.push(this.getDom(StartElem_1.elems[0]));\r\n while (arrayDom_a[i] !== this.getDom(EndElem_1.elems[0])) {\r\n d = dom_core_1.default(arrayDom_a[i].nextElementSibling).elems[0];\r\n if (allowArray.indexOf(dom_core_1.default(d).getNodeName()) !== -1) {\r\n arrayDom_b.push(d);\r\n arrayDom_a.push(d);\r\n }\r\n else {\r\n arrayDom_a.push(d);\r\n }\r\n i++;\r\n }\r\n //设置段落选取 全选\r\n if (dom_core_1.default(arrayDom_a[0]).getNodeName() !== 'P') {\r\n i = 0;\r\n //遍历集合得到第一个p标签的下标\r\n for (var k = 0; k < arrayDom_a.length; k++) {\r\n if (dom_core_1.default(arrayDom_a[k]).getNodeName() === 'P') {\r\n i = k;\r\n break;\r\n }\r\n }\r\n //i===0 说明选区中没有p段落\r\n if (i === 0) {\r\n return;\r\n }\r\n var _i = 0;\r\n while (_i !== i) {\r\n arrayDom_a.shift();\r\n _i++;\r\n }\r\n }\r\n //设置替换的选区\r\n this.setRange(arrayDom_a[0], arrayDom_a[arrayDom_a.length - 1]);\r\n //生成innerHtml html字符串\r\n arrayDom_a.forEach(function (item) {\r\n style = item.getAttribute('style');\r\n styleList = style ? style.split(';') : [];\r\n styleStr = '';\r\n if (dom_core_1.default(item).getNodeName() === 'P') {\r\n //判断是否 点击默认\r\n value\r\n ? (styleStr = _this.styleProcessing(styleList) + (\"line-height:\" + value + \";\"))\r\n : (styleStr = _this.styleProcessing(styleList));\r\n st =\r\n st +\r\n (\"<\" + dom_core_1.default(item).getNodeName().toLowerCase() + \" style=\\\"\" + styleStr + \"\\\">\" + item.innerHTML + \"</\" + dom_core_1.default(item).getNodeName().toLowerCase() + \">\");\r\n }\r\n else {\r\n styleStr = _this.styleProcessing(styleList);\r\n st =\r\n st +\r\n (\"<\" + dom_core_1.default(item).getNodeName().toLowerCase() + \" style=\\\"\" + styleStr + \"\\\">\" + item.innerHTML + \"</\" + dom_core_1.default(item).getNodeName().toLowerCase() + \">\");\r\n }\r\n });\r\n this.action(st, editor);\r\n //恢复已选择的选区\r\n dom = $selectionAll.elems[0];\r\n this.setRange(dom.children[indexStore_1[0]], dom.children[indexStore_1[1]]);\r\n return;\r\n }\r\n //遍历dom 获取祖父元素 直到contenteditable属性的div标签\r\n dom = this.getDom(dom);\r\n //校验允许lineheight设置标签\r\n if (allowArray.indexOf(dom_core_1.default(dom).getNodeName()) === -1) {\r\n return;\r\n }\r\n style = dom.getAttribute('style');\r\n styleList = style ? style.split(';') : [];\r\n //全选 dom下所有的内容\r\n selection === null || selection === void 0 ? void 0 : selection.selectAllChildren(dom);\r\n //保存range\r\n editor.selection.saveRange();\r\n //判断是否存在value 默认 移除line-height\r\n if (!value) {\r\n if (style) {\r\n styleStr = this.styleProcessing(styleList);\r\n //避免没有其它属性 只留下 ‘style’ 减少代码\r\n if (styleStr === '') {\r\n st = \"<\" + dom_core_1.default(dom).getNodeName().toLowerCase() + \">\" + dom.innerHTML + \"</\" + dom_core_1.default(dom)\r\n .getNodeName()\r\n .toLowerCase() + \">\";\r\n }\r\n else {\r\n st = \"<\" + dom_core_1.default(dom).getNodeName().toLowerCase() + \" style=\\\"\" + styleStr + \"\\\">\" + dom.innerHTML + \"</\" + dom_core_1.default(dom).getNodeName().toLowerCase() + \">\";\r\n }\r\n this.action(st, editor);\r\n }\r\n return;\r\n }\r\n if (style) {\r\n //存在style 检索其它style属性\r\n styleStr = this.styleProcessing(styleList) + (\"line-height:\" + value + \";\");\r\n }\r\n else {\r\n styleStr = \"line-height:\" + value + \";\";\r\n }\r\n st = \"<\" + dom_core_1.default(dom).getNodeName().toLowerCase() + \" style=\\\"\" + styleStr + \"\\\">\" + dom.innerHTML + \"</\" + dom_core_1.default(dom)\r\n .getNodeName()\r\n .toLowerCase() + \">\";\r\n //防止BLOCKQUOTE叠加\r\n if (dom_core_1.default(dom).getNodeName() === 'BLOCKQUOTE') {\r\n dom_core_1.default(dom).css('line-height', value);\r\n }\r\n else {\r\n this.action(st, editor);\r\n }\r\n };\r\n /**\r\n * 遍历dom 获取祖父元素 直到contenteditable属性的div标签\r\n *\r\n */\r\n LineHeight.prototype.getDom = function (dom) {\r\n var DOM = dom_core_1.default(dom).elems[0];\r\n if (!DOM.parentNode) {\r\n return DOM;\r\n }\r\n function getParentNode($node, editor) {\r\n var $parent = dom_core_1.default($node.parentNode);\r\n if (editor.$textElem.equal($parent)) {\r\n return $node;\r\n }\r\n else {\r\n return getParentNode($parent.elems[0], editor);\r\n }\r\n }\r\n DOM = getParentNode(DOM, this.editor);\r\n return DOM;\r\n };\r\n /**\r\n * 执行 document.execCommand\r\n *\r\n */\r\n LineHeight.prototype.action = function (html_str, editor) {\r\n editor.cmd.do('insertHTML', html_str);\r\n };\r\n /**\r\n * style 处理\r\n */\r\n LineHeight.prototype.styleProcessing = function (styleList) {\r\n var styleStr = '';\r\n styleList.forEach(function (item) {\r\n item !== '' && item.indexOf('line-height') === -1\r\n ? (styleStr = styleStr + item + ';')\r\n : '';\r\n });\r\n return styleStr;\r\n };\r\n /**\r\n * 段落全选 比如:避免11变成111\r\n */\r\n LineHeight.prototype.setRange = function (startDom, endDom) {\r\n var editor = this.editor;\r\n var selection = window.getSelection ? window.getSelection() : document.getSelection();\r\n //清除所有的选区\r\n selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();\r\n var range = document.createRange();\r\n var star = startDom;\r\n var end = endDom;\r\n range.setStart(star, 0);\r\n range.setEnd(end, 1);\r\n selection === null || selection === void 0 ? void 0 : selection.addRange(range);\r\n //保存设置好的选区\r\n editor.selection.saveRange();\r\n //清除所有的选区\r\n selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();\r\n //恢复选区\r\n editor.selection.restoreSelection();\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n LineHeight.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n if ($selectionElem && editor.$textElem.equal($selectionElem)) {\r\n //避免选中多行设置\r\n return;\r\n }\r\n var dom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n dom = this.getDom(dom.elems[0]);\r\n var style = dom.getAttribute('style') ? dom.getAttribute('style') : '';\r\n //判断当前标签是否具有line-height属性\r\n if (style && style.indexOf('line-height') !== -1) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return LineHeight;\r\n}(DropListMenu_1.default));\r\nexports.default = LineHeight;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description 行高 菜单\r\n * @author lichunlin\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar lineHeightList = /** @class */ (function () {\r\n function lineHeightList(editor, list) {\r\n var _this = this;\r\n this.itemList = [{ $elem: dom_core_1.default(\"<span>\" + editor.i18next.t('默认') + \"</span>\"), value: '' }];\r\n list.forEach(function (item) {\r\n _this.itemList.push({\r\n $elem: dom_core_1.default(\"<span>\" + item + \"</span>\"),\r\n value: item,\r\n });\r\n });\r\n }\r\n lineHeightList.prototype.getItemList = function () {\r\n return this.itemList;\r\n };\r\n return lineHeightList;\r\n}());\r\nexports.default = lineHeightList;\r\n","\"use strict\";\r\n/**\r\n * @description 撤销\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar Undo = /** @class */ (function (_super) {\r\n __extends(Undo, _super);\r\n function Undo(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-undo\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Undo.prototype.clickHandler = function () {\r\n this.editor.history.revoke();\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Undo.prototype.tryChangeActive = function () {\r\n // 标准模式下才进行操作\r\n if (!this.editor.isCompatibleMode) {\r\n if (this.editor.history.size[0]) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n }\r\n };\r\n return Undo;\r\n}(BtnMenu_1.default));\r\nexports.default = Undo;\r\n","\"use strict\";\r\n/**\r\n * @description 重做\r\n * @author tonghan\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar Redo = /** @class */ (function (_super) {\r\n __extends(Redo, _super);\r\n function Redo(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"w-e-icon-redo\\\"></i>\\n </div>\");\r\n _this = _super.call(this, $elem, editor) || this;\r\n return _this;\r\n }\r\n /**\r\n * 点击事件\r\n */\r\n Redo.prototype.clickHandler = function () {\r\n this.editor.history.restore();\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n Redo.prototype.tryChangeActive = function () {\r\n // 标准模式下才进行操作\r\n if (!this.editor.isCompatibleMode) {\r\n if (this.editor.history.size[1]) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n }\r\n };\r\n return Redo;\r\n}(BtnMenu_1.default));\r\nexports.default = Redo;\r\n","\"use strict\";\r\n/**\r\n * @description 创建table\r\n * @author lichunlin\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar index_1 = __importDefault(require(\"./bind-event/index\"));\r\nvar Table = /** @class */ (function (_super) {\r\n __extends(Table, _super);\r\n function Table(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-table2\"></i></div>');\r\n _this = _super.call(this, $elem, editor) || this;\r\n // 绑定事件\r\n index_1.default(editor);\r\n return _this;\r\n }\r\n /**\r\n * 菜单点击事件\r\n */\r\n Table.prototype.clickHandler = function () {\r\n this.createPanel();\r\n };\r\n /**\r\n * 创建 panel\r\n */\r\n Table.prototype.createPanel = function () {\r\n var conf = create_panel_conf_1.default(this.editor);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 尝试修改菜单 active 状态\r\n */\r\n Table.prototype.tryChangeActive = function () { };\r\n return Table;\r\n}(PanelMenu_1.default));\r\nexports.default = Table;\r\n","\"use strict\";\r\n/**\r\n * @description table 菜单 panel tab 配置\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nrequire(\"../../assets/style/create-panel-conf.less\");\r\nvar create_table_1 = __importDefault(require(\"./create-table\"));\r\nfunction default_1(editor) {\r\n var createTable = new create_table_1.default(editor);\r\n // panel 中需要用到的id\r\n var colId = util_1.getRandom('w-col-id');\r\n var rowId = util_1.getRandom('w-row-id');\r\n var insertBtnId = util_1.getRandom('btn-link');\r\n var i18nPrefix = 'menus.panelMenus.table.';\r\n var t = function (text) {\r\n return editor.i18next.t(text);\r\n };\r\n // tabs 配置 -----------------------------------------\r\n var tabsConf = [\r\n {\r\n title: t(i18nPrefix + \"\\u63D2\\u5165\\u8868\\u683C\"),\r\n tpl: \"<div>\\n <div class=\\\"w-e-table\\\">\\n <span>\" + t('创建') + \"</span>\\n <input id=\\\"\" + rowId + \"\\\" type=\\\"text\\\" class=\\\"w-e-table-input\\\" value=\\\"5\\\"/></td>\\n <span>\" + t(i18nPrefix + \"\\u884C\") + \"</span>\\n <input id=\\\"\" + colId + \"\\\" type=\\\"text\\\" class=\\\"w-e-table-input\\\" value=\\\"5\\\"/></td>\\n <span>\" + (t(i18nPrefix + \"\\u5217\") + t(i18nPrefix + \"\\u7684\") + t(i18nPrefix + \"\\u8868\\u683C\")) + \"</span>\\n </div>\\n <div class=\\\"w-e-button-container\\\">\\n <button id=\\\"\" + insertBtnId + \"\\\" class=\\\"right\\\">\" + t('插入') + \"</button>\\n </div>\\n </div>\",\r\n events: [\r\n {\r\n selector: '#' + insertBtnId,\r\n type: 'click',\r\n fn: function () {\r\n var colValue = Number(dom_core_1.default('#' + colId).val());\r\n var rowValue = Number(dom_core_1.default('#' + rowId).val());\r\n //校验是否传值\r\n if (colValue && rowValue) {\r\n createTable.createAction(rowValue, colValue);\r\n }\r\n // 返回 true 表示函数执行结束之后关闭 panel\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n // tabs end\r\n // 最终的配置 -----------------------------------------\r\n var conf = {\r\n width: 330,\r\n height: 0,\r\n tabs: [],\r\n };\r\n conf.tabs.push(tabsConf[0]);\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./create-panel-conf.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-table {\\n display: flex;\\n}\\n.w-e-table .w-e-table-input {\\n width: 40px;\\n text-align: center!important;\\n margin: 0 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\r\n/**\r\n * @description 创建tabel\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar CreateTable = /** @class */ (function () {\r\n function CreateTable(editor) {\r\n this.editor = editor;\r\n }\r\n /**\r\n * 执行创建\r\n * @param rowValue 行数\r\n * @param colValue 列数\r\n */\r\n CreateTable.prototype.createAction = function (rowValue, colValue) {\r\n var editor = this.editor;\r\n //不允许在有序列表中添加table\r\n var $selectionElem = dom_core_1.default(editor.selection.getSelectionContainerElem());\r\n var $ul = dom_core_1.default($selectionElem.elems[0]).parentUntil('UL', $selectionElem.elems[0]);\r\n var $ol = dom_core_1.default($selectionElem.elems[0]).parentUntil('OL', $selectionElem.elems[0]);\r\n if ($ul || $ol) {\r\n return;\r\n }\r\n var tableDom = this.createTableHtml(rowValue, colValue);\r\n editor.cmd.do('insertHTML', tableDom);\r\n };\r\n /**\r\n * 创建table、行、列\r\n * @param rowValue 行数\r\n * @param colValue 列数\r\n */\r\n CreateTable.prototype.createTableHtml = function (rowValue, colValue) {\r\n var rowStr = '';\r\n var colStr = '';\r\n for (var i = 0; i < rowValue; i++) {\r\n colStr = '';\r\n for (var j = 0; j < colValue; j++) {\r\n if (i === 0) {\r\n colStr = colStr + '<th></th>';\r\n }\r\n else {\r\n colStr = colStr + '<td></td>';\r\n }\r\n }\r\n rowStr = rowStr + '<tr>' + colStr + '</tr>';\r\n }\r\n var tableDom = \"<table border=\\\"0\\\" width=\\\"100%\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\"><tbody>\" +\r\n rowStr +\r\n '</tbody></table><p><br></p>';\r\n return tableDom;\r\n };\r\n return CreateTable;\r\n}());\r\nexports.default = CreateTable;\r\n","\"use strict\";\r\n/**\r\n * @description 绑定点击事件\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tooltip_event_1 = __importDefault(require(\"./tooltip-event\"));\r\n/**\r\n * 绑定事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindEvent(editor) {\r\n //Tooltip\r\n tooltip_event_1.default(editor);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\n/**\r\n * @description tooltip 事件\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nvar Tooltip_1 = __importDefault(require(\"../../menu-constructors/Tooltip\"));\r\n//操作事件\r\nvar operating_event_1 = __importDefault(require(\"./event/operating-event\"));\r\nvar getNode_1 = __importDefault(require(\"./event/getNode\"));\r\n/**\r\n * 生成 Tooltip 的显示隐藏函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var tooltip;\r\n /**\r\n * 显示 tooltip\r\n * @param table元素\r\n */\r\n function showTableTooltip($node) {\r\n var getnode = new getNode_1.default(editor);\r\n var i18nPrefix = 'menus.panelMenus.table.';\r\n var t = function (text, prefix) {\r\n if (prefix === void 0) { prefix = i18nPrefix; }\r\n return editor.i18next.t(prefix + text);\r\n };\r\n var conf = [\r\n {\r\n // $elem: $(\"<span class='w-e-icon-trash-o'></span>\"),\r\n $elem: dom_core_1.default(\"<span>\" + t('删除表格') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 选中img元素\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('insertHTML', '<p><br></p>');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('添加行') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 禁止多选操作\r\n var isMore = isMoreRowAction(editor);\r\n if (isMore) {\r\n return true;\r\n }\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前行\r\n var $currentRow = getnode.getRowNode(selectDom.elems[0]);\r\n if (!$currentRow) {\r\n return true;\r\n }\r\n //获取当前行的index\r\n var index = Number(getnode.getCurrentRowIndex($node.elems[0], $currentRow));\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //生成新的table\r\n var newdom = getnode.getTableHtml(operating_event_1.default.ProcessingRow(dom_core_1.default(htmlStr), index).elems[0]);\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('删除行') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 禁止多选操作\r\n var isMore = isMoreRowAction(editor);\r\n if (isMore) {\r\n return true;\r\n }\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前行\r\n var $currentRow = getnode.getRowNode(selectDom.elems[0]);\r\n if (!$currentRow) {\r\n return true;\r\n }\r\n //获取当前行的index\r\n var index = Number(getnode.getCurrentRowIndex($node.elems[0], $currentRow));\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //获取新生成的table 判断是否是最后一行被删除 是 删除整个table\r\n var trLength = operating_event_1.default.DeleteRow(dom_core_1.default(htmlStr), index).elems[0]\r\n .childNodes[0].childNodes.length;\r\n //生成新的table\r\n var newdom = '';\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n if (trLength === 0) {\r\n newdom = '<p><br></p>';\r\n }\r\n else {\r\n newdom = getnode.getTableHtml(operating_event_1.default.DeleteRow(dom_core_1.default(htmlStr), index).elems[0]);\r\n }\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('添加列') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 禁止多选操作\r\n var isMore = isMoreRowAction(editor);\r\n if (isMore) {\r\n return true;\r\n }\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前列的index\r\n var index = getnode.getCurrentColIndex(selectDom.elems[0]);\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //生成新的table\r\n var newdom = getnode.getTableHtml(operating_event_1.default.ProcessingCol(dom_core_1.default(htmlStr), index).elems[0]);\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('删除列') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 禁止多选操作\r\n var isMore = isMoreRowAction(editor);\r\n if (isMore) {\r\n return true;\r\n }\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前列的index\r\n var index = getnode.getCurrentColIndex(selectDom.elems[0]);\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //获取新生成的table 判断是否是最后一列被删除 是 删除整个table\r\n var tdLength = operating_event_1.default.DeleteCol(dom_core_1.default(htmlStr), index).elems[0]\r\n .childNodes[0].childNodes[0].childNodes.length;\r\n //生成新的table\r\n var newdom = '';\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n if (tdLength === 1) {\r\n newdom = '<p><br></p>';\r\n }\r\n else {\r\n newdom = getnode.getTableHtml(operating_event_1.default.DeleteCol(dom_core_1.default(htmlStr), index).elems[0]);\r\n }\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('设置表头') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n // 禁止多选操作\r\n var isMore = isMoreRowAction(editor);\r\n if (isMore) {\r\n return true;\r\n }\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前行\r\n var $currentRow = getnode.getRowNode(selectDom.elems[0]);\r\n if (!$currentRow) {\r\n return true;\r\n }\r\n //获取当前行的index\r\n var index = Number(getnode.getCurrentRowIndex($node.elems[0], $currentRow));\r\n if (index !== 0) {\r\n //控制在table的第一行\r\n index = 0;\r\n }\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //生成新的table\r\n var newdom = getnode.getTableHtml(operating_event_1.default.setTheHeader(dom_core_1.default(htmlStr), index, 'th').elems[0]);\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('取消表头') + \"</span>\"),\r\n onClick: function (editor, $node) {\r\n //当前元素\r\n var selectDom = dom_core_1.default(editor.selection.getSelectionStartElem());\r\n //当前行\r\n var $currentRow = getnode.getRowNode(selectDom.elems[0]);\r\n if (!$currentRow) {\r\n return true;\r\n }\r\n //获取当前行的index\r\n var index = Number(getnode.getCurrentRowIndex($node.elems[0], $currentRow));\r\n if (index !== 0) {\r\n //控制在table的第一行\r\n index = 0;\r\n }\r\n //生成要替换的html\r\n var htmlStr = getnode.getTableHtml($node.elems[0]);\r\n //生成新的table\r\n var newdom = getnode.getTableHtml(operating_event_1.default.setTheHeader(dom_core_1.default(htmlStr), index, 'td').elems[0]);\r\n // 选中table\r\n editor.selection.createRangeByElem($node);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('insertHTML', newdom);\r\n return true;\r\n },\r\n },\r\n ];\r\n tooltip = new Tooltip_1.default(editor, $node, conf);\r\n tooltip.create();\r\n }\r\n /**\r\n * 隐藏 tooltip\r\n */\r\n function hideTableTooltip() {\r\n // 移除 tooltip\r\n if (tooltip) {\r\n tooltip.remove();\r\n tooltip = null;\r\n }\r\n }\r\n return {\r\n showTableTooltip: showTableTooltip,\r\n hideTableTooltip: hideTableTooltip,\r\n };\r\n}\r\n/**\r\n * 判断是否是多行\r\n */\r\nfunction isMoreRowAction(editor) {\r\n var $startElem = editor.selection.getSelectionStartElem();\r\n var $endElem = editor.selection.getSelectionEndElem();\r\n if (($startElem === null || $startElem === void 0 ? void 0 : $startElem.elems[0]) !== ($endElem === null || $endElem === void 0 ? void 0 : $endElem.elems[0])) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * 绑定 tooltip 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindTooltipEvent(editor) {\r\n var _a = createShowHideFn(editor), showTableTooltip = _a.showTableTooltip, hideTableTooltip = _a.hideTableTooltip;\r\n // 点击table元素是,显示 tooltip\r\n editor.txt.eventHooks.tableClickEvents.push(showTableTooltip);\r\n // 点击其他地方,或者滚动时,隐藏 tooltip\r\n editor.txt.eventHooks.clickEvents.push(hideTableTooltip);\r\n editor.txt.eventHooks.keyupEvents.push(hideTableTooltip);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideTableTooltip);\r\n editor.txt.eventHooks.menuClickEvents.push(hideTableTooltip);\r\n editor.txt.eventHooks.textScrollEvents.push(hideTableTooltip);\r\n}\r\nexports.default = bindTooltipEvent;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../../utils/dom-core\"));\r\n/**\r\n * 处理新添加行\r\n * @param $node 整个table\r\n * @param _index 行的inde\r\n */\r\nfunction ProcessingRow($node, _index) {\r\n //执行获取tbody节点\r\n var $dom = generateDomAction($node);\r\n //取出所有的行\r\n var domArray = Array.prototype.slice.apply($dom.childNodes);\r\n //列的数量\r\n var childNodesLenght = domArray[0].childNodes.length;\r\n //创建新tr\r\n var tr = document.createElement('tr');\r\n for (var i = 0; i < childNodesLenght; i++) {\r\n var td = document.createElement('td');\r\n tr.appendChild(td);\r\n }\r\n //插入集合中\r\n domArray.splice(_index + 1, 0, tr);\r\n //移除、新增节点事件\r\n removeAndInsertAction($dom, domArray);\r\n return dom_core_1.default($dom.parentNode);\r\n}\r\n/**\r\n * 处理新添加列\r\n * @param $node 整个table\r\n * @param _index 列的inde\r\n */\r\nfunction ProcessingCol($node, _index) {\r\n //执行获取tbody节点\r\n var $dom = generateDomAction($node);\r\n //取出所有的行\r\n var domArray = Array.prototype.slice.apply($dom.childNodes);\r\n var _loop_1 = function (i) {\r\n var cArray = [];\r\n //取出所有的列\r\n domArray[i].childNodes.forEach(function (item) {\r\n cArray.push(item);\r\n });\r\n //移除行的旧的子节点\r\n while (domArray[i].childNodes.length !== 0) {\r\n domArray[i].removeChild(domArray[i].childNodes[0]);\r\n }\r\n //列分th td\r\n var td = dom_core_1.default(cArray[0]).getNodeName() !== 'TH'\r\n ? document.createElement('td')\r\n : document.createElement('th');\r\n // let td = document.createElement('td')\r\n cArray.splice(_index + 1, 0, td);\r\n //插入新的子节点\r\n for (var j = 0; j < cArray.length; j++) {\r\n domArray[i].appendChild(cArray[j]);\r\n }\r\n };\r\n //创建td\r\n for (var i = 0; i < domArray.length; i++) {\r\n _loop_1(i);\r\n }\r\n //移除、新增节点事件\r\n removeAndInsertAction($dom, domArray);\r\n return dom_core_1.default($dom.parentNode);\r\n}\r\n/**\r\n * 处理删除行\r\n * @param $node 整个table\r\n * @param _index 行的inde\r\n */\r\nfunction DeleteRow($node, _index) {\r\n //执行获取tbody节点\r\n var $dom = generateDomAction($node);\r\n //取出所有的行\r\n var domArray = Array.prototype.slice.apply($dom.childNodes);\r\n //删除行\r\n domArray.splice(_index, 1);\r\n //移除、新增节点事件\r\n removeAndInsertAction($dom, domArray);\r\n return dom_core_1.default($dom.parentNode);\r\n}\r\n/**\r\n * 处理删除列\r\n * @param $node\r\n * @param _index\r\n */\r\nfunction DeleteCol($node, _index) {\r\n //执行获取tbody节点\r\n var $dom = generateDomAction($node);\r\n //取出所有的行\r\n var domArray = Array.prototype.slice.apply($dom.childNodes);\r\n var _loop_2 = function (i) {\r\n var cArray = [];\r\n //取出所有的列\r\n domArray[i].childNodes.forEach(function (item) {\r\n cArray.push(item);\r\n });\r\n //移除行的旧的子节点\r\n while (domArray[i].childNodes.length !== 0) {\r\n domArray[i].removeChild(domArray[i].childNodes[0]);\r\n }\r\n cArray.splice(_index, 1);\r\n //插入新的子节点\r\n for (var j = 0; j < cArray.length; j++) {\r\n domArray[i].appendChild(cArray[j]);\r\n }\r\n };\r\n //创建td\r\n for (var i = 0; i < domArray.length; i++) {\r\n _loop_2(i);\r\n }\r\n //移除、新增节点事件\r\n removeAndInsertAction($dom, domArray);\r\n return dom_core_1.default($dom.parentNode);\r\n}\r\n/**\r\n * 处理设置/取消表头\r\n * @param $node\r\n * @param _index\r\n * @type 替换的列 th 还是td\r\n */\r\nfunction setTheHeader($node, _index, type) {\r\n //执行获取tbody节点\r\n var $dom = generateDomAction($node);\r\n //取出所有的行\r\n var domArray = Array.prototype.slice.apply($dom.childNodes);\r\n //列的数量\r\n var childNodesLenght = domArray[_index].childNodes;\r\n //创建新tr\r\n var tr = document.createElement('tr');\r\n var _loop_3 = function (i) {\r\n //替换td为th\r\n var th = document.createElement(type);\r\n childNodesLenght[i].childNodes.forEach(function (item) {\r\n th.appendChild(item);\r\n });\r\n tr.appendChild(th);\r\n };\r\n for (var i = 0; i < childNodesLenght.length; i++) {\r\n _loop_3(i);\r\n }\r\n //插入集合中\r\n domArray.splice(_index, 1, tr);\r\n //移除、新增节点事件\r\n removeAndInsertAction($dom, domArray);\r\n return dom_core_1.default($dom.parentNode);\r\n}\r\n/**\r\n * 封装移除、新增节点事件\r\n * @param $dom tbody节点\r\n * @param domArray 所有的行\r\n */\r\nfunction removeAndInsertAction($dom, domArray) {\r\n //移除所有的旧的子节点\r\n while ($dom.childNodes.length !== 0) {\r\n $dom.removeChild($dom.childNodes[0]);\r\n }\r\n //插入新的子节点\r\n for (var i = 0; i < domArray.length; i++) {\r\n $dom.appendChild(domArray[i]);\r\n }\r\n}\r\n/**\r\n * 封装判断是否tbody节点\r\n * 粘贴的table 第一个节点是<colgroup> 最后的节点<tbody>\r\n * @param dom\r\n */\r\nfunction generateDomAction($node) {\r\n var $dom = $node.elems[0].childNodes[0];\r\n if ($dom.nodeName === 'COLGROUP') {\r\n $dom = $node.elems[0].childNodes[$node.elems[0].childNodes.length - 1];\r\n }\r\n return $dom;\r\n}\r\nexports.default = {\r\n ProcessingRow: ProcessingRow,\r\n ProcessingCol: ProcessingCol,\r\n DeleteRow: DeleteRow,\r\n DeleteCol: DeleteCol,\r\n setTheHeader: setTheHeader,\r\n};\r\n","\"use strict\";\r\n/**\r\n * @description 获取dom节点\r\n * @author lichunlin\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../../utils/dom-core\"));\r\nvar getNode = /** @class */ (function () {\r\n function getNode(editor) {\r\n this.editor = editor;\r\n }\r\n /**\r\n * 获取焦点所在行\r\n * @param $node 当前table\r\n */\r\n getNode.prototype.getRowNode = function ($node) {\r\n var _a;\r\n var DOM = dom_core_1.default($node).elems[0];\r\n if (!DOM.parentNode) {\r\n return DOM;\r\n }\r\n DOM = (_a = dom_core_1.default(DOM).parentUntil('TR', DOM)) === null || _a === void 0 ? void 0 : _a.elems[0];\r\n return DOM;\r\n };\r\n /**\r\n * 获取当前行的下标\r\n * @param $node 当前table\r\n * @param $dmo 当前行节点\r\n */\r\n getNode.prototype.getCurrentRowIndex = function ($node, $dom) {\r\n var _index = 0;\r\n var $nodeChild = $node.childNodes[0];\r\n //粘贴的table 最后一个节点才是tbody\r\n if ($nodeChild.nodeName === 'COLGROUP') {\r\n $nodeChild = $node.childNodes[$node.childNodes.length - 1];\r\n }\r\n $nodeChild.childNodes.forEach(function (item, index) {\r\n item === $dom ? (_index = index) : '';\r\n });\r\n return _index;\r\n };\r\n /**\r\n * 获取当前列的下标\r\n * @param $node 当前点击元素\r\n */\r\n getNode.prototype.getCurrentColIndex = function ($node) {\r\n var _a;\r\n //当前行\r\n var _index = 0;\r\n //获取当前列 td或th\r\n var rowDom = dom_core_1.default($node).getNodeName() === 'TD' || dom_core_1.default($node).getNodeName() === 'TH'\r\n ? $node\r\n : (_a = dom_core_1.default($node).parentUntil('TD', $node)) === null || _a === void 0 ? void 0 : _a.elems[0];\r\n var colDom = dom_core_1.default(rowDom).parent();\r\n colDom.elems[0].childNodes.forEach(function (item, index) {\r\n item === rowDom ? (_index = index) : '';\r\n });\r\n return _index;\r\n };\r\n /**\r\n * 返回元素html字符串\r\n * @param $node\r\n */\r\n getNode.prototype.getTableHtml = function ($node) {\r\n var htmlStr = \"<table border=\\\"0\\\" width=\\\"100%\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\">\" + dom_core_1.default($node).html() + \"</table>\";\r\n return htmlStr;\r\n };\r\n return getNode;\r\n}());\r\nexports.default = getNode;\r\n","\"use strict\";\r\n/**\r\n * @description 代码 菜单\r\n * @author lkw\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.formatCodeHtml = void 0;\r\nvar PanelMenu_1 = __importDefault(require(\"../menu-constructors/PanelMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar util_1 = require(\"../../utils/util\");\r\nvar create_panel_conf_1 = __importDefault(require(\"./create-panel-conf\"));\r\nvar is_active_1 = __importDefault(require(\"./is-active\"));\r\nvar Panel_1 = __importDefault(require(\"../menu-constructors/Panel\"));\r\nvar index_1 = __importDefault(require(\"./bind-event/index\"));\r\nfunction formatCodeHtml(editor, html) {\r\n if (!html)\r\n return html;\r\n html = deleteHighlightCode(html);\r\n html = formatEnterCode(html);\r\n html = util_1.replaceSpecialSymbol(html);\r\n return html;\r\n // 格式化换换所产生的code标签\r\n function formatEnterCode(html) {\r\n var preArr = html.match(/<pre[\\s|\\S]+?\\/pre>/g);\r\n if (preArr === null)\r\n return html;\r\n preArr.map(function (item) {\r\n //将连续的code标签换为\\n换行\r\n html = html.replace(item, item.replace(/<\\/code><code>/g, '\\n').replace(/<br>/g, ''));\r\n });\r\n return html;\r\n }\r\n // highlight格式化方法\r\n function deleteHighlightCode(html) {\r\n // 获取所有hljs文本\r\n var m = html.match(/<span\\sclass=\"hljs[\\s|\\S]+?\\/span>/gm);\r\n // 没有代码渲染文本则退出\r\n // @ts-ignore\r\n if (!m || !m.length)\r\n return html;\r\n // 获取替换文本\r\n var r = util_1.deepClone(m).map(function (i) {\r\n i = i.replace(/<span\\sclass=\"hljs[^>]+>/, '');\r\n return i.replace(/<\\/span>/, '');\r\n });\r\n // @ts-ignore\r\n for (var i = 0; i < m.length; i++) {\r\n html = html.replace(m[i], r[i]);\r\n }\r\n return deleteHighlightCode(html);\r\n }\r\n}\r\nexports.formatCodeHtml = formatCodeHtml;\r\nvar Code = /** @class */ (function (_super) {\r\n __extends(Code, _super);\r\n function Code(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-terminal\"></i></div>');\r\n _this = _super.call(this, $elem, editor) || this;\r\n // 绑定事件,如点击链接时,可以查看链接\r\n index_1.default(editor);\r\n return _this;\r\n }\r\n /**\r\n * 插入行内代码\r\n * @param text\r\n * @return null\r\n */\r\n Code.prototype.insertLineCode = function (text) {\r\n var editor = this.editor;\r\n // 行内代码处理\r\n var $code = dom_core_1.default(\"<code>\" + text + \"</code>\");\r\n editor.cmd.do('insertElem', $code);\r\n editor.selection.createRangeByElem($code, false);\r\n editor.selection.restoreSelection();\r\n };\r\n /**\r\n * 菜单点击事件\r\n */\r\n Code.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var $codeElem;\r\n var selectionText = editor.selection.getSelectionText();\r\n if (this.isActive) {\r\n return;\r\n }\r\n else {\r\n // 菜单未被激活,说明选区不在链接里\r\n if (editor.selection.isSelectionEmpty()) {\r\n // 选区是空的,未选中内容\r\n this.createPanel('', '');\r\n }\r\n else {\r\n // 行内代码处理 选中了非代码内容\r\n this.insertLineCode(selectionText);\r\n }\r\n }\r\n };\r\n /**\r\n * 创建 panel\r\n * @param text 代码文本\r\n * @param languageType 代码类型\r\n */\r\n Code.prototype.createPanel = function (text, languageType) {\r\n var conf = create_panel_conf_1.default(this.editor, text, languageType);\r\n var panel = new Panel_1.default(this, conf);\r\n panel.create();\r\n };\r\n /**\r\n * 尝试修改菜单 active 状态\r\n */\r\n Code.prototype.tryChangeActive = function () {\r\n var editor = this.editor;\r\n if (is_active_1.default(editor)) {\r\n this.active();\r\n }\r\n else {\r\n this.unActive();\r\n }\r\n };\r\n return Code;\r\n}(PanelMenu_1.default));\r\nexports.default = Code;\r\n","\"use strict\";\r\n/**\r\n * @description code 菜单 panel tab 配置\r\n * @author lkw\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../utils/util\");\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar is_active_1 = __importDefault(require(\"./is-active\"));\r\nfunction default_1(editor, text, languageType) {\r\n // panel 中需要用到的id\r\n var codeId = util_1.getRandom('code');\r\n var inputIFrameId = util_1.getRandom('input-iframe');\r\n var languageId = util_1.getRandom('select');\r\n var inputCodeId = util_1.getRandom('input-code');\r\n var inputTextId = util_1.getRandom('input-text');\r\n var btnOkId = util_1.getRandom('btn-ok');\r\n /**\r\n * 插入链接\r\n * @param text 文字\r\n * @param code 链接\r\n */\r\n function insertCode(text) {\r\n // 选区处于链接中,则选中整个菜单,再执行 insertHTML\r\n var active = is_active_1.default(editor);\r\n if (active) {\r\n selectCodeElem();\r\n }\r\n editor.cmd.do('insertHTML', text);\r\n var $code = editor.selection.getSelectionStartElem();\r\n var $codeElem = $code === null || $code === void 0 ? void 0 : $code.getNodeTop(editor);\r\n // 通过dom操作添加换行标签\r\n // @ts-ignore\r\n dom_core_1.default('<p><br></p>').insertAfter($codeElem);\r\n }\r\n /**\r\n * 选中整个链接元素\r\n */\r\n function selectCodeElem() {\r\n if (!is_active_1.default(editor))\r\n return;\r\n var $selectedCode;\r\n var $code = editor.selection.getSelectionStartElem();\r\n var $codeElem = $code === null || $code === void 0 ? void 0 : $code.getNodeTop(editor);\r\n if (!$codeElem)\r\n return;\r\n editor.selection.createRangeByElem($codeElem);\r\n editor.selection.restoreSelection();\r\n $selectedCode = $codeElem; // 赋值给函数内全局变量\r\n }\r\n var t = function (text) {\r\n return editor.i18next.t(text);\r\n };\r\n // @ts-ignore\r\n var conf = {\r\n width: 500,\r\n height: 0,\r\n // panel 中可包含多个 tab\r\n tabs: [\r\n {\r\n // tab 的标题\r\n title: t('menus.panelMenus.code.插入代码'),\r\n // 模板\r\n tpl: \"<div>\\n <select name=\\\"\\\" id=\\\"\" + languageId + \"\\\">\\n \" + editor.config.languageType.map(function (language) {\r\n return ('<option ' +\r\n (languageType == language ? 'selected' : '') +\r\n ' value =\"' +\r\n language +\r\n '\">' +\r\n language +\r\n '</option>');\r\n }) + \"\\n </select>\\n <textarea id=\\\"\" + inputIFrameId + \"\\\" type=\\\"text\\\" class=\\\"wang-code-textarea\\\" placeholder=\\\"\\\" style=\\\"height: 160px\\\">\" + text.replace(/"/g, '\"') + \"</textarea>\\n <div class=\\\"w-e-button-container\\\">\\n <button id=\\\"\" + btnOkId + \"\\\" class=\\\"right\\\">\" + (is_active_1.default(editor) ? t('修改') : t('插入')) + \"</button>\\n </div>\\n </div>\",\r\n // 事件绑定\r\n events: [\r\n // 插入链接\r\n {\r\n selector: '#' + btnOkId,\r\n type: 'click',\r\n fn: function () {\r\n var formatCode, codeDom;\r\n var $code = document.getElementById(inputIFrameId);\r\n var $select = dom_core_1.default('#' + languageId);\r\n var languageType = $select.val();\r\n // @ts-ignore\r\n var code = $code.value;\r\n // 高亮渲染\r\n if (editor.highlight) {\r\n formatCode = editor.highlight.highlightAuto(code).value;\r\n }\r\n else {\r\n formatCode = \"<xmp>\" + code + \"</xmp>\";\r\n }\r\n // 代码为空,则不插入\r\n if (!code)\r\n return;\r\n //增加标签\r\n if (is_active_1.default(editor)) {\r\n return false;\r\n }\r\n else {\r\n //增加pre标签\r\n codeDom = \"<pre type=\\\"\" + languageType + \"\\\"><code>\" + formatCode + \"</code></pre>\";\r\n // @ts-ignore\r\n insertCode(codeDom);\r\n }\r\n // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭\r\n return true;\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n return conf;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 绑定链接元素的事件,入口\r\n * @author lkw\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tooltip_event_1 = __importDefault(require(\"./tooltip-event\"));\r\n/**\r\n * 绑定事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindEvent(editor) {\r\n // tooltip 事件\r\n tooltip_event_1.default(editor);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\n/**\r\n * @description tooltip 事件\r\n * @author lkw\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nvar Tooltip_1 = __importDefault(require(\"../../menu-constructors/Tooltip\"));\r\n/**\r\n * 生成 Tooltip 的显示隐藏函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var tooltip;\r\n /**\r\n * 显示 tooltip\r\n * @param $code 链接元素\r\n */\r\n function showCodeTooltip($code) {\r\n var i18nPrefix = 'menus.panelMenus.code.';\r\n var t = function (text, prefix) {\r\n if (prefix === void 0) { prefix = i18nPrefix; }\r\n return editor.i18next.t(prefix + text);\r\n };\r\n var conf = [\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + t('删除代码') + \"</span>\"),\r\n onClick: function (editor, $code) {\r\n //dom操作删除\r\n $code.remove();\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n ];\r\n // 创建 tooltip\r\n tooltip = new Tooltip_1.default(editor, $code, conf);\r\n tooltip.create();\r\n }\r\n /**\r\n * 隐藏 tooltip\r\n */\r\n function hideCodeTooltip() {\r\n // 移除 tooltip\r\n if (tooltip) {\r\n tooltip.remove();\r\n tooltip = null;\r\n }\r\n }\r\n return {\r\n showCodeTooltip: showCodeTooltip,\r\n hideCodeTooltip: hideCodeTooltip,\r\n };\r\n}\r\n/**\r\n * preEnterListener是为了统一浏览器 在pre标签内的enter行为而进行的监听\r\n * 目前并没有使用, 但是在未来处理与Firefox和ie的兼容性时需要用到 暂且放置\r\n * pre标签内的回车监听\r\n * @param e\r\n * @param editor\r\n */\r\nfunction preEnterListener(e, editor) {\r\n // 获取当前标签元素\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n // 获取当前节点最顶级标签元素\r\n var $topElem = $selectionElem === null || $selectionElem === void 0 ? void 0 : $selectionElem.getNodeTop(editor);\r\n // 获取顶级节点节点名\r\n var topNodeName = $topElem === null || $topElem === void 0 ? void 0 : $topElem.getNodeName();\r\n // 非pre标签退出\r\n if (topNodeName !== 'PRE')\r\n return;\r\n // 取消默认行为\r\n e.preventDefault();\r\n // 执行换行\r\n editor.cmd.do('insertHTML', '\\n\\r');\r\n}\r\n/**\r\n * 绑定 tooltip 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindTooltipEvent(editor) {\r\n var _a = createShowHideFn(editor), showCodeTooltip = _a.showCodeTooltip, hideCodeTooltip = _a.hideCodeTooltip;\r\n // 点击代码元素时,显示 tooltip\r\n editor.txt.eventHooks.codeClickEvents.push(showCodeTooltip);\r\n // 点击其他地方,或者滚动时,隐藏 tooltip\r\n editor.txt.eventHooks.clickEvents.push(hideCodeTooltip);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideCodeTooltip);\r\n editor.txt.eventHooks.menuClickEvents.push(hideCodeTooltip);\r\n editor.txt.eventHooks.textScrollEvents.push(hideCodeTooltip);\r\n}\r\nexports.default = bindTooltipEvent;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description 分割线\r\n * @author wangqiaoling\r\n */\r\nvar BtnMenu_1 = __importDefault(require(\"../menu-constructors/BtnMenu\"));\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar index_1 = __importDefault(require(\"./bind-event/index\"));\r\nvar splitLine = /** @class */ (function (_super) {\r\n __extends(splitLine, _super);\r\n function splitLine(editor) {\r\n var _this = this;\r\n var $elem = dom_core_1.default('<div class=\"w-e-menu\"><i class=\"w-e-icon-split-line\"></i></div>');\r\n _this = _super.call(this, $elem, editor) || this;\r\n // 绑定事件\r\n index_1.default(editor);\r\n return _this;\r\n }\r\n /**\r\n * 菜单点击事件\r\n */\r\n splitLine.prototype.clickHandler = function () {\r\n var editor = this.editor;\r\n var range = editor.selection.getRange();\r\n var $selectionElem = editor.selection.getSelectionContainerElem();\r\n if (!$selectionElem)\r\n return;\r\n var $DomElement = dom_core_1.default($selectionElem.elems[0]);\r\n var $tableDOM = $DomElement.parentUntil('TABLE', $selectionElem.elems[0]);\r\n var $imgDOM = $DomElement.children();\r\n // 禁止在代码块中添加分割线\r\n if ($DomElement.getNodeName() === 'CODE')\r\n return;\r\n // 禁止在表格中添加分割线\r\n if ($tableDOM && dom_core_1.default($tableDOM.elems[0]).getNodeName() === 'TABLE')\r\n return;\r\n // 禁止在图片处添加分割线\r\n if ($imgDOM &&\r\n $imgDOM.length !== 0 &&\r\n dom_core_1.default($imgDOM.elems[0]).getNodeName() === 'IMG' &&\r\n !(range === null || range === void 0 ? void 0 : range.collapsed) // 处理光标在 img 后面的情况\r\n ) {\r\n return;\r\n }\r\n this.createSplitLine();\r\n };\r\n /**\r\n * 创建 splitLine\r\n */\r\n splitLine.prototype.createSplitLine = function () {\r\n var splitLineDOM = '<hr/>';\r\n this.editor.cmd.do('insertHTML', splitLineDOM);\r\n };\r\n /**\r\n * 尝试修改菜单激活状态\r\n */\r\n splitLine.prototype.tryChangeActive = function () { };\r\n return splitLine;\r\n}(BtnMenu_1.default));\r\nexports.default = splitLine;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tooltip_event_1 = __importDefault(require(\"./tooltip-event\"));\r\n/**\r\n * 绑定事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction bindEvent(editor) {\r\n // 分割线的 tooltip 事件\r\n tooltip_event_1.default(editor);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @description tooltip 事件\r\n * @author wangqiaoling\r\n */\r\nvar dom_core_1 = __importDefault(require(\"../../../utils/dom-core\"));\r\nvar Tooltip_1 = __importDefault(require(\"../../menu-constructors/Tooltip\"));\r\n/**\r\n * 生成 Tooltip 的显示隐藏函数\r\n */\r\nfunction createShowHideFn(editor) {\r\n var tooltip;\r\n /**\r\n * 显示分割线的 tooltip\r\n * @param $splitLine 分割线元素\r\n */\r\n function showSplitLineTooltip($splitLine) {\r\n // 定义 splitLine tooltip 配置\r\n var conf = [\r\n {\r\n $elem: dom_core_1.default(\"<span>\" + editor.i18next.t('menus.panelMenus.删除') + \"</span>\"),\r\n onClick: function (editor, $splitLine) {\r\n // 选中 分割线 元素\r\n editor.selection.createRangeByElem($splitLine);\r\n editor.selection.restoreSelection();\r\n editor.cmd.do('delete');\r\n // 返回 true,表示执行完之后,隐藏 tooltip。否则不隐藏。\r\n return true;\r\n },\r\n },\r\n ];\r\n // 实例化 tooltip\r\n tooltip = new Tooltip_1.default(editor, $splitLine, conf);\r\n // 创建 tooltip\r\n tooltip.create();\r\n }\r\n /**\r\n * 隐藏分割线的 tooltip\r\n */\r\n function hideSplitLineTooltip() {\r\n if (tooltip) {\r\n tooltip.remove();\r\n tooltip = null;\r\n }\r\n }\r\n return {\r\n showSplitLineTooltip: showSplitLineTooltip,\r\n hideSplitLineTooltip: hideSplitLineTooltip,\r\n };\r\n}\r\nfunction bindTooltipEvent(editor) {\r\n var _a = createShowHideFn(editor), showSplitLineTooltip = _a.showSplitLineTooltip, hideSplitLineTooltip = _a.hideSplitLineTooltip;\r\n // 点击分割线时,显示 tooltip\r\n editor.txt.eventHooks.splitLineEvents.push(showSplitLineTooltip);\r\n // 点击其他地方(工具栏、滚动、keyup)时,隐藏 tooltip\r\n editor.txt.eventHooks.clickEvents.push(hideSplitLineTooltip);\r\n editor.txt.eventHooks.keyupEvents.push(hideSplitLineTooltip);\r\n editor.txt.eventHooks.toolbarClickEvents.push(hideSplitLineTooltip);\r\n editor.txt.eventHooks.menuClickEvents.push(hideSplitLineTooltip);\r\n editor.txt.eventHooks.textScrollEvents.push(hideSplitLineTooltip);\r\n}\r\nexports.default = bindTooltipEvent;\r\n","\"use strict\";\r\n/**\r\n * @description 初始化编辑器 DOM 结构\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nvar util_1 = require(\"../../utils/util\");\r\nvar styleSettings = {\r\n border: '1px solid #c9d8db',\r\n toolbarBgColor: '#FFF',\r\n toolbarBottomBorder: '1px solid #EEE',\r\n};\r\nfunction default_1(editor) {\r\n var toolbarSelector = editor.toolbarSelector;\r\n var $toolbarSelector = dom_core_1.default(toolbarSelector);\r\n var textSelector = editor.textSelector;\r\n var config = editor.config;\r\n var height = config.height;\r\n var i18next = editor.i18next;\r\n var $toolbarElem;\r\n var $textContainerElem;\r\n var $textElem;\r\n var $children;\r\n if (textSelector == null) {\r\n // 只有 toolbarSelector ,即是容器的选择器或元素,toolbar 和 text 的元素自行创建\r\n $toolbarElem = dom_core_1.default('<div></div>');\r\n $textContainerElem = dom_core_1.default('<div></div>');\r\n // 将编辑器区域原有的内容,暂存起来\r\n $children = $toolbarSelector.children();\r\n // 添加到 DOM 结构中\r\n $toolbarSelector.append($toolbarElem).append($textContainerElem);\r\n // 自行创建的,需要配置默认的样式\r\n $toolbarElem\r\n .css('background-color', styleSettings.toolbarBgColor)\r\n .css('border', styleSettings.border)\r\n .css('border-bottom', styleSettings.toolbarBottomBorder);\r\n $textContainerElem\r\n .css('border', styleSettings.border)\r\n .css('border-top', 'none')\r\n .css('height', height + \"px\");\r\n }\r\n else {\r\n // toolbarSelector 和 textSelector 都有\r\n $toolbarElem = $toolbarSelector;\r\n $textContainerElem = dom_core_1.default(textSelector);\r\n // 将编辑器区域原有的内容,暂存起来\r\n $children = $textContainerElem.children();\r\n }\r\n // 编辑区域\r\n $textElem = dom_core_1.default('<div></div>');\r\n $textElem.attr('contenteditable', 'true').css('width', '100%').css('height', '100%');\r\n // 添加 placeholder\r\n var $placeholder = dom_core_1.default(\"<div>\" + i18next.t(editor.config.placeholder) + \"</div>\");\r\n $placeholder.addClass('placeholder');\r\n // 初始化编辑区域内容\r\n if ($children && $children.length) {\r\n $textElem.append($children);\r\n // 编辑器有默认值的时候隐藏placeholder\r\n $placeholder.hide();\r\n }\r\n else {\r\n $textElem.append(dom_core_1.default('<p><br></p>')); // 新增一行,方便继续编辑\r\n }\r\n // 编辑区域加入DOM\r\n $textContainerElem.append($textElem);\r\n // 添加placeholder\r\n $textContainerElem.append($placeholder);\r\n // 设置通用的 class\r\n $toolbarElem.addClass('w-e-toolbar').css('z-index', editor.zIndex.get('toolbar'));\r\n $textContainerElem.addClass('w-e-text-container');\r\n $textContainerElem.css('z-index', editor.zIndex.get());\r\n $textElem.addClass('w-e-text');\r\n // 添加 ID\r\n var toolbarElemId = util_1.getRandom('toolbar-elem');\r\n $toolbarElem.attr('id', toolbarElemId);\r\n var textElemId = util_1.getRandom('text-elem');\r\n $textElem.attr('id', textElemId);\r\n // 判断编辑区与容器高度是否一致\r\n var textContainerCliheight = $textContainerElem.getClientHeight();\r\n var textElemClientHeight = $textElem.getClientHeight();\r\n if (textContainerCliheight !== textElemClientHeight) {\r\n $textElem.css('min-height', textContainerCliheight + 'px');\r\n }\r\n // 记录属性\r\n editor.$toolbarElem = $toolbarElem;\r\n editor.$textContainerElem = $textContainerElem;\r\n editor.$textElem = $textElem;\r\n editor.toolbarElemId = toolbarElemId;\r\n editor.textElemId = textElemId;\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\n/**\r\n * @description 初始化编辑器选区,将光标定位到文档末尾\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\n/**\r\n * 初始化编辑器选区,将光标定位到文档末尾\r\n * @param editor 编辑器实例\r\n * @param newLine 是否新增一行\r\n */\r\nfunction initSelection(editor, newLine) {\r\n var $textElem = editor.$textElem;\r\n var $children = $textElem.children();\r\n if (!$children || !$children.length) {\r\n // 如果编辑器区域无内容,添加一个空行,重新设置选区\r\n $textElem.append(dom_core_1.default('<p><br></p>'));\r\n initSelection(editor);\r\n return;\r\n }\r\n var $last = $children.last();\r\n if (newLine) {\r\n // 新增一个空行\r\n var html = $last.html().toLowerCase();\r\n var nodeName = $last.getNodeName();\r\n if ((html !== '<br>' && html !== '<br/>') || nodeName !== 'P') {\r\n // 最后一个元素不是 <p><br></p>,添加一个空行,重新设置选区\r\n $textElem.append(dom_core_1.default('<p><br></p>'));\r\n initSelection(editor);\r\n return;\r\n }\r\n }\r\n if (editor.config.focus) {\r\n editor.selection.createRangeByElem($last, false, true);\r\n editor.selection.restoreSelection();\r\n }\r\n}\r\nexports.default = initSelection;\r\n","\"use strict\";\r\n/**\r\n * @description 绑定编辑器事件 change blur focus\r\n * @author wangfupeng\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nfunction bindEvent(editor) {\r\n // 绑定 change 事件\r\n _bindChange(editor);\r\n // 绑定 focus blur 事件\r\n _bindFocusAndBlur(editor);\r\n // 绑定 input 输入\r\n _bindInput(editor);\r\n}\r\n/**\r\n * 绑定 change 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction _bindChange(editor) {\r\n var onchange = editor.config.onchange;\r\n editor.txt.eventHooks.changeEvents.push(function () {\r\n var html = editor.txt.html() || '';\r\n onchange(html);\r\n editor.txt.togglePlaceholder();\r\n });\r\n}\r\n/**\r\n * 绑定 focus blur 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction _bindFocusAndBlur(editor) {\r\n // 当前编辑器是否是焦点状态\r\n editor.isFocus = false;\r\n function listener(e) {\r\n var target = e.target;\r\n var $target = dom_core_1.default(target);\r\n var $textElem = editor.$textElem;\r\n var $toolbarElem = editor.$toolbarElem;\r\n //判断当前点击元素是否在编辑器内\r\n var isChild = $textElem.isContain($target);\r\n //判断当前点击元素是否为工具栏\r\n var isToolbar = $toolbarElem.isContain($target);\r\n var isMenu = $toolbarElem.elems[0] == e.target ? true : false;\r\n if (!isChild) {\r\n // 若为选择工具栏中的功能,则不视为成 blur 操作\r\n if (isToolbar && !isMenu) {\r\n return;\r\n }\r\n if (editor.isFocus) {\r\n _blurHandler(editor);\r\n }\r\n editor.isFocus = false;\r\n }\r\n else {\r\n if (!editor.isFocus) {\r\n _focusHandler(editor);\r\n }\r\n editor.isFocus = true;\r\n }\r\n }\r\n dom_core_1.default(document).on('click', listener);\r\n // 全局事件在编辑器实例销毁的时候进行解绑\r\n editor.beforeDestroy(function () {\r\n dom_core_1.default(document).off('click', listener);\r\n });\r\n}\r\n/**\r\n * 绑定 input 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction _bindInput(editor) {\r\n // 绑定中文输入\r\n editor.$textElem\r\n .on('compositionstart', function () {\r\n editor.isComposing = true;\r\n })\r\n .on('compositionend', function () {\r\n editor.isComposing = false;\r\n });\r\n}\r\n/**\r\n * blur 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction _blurHandler(editor) {\r\n var config = editor.config;\r\n var onblur = config.onblur;\r\n var currentHtml = editor.txt.html() || '';\r\n onblur(currentHtml);\r\n}\r\n/**\r\n * focus 事件\r\n * @param editor 编辑器实例\r\n */\r\nfunction _focusHandler(editor) {\r\n var config = editor.config;\r\n var onfocus = config.onfocus;\r\n var currentHtml = editor.txt.html() || '';\r\n onfocus(currentHtml);\r\n}\r\nexports.default = bindEvent;\r\n","\"use strict\";\r\n/**\r\n * @description 国际化 初始化\r\n * @author tonghan\r\n * i18next 是使用 JavaScript 编写的国际化框架\r\n * i18next 提供了标准的i18n功能,例如(复数,上下文,插值,格式)等\r\n * i18next 文档地址: https://www.i18next.com/overview/getting-started\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction i18nextInit(editor) {\r\n var _a = editor.config, lang = _a.lang, languages = _a.languages;\r\n if (editor.i18next != null) {\r\n try {\r\n editor.i18next.init({\r\n ns: 'wangEditor',\r\n lng: lang,\r\n defaultNS: 'wangEditor',\r\n resources: languages,\r\n });\r\n }\r\n catch (error) {\r\n throw new Error('i18next:' + error);\r\n }\r\n return;\r\n }\r\n // 没有引入 i18next 的替代品\r\n editor.i18next = {\r\n t: function (str) {\r\n var strArr = str.split('.');\r\n return strArr[strArr.length - 1];\r\n },\r\n };\r\n}\r\nexports.default = i18nextInit;\r\n","\"use strict\";\r\n/**\r\n * @description 全屏功能\r\n * @author xiaokyo\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.setUnFullScreen = exports.setFullScreen = void 0;\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nrequire(\"../../assets/style/full-screen.less\");\r\nvar iconFullScreenText = 'w-e-icon-fullscreen'; // 全屏icon class\r\nvar iconExitFullScreenText = 'w-e-icon-fullscreen_exit'; // 退出全屏icon class\r\nvar classfullScreenEditor = 'w-e-full-screen-editor'; // 全屏添加至编辑器的class\r\n/**\r\n * 设置全屏\r\n * @param editor 编辑器实例\r\n */\r\nexports.setFullScreen = function (editor) {\r\n var $editorParent = dom_core_1.default(editor.toolbarSelector);\r\n var $textContainerElem = editor.$textContainerElem;\r\n var $toolbarElem = editor.$toolbarElem;\r\n var $iconElem = $toolbarElem.find(\"i.\" + iconFullScreenText);\r\n var config = editor.config;\r\n $iconElem.removeClass(iconFullScreenText);\r\n $iconElem.addClass(iconExitFullScreenText);\r\n $editorParent.addClass(classfullScreenEditor);\r\n $editorParent.css('z-index', config.zIndexFullScreen);\r\n $textContainerElem.css('height', '100%');\r\n};\r\n/**\r\n * 取消全屏\r\n * @param editor 编辑器实例\r\n */\r\nexports.setUnFullScreen = function (editor) {\r\n var $editorParent = dom_core_1.default(editor.toolbarSelector);\r\n var $textContainerElem = editor.$textContainerElem;\r\n var $toolbarElem = editor.$toolbarElem;\r\n var $iconElem = $toolbarElem.find(\"i.\" + iconExitFullScreenText);\r\n var config = editor.config;\r\n $iconElem.removeClass(iconExitFullScreenText);\r\n $iconElem.addClass(iconFullScreenText);\r\n $editorParent.removeClass(classfullScreenEditor);\r\n $editorParent.css('z-index', 'auto');\r\n $textContainerElem.css('height', config.height + 'px');\r\n};\r\n/**\r\n * 初始化全屏功能\r\n * @param editor 编辑器实例\r\n */\r\nvar initFullScreen = function (editor) {\r\n // 当textSelector有值的时候,也就是编辑器是工具栏和编辑区域分离的情况, 则不生成全屏功能按钮\r\n if (editor.textSelector)\r\n return;\r\n if (!editor.config.showFullScreen)\r\n return;\r\n var $toolbarElem = editor.$toolbarElem;\r\n var $elem = dom_core_1.default(\"<div class=\\\"w-e-menu\\\">\\n <i class=\\\"\" + iconFullScreenText + \"\\\"></i>\\n </div>\");\r\n $elem.on('click', function (e) {\r\n var $elemIcon = dom_core_1.default(e.currentTarget).find('i');\r\n if ($elemIcon.hasClass(iconFullScreenText)) {\r\n exports.setFullScreen(editor);\r\n }\r\n else {\r\n exports.setUnFullScreen(editor);\r\n }\r\n });\r\n $toolbarElem.append($elem);\r\n};\r\nexports.default = initFullScreen;\r\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./full-screen.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-full-screen-editor {\\n position: fixed;\\n width: 100%!important;\\n height: 100%!important;\\n left: 0;\\n top: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar style_1 = __importDefault(require(\"../../config/style\"));\r\nvar ZIndex = /** @class */ (function () {\r\n function ZIndex() {\r\n // 层级参数\r\n this.tier = {\r\n menu: 2,\r\n panel: 2,\r\n toolbar: 1,\r\n tooltip: 1,\r\n textContainer: 1,\r\n };\r\n // 默认值\r\n this.baseZIndex = style_1.default.zIndex;\r\n }\r\n // 获取 tierName 对应的 z-index 的值。如果 tierName 未定义则返回默认的 z-index 值\r\n ZIndex.prototype.get = function (tierName) {\r\n if (tierName && this.tier[tierName]) {\r\n return this.baseZIndex + this.tier[tierName];\r\n }\r\n return this.baseZIndex;\r\n };\r\n // 初始化\r\n ZIndex.prototype.init = function (editor) {\r\n if (this.baseZIndex == style_1.default.zIndex) {\r\n this.baseZIndex = editor.config.zIndex;\r\n }\r\n };\r\n return ZIndex;\r\n}());\r\nexports.default = ZIndex;\r\n","\"use strict\";\r\n/**\r\n * @description 编辑器 change 事件\r\n * @author fangzhicong\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mutation_1 = __importDefault(require(\"../../utils/observer/mutation\"));\r\nvar util_1 = require(\"../../utils/util\");\r\nvar const_1 = require(\"../../utils/const\");\r\n/**\r\n * 剔除编辑区容器的 attribute 变化中的非 contenteditable 变化\r\n * @param mutations MutationRecord[]\r\n * @param tar 编辑区容器的 DOM 节点\r\n */\r\nfunction mutationsFilter(mutations, tar) {\r\n // 剔除编辑区容器的 attribute 变化中的非 contenteditable 变化\r\n return mutations.filter(function (_a) {\r\n var type = _a.type, target = _a.target, attributeName = _a.attributeName;\r\n return (type != 'attributes' ||\r\n (type == 'attributes' && (attributeName == 'contenteditable' || target != tar)));\r\n });\r\n}\r\n/**\r\n * Change 实现\r\n */\r\nvar Change = /** @class */ (function (_super) {\r\n __extends(Change, _super);\r\n function Change(editor) {\r\n var _this = _super.call(this, function (mutations, observer) {\r\n var _a;\r\n // 数据过滤\r\n mutations = mutationsFilter(mutations, observer.target);\r\n // 存储数据\r\n (_a = _this.data).push.apply(_a, mutations);\r\n // 标准模式下\r\n if (!editor.isCompatibleMode) {\r\n // 在非中文输入状态下时才保存数据\r\n if (!editor.isComposing) {\r\n return _this.asyncSave();\r\n }\r\n }\r\n // 兼容模式下\r\n else {\r\n _this.asyncSave();\r\n }\r\n }) || this;\r\n _this.editor = editor;\r\n /**\r\n * 变化的数据集合\r\n */\r\n _this.data = [];\r\n /**\r\n * 异步保存数据\r\n */\r\n _this.asyncSave = const_1.EMPTY_FN;\r\n return _this;\r\n }\r\n /**\r\n * 保存变化的数据并发布 change event\r\n */\r\n Change.prototype.save = function () {\r\n // 有数据\r\n if (this.data.length) {\r\n // 保存变化数据\r\n this.editor.history.save(this.data);\r\n // 清除缓存\r\n this.data.length = 0;\r\n this.emit();\r\n }\r\n };\r\n /**\r\n * 发布 change event\r\n */\r\n Change.prototype.emit = function () {\r\n // 执行 onchange 回调\r\n this.editor.txt.eventHooks.changeEvents.forEach(function (fn) { return fn(); });\r\n };\r\n // 重写 observe\r\n Change.prototype.observe = function () {\r\n var _this = this;\r\n _super.prototype.observe.call(this, this.editor.$textElem.elems[0]);\r\n var timeout = this.editor.config.onchangeTimeout;\r\n this.asyncSave = util_1.debounce(function () {\r\n _this.save();\r\n }, timeout);\r\n if (!this.editor.isCompatibleMode) {\r\n this.editor.$textElem.on('compositionend', function () {\r\n _this.asyncSave();\r\n });\r\n }\r\n };\r\n return Change;\r\n}(mutation_1.default));\r\nexports.default = Change;\r\n","\"use strict\";\r\n/**\r\n * @description 封装 MutationObserver\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * 封装 MutationObserver,抽离成公共类\r\n */\r\nvar Mutation = /** @class */ (function () {\r\n /**\r\n * 构造器\r\n * @param fn 发生变化时执行的回调函数\r\n * @param options 自定义配置项\r\n */\r\n function Mutation(fn, options) {\r\n var _this = this;\r\n /**\r\n * 默认的 MutationObserverInit 配置\r\n */\r\n this.options = {\r\n subtree: true,\r\n childList: true,\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n };\r\n this.callback = function (mutations) {\r\n fn(mutations, _this);\r\n };\r\n this.observer = new MutationObserver(this.callback);\r\n options && (this.options = options);\r\n }\r\n Object.defineProperty(Mutation.prototype, \"target\", {\r\n get: function () {\r\n return this.node;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 绑定监听节点(初次绑定有效)\r\n * @param node 需要被监听的节点\r\n */\r\n Mutation.prototype.observe = function (node) {\r\n if (!(this.node instanceof Node)) {\r\n this.node = node;\r\n this.connect();\r\n }\r\n };\r\n /**\r\n * 连接监听器(开始观察)\r\n */\r\n Mutation.prototype.connect = function () {\r\n if (this.node) {\r\n this.observer.observe(this.node, this.options);\r\n return this;\r\n }\r\n throw new Error('还未初始化绑定,请您先绑定有效的 Node 节点');\r\n };\r\n /**\r\n * 断开监听器(停止观察)\r\n */\r\n Mutation.prototype.disconnect = function () {\r\n var list = this.observer.takeRecords();\r\n list.length && this.callback(list);\r\n this.observer.disconnect();\r\n };\r\n return Mutation;\r\n}());\r\nexports.default = Mutation;\r\n","\"use strict\";\r\n/**\r\n * @description 历史记录\r\n * @author fangzhicong\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar content_1 = __importDefault(require(\"./data/content\"));\r\nvar scroll_1 = __importDefault(require(\"./data/scroll\"));\r\nvar range_1 = __importDefault(require(\"./data/range\"));\r\n/**\r\n * 历史记录(撤销、恢复)\r\n */\r\nvar History = /** @class */ (function () {\r\n function History(editor) {\r\n this.editor = editor;\r\n this.content = new content_1.default(editor);\r\n this.scroll = new scroll_1.default(editor);\r\n this.range = new range_1.default(editor);\r\n }\r\n Object.defineProperty(History.prototype, \"size\", {\r\n /**\r\n * 获取缓存中的数据长度。格式为:[正常的数据的条数,被撤销的数据的条数]\r\n */\r\n get: function () {\r\n return this.scroll.size;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 初始化绑定。在 editor.create() 结尾时调用\r\n */\r\n History.prototype.observe = function () {\r\n this.content.observe();\r\n this.scroll.observe();\r\n // 标准模式下才进行初始化绑定\r\n !this.editor.isCompatibleMode && this.range.observe();\r\n };\r\n /**\r\n * 保存数据\r\n */\r\n History.prototype.save = function (mutations) {\r\n if (mutations.length) {\r\n this.content.save(mutations);\r\n this.scroll.save();\r\n // 标准模式下才进行缓存\r\n !this.editor.isCompatibleMode && this.range.save();\r\n }\r\n };\r\n /**\r\n * 撤销\r\n */\r\n History.prototype.revoke = function () {\r\n this.editor.change.disconnect();\r\n var res = this.content.revoke();\r\n if (res) {\r\n this.scroll.revoke();\r\n // 标准模式下才执行\r\n if (!this.editor.isCompatibleMode) {\r\n this.range.revoke();\r\n this.editor.$textElem.focus();\r\n }\r\n }\r\n this.editor.change.connect();\r\n // 如果用户在 onchange 中修改了内容(DOM),那么缓存中的节点数据可能不连贯了,不连贯的数据必将导致恢复失败,所以必须将用户的 onchange 处于监控状态中\r\n res && this.editor.change.emit();\r\n };\r\n /**\r\n * 恢复\r\n */\r\n History.prototype.restore = function () {\r\n this.editor.change.disconnect();\r\n var res = this.content.restore();\r\n if (res) {\r\n this.scroll.restore();\r\n // 标准模式下才执行\r\n if (!this.editor.isCompatibleMode) {\r\n this.range.restore();\r\n this.editor.$textElem.focus();\r\n }\r\n }\r\n this.editor.change.connect();\r\n // 与 revoke 同理\r\n res && this.editor.change.emit();\r\n };\r\n return History;\r\n}());\r\nexports.default = History;\r\n","\"use strict\";\r\n/**\r\n * @description 整合差异备份和内容备份,进行统一管理\r\n * @author fangzhicong\r\n */\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar node_1 = __importDefault(require(\"./node\"));\r\nvar html_1 = __importDefault(require(\"./html\"));\r\nvar ContentCache = /** @class */ (function () {\r\n function ContentCache(editor) {\r\n this.editor = editor;\r\n }\r\n /**\r\n * 初始化绑定\r\n */\r\n ContentCache.prototype.observe = function () {\r\n if (this.editor.isCompatibleMode) {\r\n // 兼容模式(内容备份)\r\n this.cache = new html_1.default(this.editor);\r\n }\r\n else {\r\n // 标准模式(差异备份/节点备份)\r\n this.cache = new node_1.default(this.editor);\r\n }\r\n this.cache.observe();\r\n };\r\n /**\r\n * 保存\r\n */\r\n ContentCache.prototype.save = function (mutations) {\r\n if (this.editor.isCompatibleMode) {\r\n ;\r\n this.cache.save();\r\n }\r\n else {\r\n ;\r\n this.cache.compile(mutations);\r\n }\r\n };\r\n /**\r\n * 撤销\r\n */\r\n ContentCache.prototype.revoke = function () {\r\n var _a;\r\n return (_a = this.cache) === null || _a === void 0 ? void 0 : _a.revoke();\r\n };\r\n /**\r\n * 恢复\r\n */\r\n ContentCache.prototype.restore = function () {\r\n var _a;\r\n return (_a = this.cache) === null || _a === void 0 ? void 0 : _a.restore();\r\n };\r\n return ContentCache;\r\n}());\r\nexports.default = ContentCache;\r\n","\"use strict\";\r\n/**\r\n * @description 差异备份\r\n * @author fangzhicong\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar cache_1 = __importDefault(require(\"../../../../utils/data-structure/cache\"));\r\nvar compile_1 = __importDefault(require(\"./compile\"));\r\nvar decompilation_1 = require(\"./decompilation\");\r\nvar NodeCache = /** @class */ (function (_super) {\r\n __extends(NodeCache, _super);\r\n function NodeCache(editor) {\r\n var _this = _super.call(this, editor.config.historyMaxSize) || this;\r\n _this.editor = editor;\r\n return _this;\r\n }\r\n NodeCache.prototype.observe = function () {\r\n this.resetMaxSize(this.editor.config.historyMaxSize);\r\n };\r\n /**\r\n * 编译并保存数据\r\n */\r\n NodeCache.prototype.compile = function (data) {\r\n this.save(compile_1.default(data));\r\n return this;\r\n };\r\n /**\r\n * 撤销\r\n */\r\n NodeCache.prototype.revoke = function () {\r\n return _super.prototype.revoke.call(this, function (data) {\r\n decompilation_1.revoke(data);\r\n });\r\n };\r\n /**\r\n * 恢复\r\n */\r\n NodeCache.prototype.restore = function () {\r\n return _super.prototype.restore.call(this, function (data) {\r\n decompilation_1.restore(data);\r\n });\r\n };\r\n return NodeCache;\r\n}(cache_1.default));\r\nexports.default = NodeCache;\r\n","\"use strict\";\r\n/**\r\n * @description 数据结构 - 栈\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CeilStack = void 0;\r\n/**\r\n * 栈(限制最大数据条数,栈满后可以继续入栈,而先入栈的数据将失效)\r\n */\r\n// 取名灵感来自 Math.ceil,向上取有效值\r\nvar CeilStack = /** @class */ (function () {\r\n function CeilStack(max) {\r\n if (max === void 0) { max = 0; }\r\n /**\r\n * 数据缓存\r\n */\r\n this.data = [];\r\n /**\r\n * 栈的最大长度。为零则长度不限\r\n */\r\n this.max = 0;\r\n /**\r\n * 标识是否重设过 max 值\r\n */\r\n this.reset = false;\r\n max = Math.abs(max);\r\n max && (this.max = max);\r\n }\r\n /**\r\n * 允许用户重设一次 max 值\r\n */\r\n CeilStack.prototype.resetMax = function (maxSize) {\r\n maxSize = Math.abs(maxSize);\r\n if (!this.reset && !isNaN(maxSize)) {\r\n this.max = maxSize;\r\n this.reset = true;\r\n }\r\n };\r\n Object.defineProperty(CeilStack.prototype, \"size\", {\r\n /**\r\n * 当前栈中的数据条数\r\n */\r\n get: function () {\r\n return this.data.length;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 入栈\r\n * @param data 入栈的数据\r\n */\r\n CeilStack.prototype.instack = function (data) {\r\n this.data.unshift(data);\r\n if (this.max && this.size > this.max) {\r\n this.data.length = this.max;\r\n }\r\n return this;\r\n };\r\n /**\r\n * 出栈\r\n */\r\n CeilStack.prototype.outstack = function () {\r\n return this.data.shift();\r\n };\r\n /**\r\n * 清空栈\r\n */\r\n CeilStack.prototype.clear = function () {\r\n this.data.length = 0;\r\n return this;\r\n };\r\n return CeilStack;\r\n}());\r\nexports.CeilStack = CeilStack;\r\n","\"use strict\";\r\n/**\r\n * @description 数据整理\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = require(\"../../../../utils/util\");\r\n/**\r\n * 数据类型\r\n */\r\nfunction compileType(data) {\r\n switch (data) {\r\n case 'childList':\r\n return 'node';\r\n case 'attributes':\r\n return 'attr';\r\n default:\r\n return 'text';\r\n }\r\n}\r\n/**\r\n * 获取当前的文本内容\r\n */\r\nfunction compileValue(data) {\r\n switch (data.type) {\r\n case 'attributes':\r\n return data.target.getAttribute(data.attributeName) || '';\r\n case 'characterData':\r\n return data.target.textContent;\r\n default:\r\n return '';\r\n }\r\n}\r\n/**\r\n * addedNodes/removedNodes\r\n */\r\nfunction complieNodes(data) {\r\n var temp = {};\r\n if (data.addedNodes.length) {\r\n temp.add = util_1.toArray(data.addedNodes);\r\n }\r\n if (data.removedNodes.length) {\r\n temp.remove = util_1.toArray(data.removedNodes);\r\n }\r\n return temp;\r\n}\r\n/**\r\n * addedNodes/removedNodes 的相对位置\r\n */\r\nfunction compliePosition(data) {\r\n var temp;\r\n if (data.previousSibling) {\r\n temp = {\r\n type: 'before',\r\n target: data.previousSibling,\r\n };\r\n }\r\n else if (data.nextSibling) {\r\n temp = {\r\n type: 'after',\r\n target: data.nextSibling,\r\n };\r\n }\r\n else {\r\n temp = {\r\n type: 'parent',\r\n target: data.target,\r\n };\r\n }\r\n return temp;\r\n}\r\n/**\r\n * 补全 Firefox 数据的特殊标签\r\n */\r\nvar tag = ['UL', 'OL', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\r\n/**\r\n * 将 MutationRecord 转换成自定义格式的数据\r\n */\r\nfunction compile(data) {\r\n var temp = [];\r\n // 以下两个变量是兼容 Firefox 时使用到的\r\n // 前一次操作为删除元素节点\r\n var removeNode = false;\r\n // 连续的节点删除记录\r\n var removeCache = [];\r\n data.forEach(function (record, index) {\r\n var item = {\r\n type: compileType(record.type),\r\n target: record.target,\r\n attr: record.attributeName || '',\r\n value: compileValue(record) || '',\r\n oldValue: record.oldValue || '',\r\n nodes: complieNodes(record),\r\n position: compliePosition(record),\r\n };\r\n temp.push(item);\r\n // 兼容 Firefox,补全数据(这几十行代码写得吐血,跟 IE 有得一拼)\r\n if (!util_1.UA.isFirefox) {\r\n return;\r\n }\r\n // 正常的数据:缩进、行高、超链接、对齐方式、引用、插入表情、插入图片、分割线、表格、插入代码\r\n // 普通的数据补全:标题(纯文本内容)、加粗、斜体、删除线、下划线、颜色、背景色、字体、字号、列表(纯文本内容)\r\n // 特殊的数据补全:标题(包含 HTMLElement)、列表(包含 HTMLElement 或 ul -> ol 或 ol -> ul 或 Enter)\r\n if (removeNode && record.addedNodes.length && record.addedNodes[0].nodeType == 1) {\r\n // 需要被全数据的目标节点\r\n var replenishNode = record.addedNodes[0];\r\n var replenishData = {\r\n type: 'node',\r\n target: replenishNode,\r\n attr: '',\r\n value: '',\r\n oldValue: '',\r\n nodes: {\r\n add: [removeNode],\r\n },\r\n position: {\r\n type: 'parent',\r\n target: replenishNode,\r\n },\r\n };\r\n // 特殊的标签:['UL', 'OL', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6']\r\n if (tag.indexOf(replenishNode.nodeName) != -1) {\r\n replenishData.nodes.add = util_1.toArray(replenishNode.childNodes);\r\n temp.push(replenishData);\r\n }\r\n // 上一个删除元素是文本节点\r\n else if (removeNode.nodeType == 3) {\r\n if (contains(replenishNode, removeCache)) {\r\n replenishData.nodes.add = util_1.toArray(replenishNode.childNodes);\r\n }\r\n temp.push(replenishData);\r\n }\r\n // 上一个删除元素是 Element && 由近到远的删除元素至少有一个是需要补全数据节点的子节点\r\n else if (tag.indexOf(record.target.nodeName) == -1 &&\r\n contains(replenishNode, removeCache)) {\r\n replenishData.nodes.add = util_1.toArray(replenishNode.childNodes);\r\n temp.push(replenishData);\r\n }\r\n }\r\n // 记录本次的节点信息\r\n if (item.type == 'node' && record.removedNodes.length == 1) {\r\n removeNode = record.removedNodes[0];\r\n removeCache.push(removeNode);\r\n }\r\n else {\r\n removeNode = false;\r\n removeCache.length = 0;\r\n }\r\n });\r\n return temp;\r\n}\r\nexports.default = compile;\r\n// 删除元素的历史记录中包含有多少个目标节点的子元素\r\nfunction contains(tar, childs) {\r\n var count = 0;\r\n for (var i = childs.length - 1; i > 0; i--) {\r\n if (tar.contains(childs[i])) {\r\n count++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return count;\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.restore = exports.revoke = void 0;\r\n/**\r\n * 将节点添加到 DOM 树中\r\n * @param data 数据项\r\n * @param list 节点集合(addedNodes 或 removedNodes)\r\n */\r\nfunction insertNode(data, list) {\r\n var reference = data.position.target;\r\n switch (data.position.type) {\r\n // reference 在这些节点的前面\r\n case 'before':\r\n if (reference.nextSibling) {\r\n reference = reference.nextSibling;\r\n list.forEach(function (item) {\r\n data.target.insertBefore(item, reference);\r\n });\r\n }\r\n else {\r\n list.forEach(function (item) {\r\n data.target.appendChild(item);\r\n });\r\n }\r\n break;\r\n // reference 在这些节点的后面\r\n case 'after':\r\n list.forEach(function (item) {\r\n data.target.insertBefore(item, reference);\r\n });\r\n break;\r\n // parent\r\n // reference 是这些节点的父节点\r\n default:\r\n list.forEach(function (item) {\r\n reference.appendChild(item);\r\n });\r\n break;\r\n }\r\n}\r\n/* ------------------------------------------------------------------ 撤销逻辑 ------------------------------------------------------------------ */\r\nfunction revokeNode(data) {\r\n for (var _i = 0, _a = Object.entries(data.nodes); _i < _a.length; _i++) {\r\n var _b = _a[_i], relative = _b[0], list = _b[1];\r\n switch (relative) {\r\n // 反向操作,将这些节点从 DOM 中移除\r\n case 'add':\r\n list.forEach(function (item) {\r\n data.target.removeChild(item);\r\n });\r\n break;\r\n // remove(反向操作,将这些节点添加到 DOM 中)\r\n default: {\r\n insertNode(data, list);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * 撤销 attribute\r\n */\r\nfunction revokeAttr(data) {\r\n var target = data.target;\r\n if (data.oldValue == null) {\r\n target.removeAttribute(data.attr);\r\n }\r\n else {\r\n target.setAttribute(data.attr, data.oldValue);\r\n }\r\n}\r\n/**\r\n * 撤销文本内容\r\n */\r\nfunction revokeText(data) {\r\n data.target.textContent = data.oldValue;\r\n}\r\nvar revokeFns = {\r\n node: revokeNode,\r\n text: revokeText,\r\n attr: revokeAttr,\r\n};\r\n// 撤销 - 对外暴露的接口\r\nfunction revoke(data) {\r\n for (var i = data.length - 1; i > -1; i--) {\r\n var item = data[i];\r\n revokeFns[item.type](item);\r\n }\r\n}\r\nexports.revoke = revoke;\r\n/* ------------------------------------------------------------------ 恢复逻辑 ------------------------------------------------------------------ */\r\nfunction restoreNode(data) {\r\n for (var _i = 0, _a = Object.entries(data.nodes); _i < _a.length; _i++) {\r\n var _b = _a[_i], relative = _b[0], list = _b[1];\r\n switch (relative) {\r\n case 'add': {\r\n insertNode(data, list);\r\n break;\r\n }\r\n // remove\r\n default: {\r\n list.forEach(function (item) {\r\n ;\r\n item.parentNode.removeChild(item);\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nfunction restoreText(data) {\r\n data.target.textContent = data.value;\r\n}\r\nfunction restoreAttr(data) {\r\n ;\r\n data.target.setAttribute(data.attr, data.value);\r\n}\r\nvar restoreFns = {\r\n node: restoreNode,\r\n text: restoreText,\r\n attr: restoreAttr,\r\n};\r\n// 恢复 - 对外暴露的接口\r\nfunction restore(data) {\r\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\r\n var item = data_1[_i];\r\n restoreFns[item.type](item);\r\n }\r\n}\r\nexports.restore = restore;\r\n","module.exports = require(\"core-js-pure/stable/object/entries\");","var parent = require('../../es/object/entries');\n\nmodule.exports = parent;\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chain_1 = require(\"../../../../utils/data-structure/chain\");\r\nvar HtmlCache = /** @class */ (function () {\r\n function HtmlCache(editor) {\r\n this.editor = editor;\r\n this.data = new chain_1.TailChain();\r\n }\r\n /**\r\n * 初始化绑定\r\n */\r\n HtmlCache.prototype.observe = function () {\r\n this.data.resetMax(this.editor.config.historyMaxSize);\r\n // 保存初始化值\r\n this.data.insertLast(this.editor.$textElem.html());\r\n };\r\n /**\r\n * 保存\r\n */\r\n HtmlCache.prototype.save = function () {\r\n this.data.insertLast(this.editor.$textElem.html());\r\n return this;\r\n };\r\n /**\r\n * 撤销\r\n */\r\n HtmlCache.prototype.revoke = function () {\r\n var data = this.data.prev();\r\n if (data) {\r\n this.editor.$textElem.html(data);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * 恢复\r\n */\r\n HtmlCache.prototype.restore = function () {\r\n var data = this.data.next();\r\n if (data) {\r\n this.editor.$textElem.html(data);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return HtmlCache;\r\n}());\r\nexports.default = HtmlCache;\r\n","\"use strict\";\r\n/**\r\n * @description 数据结构 - 链表\r\n * @author fangzhicong\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TailChain = void 0;\r\n/**\r\n * 特殊链表(数据尾插入、插入前自动清理指针后边的数据、插入后指针永远定位于最后一位元素、可限制链表长度、指针双向移动)\r\n */\r\nvar TailChain = /** @class */ (function () {\r\n function TailChain() {\r\n /**\r\n * 链表数据\r\n */\r\n this.data = [];\r\n /**\r\n * 链表最大长度,零表示长度不限\r\n */\r\n this.max = 0;\r\n /**\r\n * 指针\r\n */\r\n this.point = 0;\r\n // 当前指针是否人为操作过\r\n this.isRe = false;\r\n }\r\n /**\r\n * 允许用户重设一次 max 值\r\n */\r\n TailChain.prototype.resetMax = function (maxSize) {\r\n maxSize = Math.abs(maxSize);\r\n maxSize && (this.max = maxSize);\r\n };\r\n Object.defineProperty(TailChain.prototype, \"size\", {\r\n /**\r\n * 当前链表的长度\r\n */\r\n get: function () {\r\n return this.data.length;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 尾插入\r\n * @param data 插入的数据\r\n */\r\n TailChain.prototype.insertLast = function (data) {\r\n // 人为操作过指针,清除指针后面的元素\r\n if (this.isRe) {\r\n this.data.splice(this.point + 1);\r\n this.isRe = false;\r\n }\r\n this.data.push(data);\r\n // 超出链表最大长度\r\n while (this.max && this.size > this.max) {\r\n this.data.shift();\r\n }\r\n // 从新定位指针到最后一个元素\r\n this.point = this.size - 1;\r\n return this;\r\n };\r\n /**\r\n * 获取当前指针元素\r\n */\r\n TailChain.prototype.current = function () {\r\n return this.data[this.point];\r\n };\r\n /**\r\n * 获取上一指针元素\r\n */\r\n TailChain.prototype.prev = function () {\r\n !this.isRe && (this.isRe = true);\r\n this.point--;\r\n if (this.point < 0) {\r\n this.point = 0;\r\n return undefined;\r\n }\r\n return this.current();\r\n };\r\n /**\r\n * 下一指针元素\r\n */\r\n TailChain.prototype.next = function () {\r\n !this.isRe && (this.isRe = true);\r\n this.point++;\r\n if (this.point >= this.size) {\r\n this.point = this.size - 1;\r\n return undefined;\r\n }\r\n return this.current();\r\n };\r\n return TailChain;\r\n}());\r\nexports.TailChain = TailChain;\r\n","\"use strict\";\r\n/**\r\n * @description 记录 scrollTop\r\n * @author fangzhicong\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar cache_1 = __importDefault(require(\"../../../../utils/data-structure/cache\"));\r\nvar ScrollCache = /** @class */ (function (_super) {\r\n __extends(ScrollCache, _super);\r\n function ScrollCache(editor) {\r\n var _this = _super.call(this, editor.config.historyMaxSize) || this;\r\n _this.editor = editor;\r\n /**\r\n * 上一次的 scrollTop\r\n */\r\n _this.last = 0;\r\n _this.target = editor.$textElem.elems[0];\r\n return _this;\r\n }\r\n /**\r\n * 给编辑区容器绑定 scroll 事件\r\n */\r\n ScrollCache.prototype.observe = function () {\r\n var _this = this;\r\n this.target = this.editor.$textElem.elems[0];\r\n this.editor.$textElem.on('scroll', function () {\r\n _this.last = _this.target.scrollTop;\r\n });\r\n this.resetMaxSize(this.editor.config.historyMaxSize);\r\n };\r\n /**\r\n * 保存 scrollTop 值\r\n */\r\n ScrollCache.prototype.save = function () {\r\n _super.prototype.save.call(this, [this.last, this.target.scrollTop]);\r\n return this;\r\n };\r\n /**\r\n * 撤销\r\n */\r\n ScrollCache.prototype.revoke = function () {\r\n var _this = this;\r\n return _super.prototype.revoke.call(this, function (data) {\r\n _this.target.scrollTop = data[0];\r\n });\r\n };\r\n /**\r\n * 恢复\r\n */\r\n ScrollCache.prototype.restore = function () {\r\n var _this = this;\r\n return _super.prototype.restore.call(this, function (data) {\r\n _this.target.scrollTop = data[1];\r\n });\r\n };\r\n return ScrollCache;\r\n}(cache_1.default));\r\nexports.default = ScrollCache;\r\n","\"use strict\";\r\n/**\r\n * @description 记录 range 变化\r\n * @author fangzhicong\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar cache_1 = __importDefault(require(\"../../../../utils/data-structure/cache\"));\r\nvar dom_core_1 = __importDefault(require(\"../../../../utils/dom-core\"));\r\nvar util_1 = require(\"../../../../utils/util\");\r\n/**\r\n * 把 Range 对象转换成缓存对象\r\n * @param range Range 对象\r\n */\r\nfunction rangeToObject(range) {\r\n return {\r\n start: [range.startContainer, range.startOffset],\r\n end: [range.endContainer, range.endOffset],\r\n root: range.commonAncestorContainer,\r\n collapsed: range.collapsed,\r\n };\r\n}\r\n/**\r\n * 编辑区 range 缓存管理器\r\n */\r\nvar RangeCache = /** @class */ (function (_super) {\r\n __extends(RangeCache, _super);\r\n function RangeCache(editor) {\r\n var _this = _super.call(this, editor.config.historyMaxSize) || this;\r\n _this.editor = editor;\r\n _this.lastRange = rangeToObject(document.createRange());\r\n _this.root = editor.$textElem.elems[0];\r\n _this.updateLastRange = util_1.debounce(function () {\r\n _this.lastRange = rangeToObject(_this.rangeHandle);\r\n }, editor.config.onchangeTimeout);\r\n return _this;\r\n }\r\n Object.defineProperty(RangeCache.prototype, \"rangeHandle\", {\r\n /**\r\n * 获取 Range 对象\r\n */\r\n get: function () {\r\n var selection = document.getSelection();\r\n return selection && selection.rangeCount ? selection.getRangeAt(0) : document.createRange();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 初始化绑定\r\n */\r\n RangeCache.prototype.observe = function () {\r\n var self = this;\r\n // 同步节点数据\r\n this.root = this.editor.$textElem.elems[0];\r\n this.resetMaxSize(this.editor.config.historyMaxSize);\r\n // selection change 回调函数\r\n function selectionchange() {\r\n var handle = self.rangeHandle;\r\n if (self.root === handle.commonAncestorContainer ||\r\n self.root.contains(handle.commonAncestorContainer)) {\r\n // 非中文输入状态下才进行记录\r\n if (!self.editor.isComposing) {\r\n self.updateLastRange();\r\n }\r\n }\r\n }\r\n // backspace 和 delete 手动更新 Range 缓存\r\n function deletecallback(e) {\r\n if (e.key == 'Backspace' || e.key == 'Delete') {\r\n // self.lastRange = rangeToObject(self.rangeHandle)\r\n self.updateLastRange();\r\n }\r\n }\r\n // 绑定事件(必须绑定在 document 上,不能绑定在 window 上)\r\n dom_core_1.default(document).on('selectionchange', selectionchange);\r\n // 解除事件绑定\r\n this.editor.beforeDestroy(function () {\r\n dom_core_1.default(document).off('selectionchange', selectionchange);\r\n });\r\n // 删除文本时手动更新 range\r\n self.editor.$textElem.on('keydown', deletecallback);\r\n };\r\n /**\r\n * 保存 Range\r\n */\r\n RangeCache.prototype.save = function () {\r\n var current = rangeToObject(this.rangeHandle);\r\n _super.prototype.save.call(this, [this.lastRange, current]);\r\n this.lastRange = current;\r\n return this;\r\n };\r\n /**\r\n * 设置 Range,在 撤销/恢复 中调用\r\n * @param range 缓存的 Range 数据\r\n */\r\n RangeCache.prototype.set = function (range) {\r\n if (range) {\r\n var handle = this.rangeHandle;\r\n handle.setStart.apply(handle, range.start);\r\n handle.setEnd.apply(handle, range.end);\r\n this.editor.menus.changeActive();\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * 撤销\r\n */\r\n RangeCache.prototype.revoke = function () {\r\n var _this = this;\r\n return _super.prototype.revoke.call(this, function (data) {\r\n _this.set(data[0]);\r\n });\r\n };\r\n /**\r\n * 恢复\r\n */\r\n RangeCache.prototype.restore = function () {\r\n var _this = this;\r\n return _super.prototype.restore.call(this, function (data) {\r\n _this.set(data[1]);\r\n });\r\n };\r\n return RangeCache;\r\n}(cache_1.default));\r\nexports.default = RangeCache;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dom_core_1 = __importDefault(require(\"../../utils/dom-core\"));\r\nrequire(\"../../assets/style/disable.less\");\r\nvar isCurtain = false; // 避免重复生成幕布\r\nvar $contentDom;\r\nvar $menuDom;\r\n// 创建幕布\r\nfunction disable(editor) {\r\n if (isCurtain)\r\n return;\r\n // 隐藏编辑区域\r\n editor.$textElem.hide();\r\n // 生成div 渲染编辑内容\r\n var textContainerZindexValue = editor.zIndex.get('textContainer');\r\n var content = editor.txt.html();\r\n $contentDom = dom_core_1.default(\"<div class=\\\"w-e-content-mantle\\\" style=\\\"z-index:\" + textContainerZindexValue + \"\\\">\\n <div class=\\\"w-e-content-preview w-e-text\\\">\" + content + \"</div>\\n </div>\");\r\n editor.$textContainerElem.append($contentDom);\r\n // 生成div 菜单膜布\r\n var menuZindexValue = editor.zIndex.get('menu');\r\n $menuDom = dom_core_1.default(\"<div class=\\\"w-e-menue-mantle\\\" style=\\\"z-index:\" + menuZindexValue + \"\\\"></div>\");\r\n editor.$toolbarElem.append($menuDom);\r\n isCurtain = true;\r\n}\r\n// 销毁幕布并显示可编辑区域\r\nfunction enable(editor) {\r\n if (!isCurtain)\r\n return;\r\n $contentDom.remove();\r\n $menuDom.remove();\r\n editor.$textElem.show();\r\n isCurtain = false;\r\n}\r\nexports.default = {\r\n disable: disable,\r\n enable: enable,\r\n};\r\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/less-loader/dist/cjs.js!./disable.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".w-e-content-mantle {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n overflow-y: auto;\\n}\\n.w-e-content-mantle .w-e-content-preview {\\n width: 100%;\\n min-height: 100%;\\n padding: 0 10px;\\n line-height: 1.5;\\n}\\n.w-e-content-mantle .w-e-content-preview img {\\n cursor: default;\\n}\\n.w-e-content-mantle .w-e-content-preview img:hover {\\n box-shadow: none;\\n}\\n.w-e-menue-mantle {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n top: 0;\\n left: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n"],"sourceRoot":""}