{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/@tiptap/extension-image/dist/tiptap-extension-image.esm.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/prosemirror-transform/dist/index.es.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/prosemirror-tables/dist/index.es.js","webpack:///./node_modules/@tiptap/extension-table/dist/tiptap-extension-table.esm.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/vue3-simple-typeahead/dist/vue3-simple-typeahead.esm.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/@tiptap/extension-subscript/dist/tiptap-extension-subscript.esm.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/orderedmap/index.es.js","webpack:///./node_modules/prosemirror-model/dist/index.es.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/linkifyjs/dist/linkify.module.js","webpack:///./node_modules/@tiptap/extension-link/dist/tiptap-extension-link.esm.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/vue3-chart-v2/src/components/BaseChart.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.min.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@tiptap/extension-table-cell/dist/tiptap-extension-table-cell.esm.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/prosemirror-state/dist/index.es.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/vuex/dist/vuex.esm-browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/prosemirror-view/dist/index.es.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@tiptap/extension-blockquote/dist/tiptap-extension-blockquote.esm.js","webpack:///./node_modules/@tiptap/extension-bold/dist/tiptap-extension-bold.esm.js","webpack:///./node_modules/@tiptap/extension-bullet-list/dist/tiptap-extension-bullet-list.esm.js","webpack:///./node_modules/@tiptap/extension-code/dist/tiptap-extension-code.esm.js","webpack:///./node_modules/@tiptap/extension-code-block/dist/tiptap-extension-code-block.esm.js","webpack:///./node_modules/@tiptap/extension-document/dist/tiptap-extension-document.esm.js","webpack:///./node_modules/prosemirror-dropcursor/dist/index.es.js","webpack:///./node_modules/@tiptap/extension-dropcursor/dist/tiptap-extension-dropcursor.esm.js","webpack:///./node_modules/prosemirror-gapcursor/dist/index.es.js","webpack:///./node_modules/@tiptap/extension-gapcursor/dist/tiptap-extension-gapcursor.esm.js","webpack:///./node_modules/@tiptap/extension-hard-break/dist/tiptap-extension-hard-break.esm.js","webpack:///./node_modules/@tiptap/extension-heading/dist/tiptap-extension-heading.esm.js","webpack:///./node_modules/rope-sequence/dist/index.es.js","webpack:///./node_modules/prosemirror-history/dist/index.es.js","webpack:///./node_modules/@tiptap/extension-history/dist/tiptap-extension-history.esm.js","webpack:///./node_modules/@tiptap/extension-horizontal-rule/dist/tiptap-extension-horizontal-rule.esm.js","webpack:///./node_modules/@tiptap/extension-italic/dist/tiptap-extension-italic.esm.js","webpack:///./node_modules/@tiptap/extension-list-item/dist/tiptap-extension-list-item.esm.js","webpack:///./node_modules/@tiptap/extension-ordered-list/dist/tiptap-extension-ordered-list.esm.js","webpack:///./node_modules/@tiptap/extension-paragraph/dist/tiptap-extension-paragraph.esm.js","webpack:///./node_modules/@tiptap/extension-strike/dist/tiptap-extension-strike.esm.js","webpack:///./node_modules/@tiptap/extension-text/dist/tiptap-extension-text.esm.js","webpack:///./node_modules/@tiptap/starter-kit/dist/tiptap-starter-kit.esm.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/vue-loader-v16/dist/exportHelper.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@tiptap/extension-superscript/dist/tiptap-extension-superscript.esm.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/w3c-keyname/index.es.js","webpack:///./node_modules/prosemirror-keymap/dist/index.es.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@tiptap/extension-table-row/dist/tiptap-extension-table-row.esm.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-dsv/src/dsv.js","webpack:///./node_modules/d3-dsv/src/csv.js","webpack:///./node_modules/d3-dsv/src/tsv.js","webpack:///./node_modules/d3-fetch/src/text.js","webpack:///./node_modules/d3-fetch/src/dsv.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/descending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/@tiptap/extension-text-align/dist/tiptap-extension-text-align.esm.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/prosemirror-commands/dist/index.es.js","webpack:///./node_modules/prosemirror-schema-list/dist/index.es.js","webpack:///./node_modules/@tiptap/core/dist/tiptap-core.esm.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/@tiptap/extension-table-header/dist/tiptap-extension-table-header.esm.js","webpack:///./node_modules/vue-dk-toast/dist/dkToast.umd.min.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/downloadjs/download.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.min.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/tippy.js/dist/tippy.esm.js","webpack:///./node_modules/@tiptap/extension-bubble-menu/dist/tiptap-extension-bubble-menu.esm.js","webpack:///./node_modules/@tiptap/extension-floating-menu/dist/tiptap-extension-floating-menu.esm.js","webpack:///./node_modules/@tiptap/vue-3/dist/tiptap-vue-3.esm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/vue3-chart-v2/node_modules/chart.js/dist/Chart.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/moment/locale/se.js"],"names":["$","global","call","uncurryThis","isCallable","isObject","DELEGATES_TO_EXEC","execCalled","re","exec","apply","this","arguments","test","Error","un$Test","target","proto","forced","str","result","wellKnownSymbol","TO_STRING_TAG","module","exports","String","factory","moment","uzLatn","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","week","dow","doy","Queue","head","tail","prototype","add","item","entry","next","get","ml","monthsParseExact","meridiemParse","meridiemHour","hour","meridiem","minute","isLower","aCallable","NATIVE_BIND","bind","fn","that","undefined","cv","output","affix","dayOfMonthOrdinalParse","ordinal","plural","n","translate","number","withoutSuffix","key","isFuture","is","inputRegex","Image","create","name","inline","HTMLAttributes","options","draggable","src","default","alt","title","tag","setImage","commands","insertContent","type","attrs","find","getAttributes","match","classof","toIndexedObject","$getOwnPropertyNames","f","arraySlice","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","fo","ja","eras","since","offset","narrow","abbr","until","Infinity","eraYearOrdinalRegex","eraYearOrdinalParse","input","parseInt","l","ll","lll","llll","isPM","now","period","toLength","obj","length","toPaddingObject","padding","state","assign","rects","placement","arrow","_ref","_state$modifiersData$","arrowElement","elements","popperOffsets","modifiersData","basePlacement","axis","isVertical","indexOf","len","paddingObject","arrowRect","minProp","maxProp","endDiff","reference","popper","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","min","max","center","axisProp","centerOffset","effect","_ref2","_options$element","element","querySelector","enabled","phase","requires","requiresIfExists","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","validator","validators","Axios","instanceConfig","defaults","interceptors","request","response","configOrUrl","config","url","method","toLowerCase","transitional","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","forEach","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","push","chain","Array","concat","Promise","resolve","then","shift","newConfig","onFulfilled","onRejected","reject","getUri","params","paramsSerializer","replace","data","monthsShortDot","monthsParse","monthsRegex","esDo","format","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","hours","w","ww","arMa","applyStyles","keys","style","styles","attributes","value","removeAttribute","setAttribute","initialStyles","position","strategy","left","top","margin","styleProperties","hasOwnProperty","reduce","property","attribute","lower16","factor16","Math","pow","makeRecover","index","recoverIndex","recoverOffset","MapResult","pos","deleted","recover","StepMap","ranges","inverted","diff","i","mapResult","assoc","_map","map","simple","oldIndex","newIndex","start","oldSize","newSize","end","side","touches","oldStart","newStart","invert","toString","JSON","stringify","empty","Mapping","maps","mirror","from","to","TransformError","message","err","__proto__","slice","copy","appendMap","mirrors","setMirror","appendMapping","mapping","startSize","mirr","getMirror","appendMappingInverted","totalSize","inverse","corr","constructor","Transform","doc","steps","docs","prototypeAccessors","before","configurable","docChanged","mustOverride","step","object","maybeStep","failed","addStep","getMap","defineProperties","stepsByID","Step","_doc","_mapping","merge","_other","toJSON","fromJSON","schema","json","stepType","RangeError","jsonID","id","stepClass","StepResult","ok","fail","fromReplace","e","ReplaceStep","structure","contentBetween","size","other","openEnd","openStart","slice$1","content","append","ReplaceAroundStep","gapFrom","gapTo","insert","gap","inserted","insertAt","removeBetween","$from","dist","depth","indexAfter","node","childCount","maybeChild","isLeaf","firstChild","canCut","canReplace","liftTarget","range","parent","cutByIndex","startIndex","endIndex","$to","spec","isolating","findWrapping","nodeType","innerRange","around","findWrappingOutside","inner","findWrappingInside","withAttrs","contentMatchAt","outer","canReplaceWith","child","inside","contentMatch","lastType","innerMatch","matchType","validEnd","canChangeType","$pos","canSplit","typesAfter","base","innerType","validContent","index$1","rest","after","replaceChild","baseType","canJoin","joinable","nodeBefore","nodeAfter","a","b","canAppend","joinPoint","dir","isTextblock","insertPoint","parentOffset","d$1","dropPoint","pass","bias","insertPos","fits","wrapping","mapFragment","fragment","mapped","isInline","fromArray","lift","gapStart","gapEnd","splitting","splitting$1","wrap","wrappers","setBlockType","this$1","mapFrom","nodesBetween","hasMarkup","clearIncompatible","startM","endM","nodeSize","marks","setNodeMarkup","nodeAt","newNode","replaceWith","typeAfter","join","AddMarkStep","mark","oldSlice","sharedDepth","isAtom","allowsMarkType","addToSet","RemoveMarkStep","eq","markFromJSON","removeFromSet","replaceStep","fitsTrivially","Fitter","fit","addMark","removed","added","removing","adding","isInSet","newSet","removeMark","matched","toRemove","found","set","found$1","j","parentType","delSteps","cur","allowed","fill","fillBefore","i$1","delete","unplaced","frontier","placed","prototypeAccessors$1","dropFromFragment","count","addToFragment","lastChild","contentAt","closeNodeStart","frag","matchFragment","contentAfterFits","open","compatibleContent","invalidMarks","allowsMarks","closeFragment","oldOpen","newOpen","first","coveredDepths","minDepth","inlineContent","findFittable","placeNodes","openMore","dropNode","moveInline","mustMoveInline","placedSize","close","sliceDepth","frontierDepth","ref","inject","openAtEnd","closeFrontierNode","openFrontierNode","taken","ref$1","openEndCount","matches","allowedMarks","toEnd","i$2","level","findCloseLevel","scan","dropInner","match$1","type$1","move","pop","replaceRange","deleteRange","targetDepths","preferredTarget","defining","splice","preferredTargetIndex","leftNodes","preferredDepth","openDepth","targetDepth","expand","startSteps","replaceRangeWith","point","covered","last","isArray","isConstructor","SPECIES","originalArray","C","readFromCache","addToCache","WeakMap","cache","cache$1","cacheSize","cachePos","Rect","right","bottom","TableMap","width","height","problems","computeMap","table","tableRole","findWidth","mapPos","colWidths","row","rowNode","cellNode","colspan","rowspan","colwidth","colW","widthIndex","prev","expectedPos","missing","tableMap","badWidths","findBadColWidths","hasRowSpan","rowWidth","prevRow","cell","cell$1","seen","updated","col","colWidth","freshColWidth","tableNodeTypes","cached","nodes","role","findCell","curPos","j$1","colCount","nextCell","rectBetween","leftA","rightA","topA","bottomA","leftB","rightB","topB","bottomB","cellsInRect","rect","positionAt","rowStart","rowEnd","rowEndIndex","cellAround","cellWrapping","isInTable","$head","selection","selectionCell","sel","$anchorCell","$headCell","$anchor","cellNear","pos$1","role$1","pointsAtCell","moveCellForward","inSameTable","$a","$b","moved","setAttr","prop","removeColSpan","some","addColSpan","columnIsHeader","headerCell","header_cell","Selection","CellSelection","cells","filter","p","tableChanged","isRowSelection","rowSelection","isColSelection","colSelection","between","rows","rowContent","cellRect","extraLeft","extraRight","createAndFill","attrs$1","tr","findFrom","setSelection","forEachCell","anchorTop","headTop","anchorBot","headBot","anchorRect","headRect","anchorLeft","headLeft","anchorRight","headRight","anchor","anchorCell","headCell","getBookmark","CellBookmark","visible","drawCellSelection","class","isCellBoundarySelection","afterFrom","beforeTo","isTextSelectionAcrossCells","fromCellBoundaryNode","toCellBoundaryNode","node$1","normalizeSelection","allowTableNodeSelection","normalize","$cell","lastCell","pastedCells","fitSlice","ensureRectangular","widths","r","r$1","r$2","clipCells","newWidth","newHeight","newRows","newRows$1","row$1","cells$1","source","growTable","emptyHead","types","start$1","header","emptyRow","isolateHorizontal","cellTop","cellLeft","isolateVertical","updatePos","insertCells","dispatch","tableStart","recomp","near","handleKeyDown","shiftArrow","deleteCellSelection","maybeSetSelection","scrollIntoView","view","atEndOfCell","newSel","$next","baseContent","handleTripleClick","handlePaste","_","handleMouseDown","startEvent","ctrlKey","metaKey","startDOMCell","domInCell","shiftKey","setCellSelection","preventDefault","cellUnderMouse","root","addEventListener","stop","event","starting","getState","setMeta","removeEventListener","cellPos","dirStr","endOfTextblock","dom","parentNode","nodeName","mousePos","posAtCoords","clientX","clientY","fixTablesKey","changedDescendants","old","curSize","sameMarkup","fixTables","oldState","check","fixTable","descendants","tablePos","mustAdd","prob","cell$2","i$3","tableNodeType","selectedRect","addColumn","refColumn","addColumnBefore","addColumnAfter","removeColumn","mapStart","deleteColumn","rowIsHeader","addRow","rowPos","refRow","addRowBefore","addRowAfter","removeRow","nextRow","newPos","deleteRow","isEmpty","c","cellsOverlapRectangle","indexTop","indexLeft","indexBottom","indexRight","mergeCells","mergedPos","mergedCell","splitCell","nodeTypes","splitCellWithType","getCellType","baseAttrs","setCellAttr","deprecated_toggleHeader","isHeaderEnabledByType","cellPositions","toggleHeader","useDeprecatedLogic","isHeaderRowEnabled","isHeaderColumnEnabled","isHeaderEnabled","selectionStartsAt","cellsRect","newType","relativeCellPos","toggleHeaderRow","toggleHeaderColumn","toggleHeaderCell","findNextCell","rowNode$1","goToNextCell","direction","deleteTable","TableView","cellMinWidth","document","createElement","className","appendChild","colgroup","updateColumns","contentDOM","overrideCol","overrideValue","totalWidth","fixedWidth","nextDOM","hasWidth","cssWidth","nextSibling","removeChild","minWidth","update","ignoreMutation","record","contains","key$1","columnResizing","handleWidth","View","lastColumnResizable","plugin","init","props","nodeViews","ResizeState","pluginState","activeHandle","handleDOMEvents","mousemove","handleMouseMove","mouseleave","handleMouseLeave","mousedown","handleMouseDown$1","decorations","handleDecorations","dragging","domCellAround","getBoundingClientRect","edgeCell","updateHandle","currentColWidth","finish","updateColumnWidth","draggedWidth","setDragging","which","dragged","displayColumnWidth","startX","startWidth","domAtPos","childNodes","domWidth","offsetWidth","parts","classList","setHandle","mapIndex","zeroes","widget","tableEditing","getMeta","createSelectionBetween","appendTransaction","findDiffStart","childA","childB","isText","text","findDiffEnd","posA","posB","iA","iB","same","minSize","action","handle","Fragment","prototypeAccessors$3","nodeStart","textBetween","blockSeparator","leafText","separated","isBlock","withText","cut","current","addToStart","addToEnd","otherPos","findIndex","round","retIndex","toStringInner","nodeFromJSON","array","joined","compareDeep","p$1","Mark","ReplaceError","excludes","rank","sameSet","setFrom","none","sort","Slice","prototypeAccessors$1$2","removeRange","indexTo","offsetTo","insertInto","replaceOuter","prepareSliceForReplace","replaceThreeWay","replaceTwoWay","checkJoin","main","sub","$before","$after","addNode","addRange","$start","$end","textOffset","$along","extra","resolveNoCache","maxOpen","openIsolating","n$1","ResolvedPos","path","prototypeAccessors$2$1","resolveDepth","val","dOff","posAtIndex","tmp","inclusive","marksAcross","blockRange","pred","NodeRange","sameParent","rem","resolveCached","resolveCache","resolveCachePos","resolveCacheSize","prototypeAccessors$1$1$1","emptyAttrs","Node","prototypeAccessors$3$1","textContent","wrapMarks","startPos","defaultAttrs","includeParents","childAfter","childBefore","rangeHasMark","toDebugString","replacement","one","two","ContentMatch","wrapCache","prototypeAccessors$4","defaultType","edgeCount","parse","string","stream","TokenStream","expr","parseExpr","dfa","nfa","checkForDeadEnds","hasRequiredAttrs","compatible","search","finished","tp","computed","computeWrapping","active","via","reverse","edge","out","tokens","prototypeAccessors$1$2$1","exprs","parseExprSeq","eat","parseExprSubscript","parseExprAtom","parseExprRange","parseNum","Number","resolveName","typeName","groups","connect","compile","term","edges","loop","loop$1","next$1","next$2","cmp","nullFrom","labeled","explore","states","known","states$1","work","dead","attrName","attr","hasDefault","computeAttrs","built","given","initAttrs","Attribute","tok","SyntaxError","NodeType","group","markSet","prototypeAccessors$5","whitespace","atom","code","isRequired","createChecked","markType","topType","topNode","prototypeAccessors$1$3","MarkType","excluded","instance","blockTags","address","article","aside","blockquote","canvas","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","hgroup","hr","li","noscript","ol","pre","section","tfoot","ul","ignoreTags","script","listTags","OPT_PRESERVE_WS","OPT_PRESERVE_WS_FULL","OPT_OPEN_LEFT","wsOptionsFor","preserveWhitespace","NodeContext","pendingMarks","solid","activeMarks","stashMarks","popFromStashMark","applyPending","nextType","pending","markMayApply","inlineContext","ParseContext","parser","isOpen","topContext","topOptions","topMatch","topNodeType","findPositions","needsBlock","prototypeAccessors$6","currentPos","normalizeList","prevItem","parseStyles","trim","v","returned","findSameMarkInSet","addDOM","addTextNode","getAttribute","readStyles","addPendingMark","addElement","removePendingMark","nodeValue","domNodeBefore","previousSibling","insertNode","findInText","findInside","matchAfter","ruleID","normalizeLists","rule","ruleFromNode","matchTag","ignore","ignoreFallback","skip","closeParent","sync","oldNeedsBlock","leafFallback","addAll","addElementByRule","consuming","ownerDocument","createTextNode","findPlace","matchStyle","continueAfter","this$1$1","enter","startIn","getContent","contentElement","findAround","findAtPoint","route","cx","enterInner","block","textblockFromContext","closeExtra","preserveWS","topOpen","compareDocumentPosition","textNode","matchesContext","context","option","useRoot","part","$context","deflt","upto","lastIndexOf","stashMark","prototypeAccessors$2","prototypeAccessors$1$1","classesById","SelectionRange","lastNode","lastParent","selectionToInsertionEnd","textOnly","TextSelection","findSelectionIn","AllSelection","atStart","atEnd","cls","selectionClass","$cursor","ensureMarks","TextBookmark","dPos","NodeSelection","NodeBookmark","isSelectable","selectable","AllBookmark","startLen","_from","_to","_newFrom","newTo","UPDATED_SEL","UPDATED_MARKS","UPDATED_SCROLL","Transaction","time","Date","curSelection","curSelectionFor","storedMarks","meta","selectionSet","storedMarksSet","isGeneric","scrolledIntoView","setStoredMarks","addStoredMark","removeStoredMark","setTime","replaceSelection","replaceSelectionWith","inheritMarks","deleteSelection","insertText","self","FieldDesc","desc","baseFields","_marks","_old","Configuration","plugins","fields","pluginsByKey","EditorState","applyTransaction","filterTransaction","rootTr","transactions","trs","newState","applyInner","haveNew","newInstance","field","applyListeners","$config","reconfigure","pluginFields","addApplyListener","removeApplyListener","createCell","cellType","cellContent","getTableNodeTypes","roles","createTable","rowsCount","colsCount","withHeaderRow","headerCells","isCellSelection","deleteTableWhenAllCellsSelected","editor","cellCount","includes","allCellsSelected","mutation","Table","resizable","insertTable","cols","mergeOrSplit","setCellAttribute","goToPreviousCell","Tab","can","run","Backspace","Delete","isResizable","isEditable","extension","storage","processRelativeTime","gomLatn","standalone","isFormat","toObject","floor","charAt","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","tailPos","symbols","ch","capture","fails","defineProperty","argument","callback","arr","frCh","enAu","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","minutes","da","tlPh","includeScale","scaleX","scaleY","offsetHeight","x","eu","$RegExp","RegExp","th","translator","words","correctGrammaticalCase","wordKey","srCyrl","day","lastWeekDays","anObject","regexpExec","TypeError","R","S","DOMIterables","DOMTokenListPrototype","createNonEnumerableProperty","handlePrototype","CollectionPrototype","COLLECTION_NAME","ocLnc","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","isPrototypeOf","Prototype","mt","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","done","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","symbolMap","0","pluralForm","plurals","pluralize","u","arLy","preparse","postformat","thisArg","args","getSideOffsets","overflow","preventedOffsets","isAnySideFullyClipped","hide","referenceRect","popperRect","preventOverflow","referenceOverflow","elementContext","popperAltOverflow","altBoundary","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","V8_VERSION","METHOD_NAME","foo","Boolean","emits","placeholder","items","required","defaultItem","itemProjection","Function","minInputLength","selectItem","inputId","random","toFixed","isInputFocused","currentSelectionIndex","methods","isListVisible","filteredItems","$emit","$event","scrollSelectionIntoView","setTimeout","list_node","wrapperId","active_node","offsetTop","scrollTop","scroll_to","scrollTo","currentSelection","getElementById","blur","regexp","escapeRegExp","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","render","_ctx","_cache","$props","$setup","$data","$options","onInput","onFocus","onBlur","onKeydown","onArrowDown","onArrowUp","selectCurrentSelection","autocomplete","$slots","onMousedown","onClick","onMouseenter","boldMatchText","innerHTML","__scopeId","entry_esm","installable","install","app","component","getWindow","defaultView","word","num","forms","relativeTimeWithPlural","be","ka","$0","$1","$2","tryToString","isArrayIteratorMethod","lengthOfArrayLike","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","ko","token","isUpper","toIntegerOrInfinity","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","numberMap","ku","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","process","stringifySafely","rawValue","encoder","isString","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","Subscript","setSubscript","setMark","toggleSubscript","toggleMark","unsetSubscript","unsetMark","notARegExp","requireObjectCoercible","correctIsRegExpLogic","stringIndexOf","searchString","bs","PROPER_FUNCTION_NAME","PROPER","$toString","regExpFlags","TO_STRING","RegExpPrototype","n$ToString","getFlags","NOT_GENERIC","flags","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","Constructor","units","translateSeconds","translateSingular","special","lt","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getParentNode","assignedSlot","host","vi","me","getMethod","kind","innerResult","innerError","FunctionPrototype","Reflect","af","MISSED_STICKY","getInternalState","sticky","location","defer","channel","port","html","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","runner","listener","post","postMessage","protocol","nextTick","port2","port1","onmessage","importScripts","version","Deno","versions","v8","__CANCEL__","uz","OrderedMap","newKey","remove","addBefore","place","without","prepend","subtract","orderedmap","TextNode","contentExprCache","prop$1","contentExpr","markExpr","gatherMarks","prop$2","excl","wrappings","mark$1","text$1","DOMParser","rules","tags","parseSlice","namespace","namespaceURI","getAttrs","charCodeAt","schemaRules","priority","nextPriority","parseDOM","rules$1","name$1","fromSchema","domParser","selector","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","DOMSerializer","gatherToDOM","toDOM","serializeFragment","createDocumentFragment","keep","rendered","spanning","markDOM","serializeMark","serializeNodeInner","renderSpec","onContent","serializeNode","xmlNS","tagName","space","createElementNS","space$1","setAttributeNS","innerContent","domSerializer","nodesFromSchema","marksFromSchema","encode","encodeURIComponent","serializedParams","isDate","toISOString","hashmarkIndex","State","jr","jd","t","accepts","tt","tokenOrState","nextState","makeState","templateState","takeT","makeAcceptingState","makeT","startState","makeRegexT","regex","_nextState","makeMultiT","chars","makeBatchT","transitions","makeChainT","endState","defaultStateFactory","DOMAIN","LOCALHOST","TLD","NUM","PROTOCOL","MAILTO","WS","NL","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","SYM","freeze","tlds","LETTER","EMOJI","EMOJI_VARIATION","DIGIT","SPACE","init$2","customProtocols","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","DOMAIN_REGEX_TRANSITIONS","makeDomainState","makeNearDomainState","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","S_CUSTOM_PROTOCOL","_i","run$1","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","substr","second","char","_typeof","Symbol","defaultProtocol","events","noop","formatHref","nl2br","rel","validate","truncate","Options","opts","ignoredTags","toUpperCase","href","toHref","formatted","formattedHref","getObject","operator","optionValue","inherits","extended","MultiToken","createTokenClass","Token","tk","isLink","MailtoEmail","Email","Text","Nl","Url","hasProtocol","hasSlashSlash","multi","Base","init$1","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","multis","textTokens","secondState","multiLength","parserCreateMultiToken","Multi","subtokens","startIdx","endIdx","console","warn","INIT","scanner","pluginQueue","initialized","tokenize","filtered","autolink","docChanges","transaction","preventAutolink","transform","changes","oldRange","newRange","oldMark","newFrom","newMarks","newMark","oldLinkText","newLinkText","wasLink","textBlock","link","fromIsInRange","toIsInRange","clickHandler","handleClick","_a","closest","pasteHandler","Link","keepOnSplit","openOnClick","linkOnPaste","setLink","toggleLink","extendEmptyMarkRange","unsetLink","Iterators","getFreshSideObject","V8_PROTOTYPE_DEFINE_BUG","objectKeys","Properties","isAxiosError","description","fileName","lineNumber","columnNumber","stack","enCa","isStandardBrowserEnv","originURL","msie","navigator","urlParsingNode","resolveURL","hash","hostname","pathname","requestURL","parsed","enGb","relativeTimeMr","mr","defaultModifiers","createPopper","ne","zhMo","hm","12","13","40","tg","cs","useChartInfo","myName","userData","userOptions","setChartData","payload","setChartOption","generateChart","chartsId","chartsType","chartId","chartType","cssClasses","chartObj","destroy","charObj","datasets","ctx","$refs","getContext","backgroundColor","labels","responsive","watch","prevState","renderChart","currentChartOption","Bar","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getterFor","iterated","getVariation","ta","__esModule","enumerable","startsWith","o","dispatchEvent","Event","jquery","getClientRects","getComputedStyle","getPropertyValue","ELEMENT_NODE","disabled","hasAttribute","g","documentElement","attachShadow","getRootNode","jQuery","body","NAME","jQueryInterface","noConflict","readyState","E","transitionDuration","transitionDelay","parseFloat","A","T","k","mouseenter","N","Set","D","uidEvent","I","originalHandler","delegationSelector","H","has","relatedTarget","delegateTarget","oneOff","querySelectorAll","off","trigger","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","bubbles","cancelable","defaultPrevented","B","Map","z","_element","DATA_KEY","EVENT_KEY","getInstance","F","on","getOrCreateInstance","q","_queueCallback","_destroyElement","dispose","each","W","U","toggle","K","V","X","dataset","getDataAttribute","pageYOffset","pageXOffset","offsetLeft","Y","findOne","children","previousElementSibling","nextElementSibling","Q","G","interval","keyboard","slide","pause","touch","Z","J","et","st","ArrowLeft","ArrowRight","nt","ot","rt","at","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","nextWhenVisible","_getItemIndex","getDataAttributes","abs","_keydown","_addTouchEventListeners","pointerType","_handleSwipe","clearTimeout","defaultInterval","_directionToOrder","_getItemByOrder","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","ride","carouselInterface","dataApiClickHandler","ct","ht","dt","ut","gt","_t","ft","pt","_isTransitioning","_triggerArray","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","show","_getDimension","bt","vt","yt","Et","wt","At","Tt","Ct","kt","Lt","St","Ot","Nt","Dt","It","Pt","xt","Mt","boundary","display","popperConfig","autoClose","jt","Ht","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","setDataAttribute","_createPopper","focus","_completeHide","removeDataAttribute","Default","DefaultType","_getPopperConfig","modifiers","_getPlacement","_getOffset","button","composedPath","clickEvent","stopPropagation","_selectMenuItem","clearMenus","dataApiKeydownHandler","$t","Bt","zt","innerWidth","getWidth","_disableOverFlow","_setElementAttributes","_saveInitialAttribute","_applyManipulationCallback","_resetElementAttributes","removeProperty","Rt","isVisible","isAnimated","rootElement","clickCallback","Ft","qt","Wt","Ut","_isAppended","_append","_getElement","_emulateAnimation","Kt","trapElement","autofocus","Vt","Xt","Yt","Qt","_isActive","_lastTabNavDirection","_handleFocusin","_handleKeydown","focusableChildren","Gt","Zt","Jt","backdrop","te","ee","ie","se","oe","ae","le","ce","he","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","deactivate","_hideModal","activate","_triggerBackdropTransition","_resetAdjustments","reset","currentTarget","scrollHeight","overflowY","paddingLeft","paddingRight","de","ue","scroll","ge","_e","fe","pe","visibility","ve","ye","Ee","we","parseFromString","Ae","Te","Ce","animation","template","delay","container","fallbackPlacements","customClass","sanitize","sanitizeFn","allowList","ke","AUTO","TOP","RIGHT","BOTTOM","LEFT","Le","area","br","em","img","small","span","sup","strong","Se","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Oe","Ne","De","Ie","Pe","xe","Me","je","He","$e","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","getTitle","_getAttachment","_addAttachmentClass","_resolvePossibleFunction","hover","_cleanTipClass","setContent","_sanitizeAndSetContent","setElementContent","_getDelegateConfig","_handlePopperPlacementChange","onFirstUpdate","_getBasicClassPrefix","updateAttachment","_fixTitle","Be","ze","Re","Fe","_getContent","qe","We","Ue","Ke","Ve","Xe","Ye","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_getScrollTop","_getScrollHeight","innerHeight","_getOffsetHeight","_activate","_clear","parents","Qe","Ge","Ze","Je","ti","ei","_transitionComplete","ii","si","ni","oi","ri","autohide","ai","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","_onInteraction","Alert","Button","Carousel","Collapse","Dropdown","Modal","Offcanvas","Popover","ScrollSpy","Toast","Tooltip","kn","setupDevtoolsPlugin","pluginDescriptor","setupFn","hook","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","list","__VUE_DEVTOOLS_PLUGINS__","proxiedTarget","emit","arKw","platform","arch","execPath","pid","browser","env","argv","binding","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","isNaN","lastDigit","firstDigit","lb","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","MATCH","isRegExp","createError","aConstructor","defaultConstructor","pref","valueOf","az","getOwnPropertySymbols","symbol","TableCell","parseHTML","zhHk","config1","config2","getMergedValue","isPlainObject","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","inheritIfRequired","stickyHelpers","enforceInternalState","enforce","setSpecies","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","NativeRegExp","IS_NCG","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","BASE_FORCED","handleDotAll","chr","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","rawFlags","dotAll","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","raw","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","createProperty","fin","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","iteratorMethod","ga","transformData","isCancel","Cancel","throwIfCancellationRequested","cancelToken","throwIfRequested","signal","aborted","reason","days","ur","bindProps","Plugin","createKey","PluginKey","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","nativeReplace","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","res","functionalReplace","fullUnicode","unicode","lastIndex","results","matchStr","accumulatedResult","nextSourcePosition","replacerArgs","storeKey","forEachValue","isPromise","assert","msg","partial","genericSubscribe","subs","resetStore","store","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreState","_state","getters","_makeLocalGettersCache","wrappedGetters","computedObj","strict","enableStrictMode","_withCommit","rootState","isRoot","getNamespace","namespaced","parentState","getNestedState","moduleName","local","makeLocalContext","forEachMutation","namespacedType","registerMutation","forEachAction","handler","registerAction","forEachGetter","getter","registerGetter","forEachChild","noNamespace","_type","_payload","_options","unifyObjectStyle","commit","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","_devtoolHook","catch","rawGetter","_committing","deep","flush","LABEL_VUEX_BINDINGS","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","label","homepage","logo","packageName","componentStateTypes","api","addTimelineLayer","color","COLOR_LIME_500","addInspector","icon","treeFilterPlaceholder","getInspectorTree","inspectorId","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","nodeId","formatStoreForInspectorState","getStoreModule","editInspectorState","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","subscribeAction","_id","_time","groupId","subtitle","duration","_custom","tooltip","COLOR_DARK","COLOR_WHITE","TAG_NAMESPACED","textColor","extractNameFromPath","_children","endsWith","gettersKeys","storeState","editable","tree","transformPathsToObjectTree","canThrow","leafKey","abstract","moduleMap","cb","Module","rawModule","runtime","_rawModule","rawState","addChild","getChild","hasChild","actions","mutations","ModuleCollection","rawRootModule","register","targetModule","newModule","assertRawModule","modules","rawChildModule","unregister","isRegistered","functionAssert","expected","objectAssert","assertTypes","makeAssertionMessage","buf","createStore","Store","devtools","_actionSubscribers","_subscribers","_devtools","injectKey","provide","globalProperties","$store","useDevtools","silent","all","replaceState","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","isValidMap","normalizeMap","getModuleByNamespace","vuex","mapActions","helper","_defineProperty","writable","ownKeys","enumerableOnly","sym","_objectSpread2","getOwnPropertyDescriptors","esUs","IS_PURE","mode","copyright","license","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ie_edge","ie_upto10","ie_11up","ie_version","documentMode","gecko","gecko_version","chrome","chrome_version","safari","vendor","ios","mac","android","webkit","webkit_version","domIndex","reusedRange","textRange","createRange","setEnd","setStart","isEquivalentPosition","targetNode","targetOff","scanFor","atomElements","hasBlockDesc","contentEditable","isOnEdge","pmViewDesc","selectionCollapsed","domSel","collapsed","isCollapsed","rangeCount","getRangeAt","keyEvent","keyCode","windowRect","getSide","clientRect","scrollRectIntoView","startDOM","scrollThreshold","someProp","scrollMargin","atTop","bounding","moveX","moveY","scrollBy","scrollLeft","startY","dX","dY","storeScrollPos","refDOM","refTop","elementFromPoint","localRect","scrollStack","resetScrollPos","newRefTop","restoreScrollStack","dTop","preventScrollSupported","focusPreventScroll","setActive","stored","preventScroll","findOffsetInNode","coords","coordsClosest","dxClosest","rowBot","rowTop","childIndex","dx","findOffsetInText","singleRect","inRect","targetKludge","posFromElement","elt","docView","posFromDOM","posFromCaret","outside","nearestDesc","posBefore","posAfter","box","startI","assign$1","caretPositionFromPoint","offsetNode","caretRangeFromPoint","startContainer","startOffset","box$1","posAtStart","border","BIDI","coordsAtPos","domFromPos","supportEmptyRange","takeSide","flattenV","rectBefore","rectAfter","flattenH","before$1","after$1","ignoreForCoords","target$1","withFlushedState","viewState","activeElement","updateState","endOfTextblockVertical","nearest","boxes","maybeRTL","endOfTextblockHorizontal","getSelection","modify","oldNode","focusNode","oldOff","focusOffset","oldBidiLevel","caretBidiLevel","parentDOM","domAfterPos","removeAllRanges","cachedState","cachedDir","cachedResult","NOT_DIRTY","CHILD_DIRTY","CONTENT_DIRTY","NODE_DIRTY","ViewDesc","dirty","posAtEnd","contentLost","domAtom","matchesWidget","matchesMark","matchesNode","matchesHack","_nodeName","parseRule","stopEvent","posBeforeChild","localPosFromDOM","domBefore","domAfter","desc$1","search$1","onlyNodes","getDesc","nodeDOM","descAt","TrailingHackViewDesc","WidgetViewDesc","prev$1","enter$1","parseRange","fromOffset","toOffset","childBase","emptyChildAt","force","anchorDOM","headDOM","brKludge","offset$1","anchorNode","anchorOffset","domSelExtended","extend","collapse","DOMException","markDirty","startInside","endInside","markParentsDirty","nothing","ignoreSelection","CompositionViewDesc","textDOM","mut","oldValue","MarkViewDesc","custom","reparseInView","replaceNodes","NodeViewDesc","outerDeco","innerDeco","updateChildren","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","sameOuterDeco","composition","composing","localCompositionInfo","localComposition","compositionInChild","updater","ViewTreeUpdater","iterDeco","insideNode","syncToMarks","placeWidget","compIndex","findNodeMatch","findIndexWithChild","updateNodeAt","updateNextNode","addTextblockHacks","destroyRest","changed","protectLocalComposition","renderDescs","iosHacks","nearbyTextNode","textPos","findTextInFragment","compositionNodes","updateInner","updateOuterDeco","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","selectNode","deselectNode","docViewDesc","pmIsDeco","inParent","trackWrites","descs","written","childDOM","rm","insertBefore","OuterDecoLevel","noDeco","outerDOM","prevComputed","curComputed","curDOM","deco","patchAttributes","prevList","curList","cssText","lockedNode","lock","preMatch","parentDesc","curDesc","descI","fI","compareSide","onWidget","onNode","locals","decoIndex","restNode","parentIndex","widgets","child$1","cutAt","forChild","oldCSS","listStyle","childStart","selectionFromDOM","origin","inWidget","selectionBetween","editorOwnsSelection","hasFocus","hasSelection","selectionToDOM","syncNodeSelection","mouseDown","allowDefault","curSel","domObserver","delayedSelectionSync","setCurSelection","disconnectSelection","cursorWrapper","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","removeClassOnSelectionChange","connectSelection","destroyBetween","maxKeep","markDesc","targetDesc","domNode","locked","addHackNode","setEditable","wasDraggable","hideSelectionGuard","lastSelectedViewDesc","clearNodeSelection","hasFocusAndSelection","anchorInRightPlace","moveSelectionBlock","$side","selectHorizontally","mods","nodePos","nodeLen","isIgnorable","skipIgnoredNodesLeft","moveNode","moveOffset","isBlockNode","setSelFocus","skipIgnoredNodesRight","selectVertically","beyond","stopNativeHorizontalDelete","nextNode","switchEditable","safariDownArrowBug","getMods","altKey","captureKeyDown","parseBetween","from_","to_","lastKeyCode","startDoc","editableContent","anchor$1","readDOMChange","typeOver","addedNodes","lastSelectionTime","lastSelectionOrigin","tr$1","shared","preferredPos","preferredSide","compare","lastKeyCodeTime","change","findDiff","lastIOSEnter","sel$1","resolveSelection","endA","endB","domChangeCount","nextSel","inlineChange","looksLikeJoin","suppressSelectionUpdates","toB","lastAndroidDelete","markChange","$from1","chFrom","chTo","isMarkChange","sel$2","parsedSel","curMarks","prevMarks","$newStart","$newEnd","skipClosingAndOpening","fromEnd","mayOpen","adjust","move$1","serializeForClipboard","serializer","detachedDoc","wrapMap","wrapper","parseFromClipboard","plainText","inCode","asText","readHTML","restoreReplacedSpaces","contextNode","sliceData","inlineParents","addContext","closeSlice","normalizeSiblings","lastWrap","inLast","addToSibling","closeRight","wrapped","withWrappers","sibling","closeRange","thead","tbody","caption","td","_detachedDoc","implementation","createHTMLDocument","metas","firstTag","observeOptions","childList","characterData","characterDataOldValue","attributeOldValue","subtree","useCharData","SelectionState","DOMObserver","handleDOMChange","flushingSoon","observer","MutationObserver","removedNodes","flushSoon","onCharData","prevValue","onSelectionChange","suppressingSelectionUpdates","forceFlush","observe","take","takeRecords","disconnect","ignoreSelectionChange","commonAncestorContainer","result$1","brs","checkCSS","attributeName","cssChecked","whiteSpace","handlers","editHandlers","initInput","lastClick","lastIOSEnterFallbackTimeout","composingTimeout","compositionEndedAt","eventHandlers","eventBelongsToView","runCustomHandler","ensureListeners","setSelectionOrigin","destroyInput","currentHandlers","eventCoords","isNear","dy","runHandlerOnContext","propName","updateSelection","focused","selectClickedLeaf","selectClickedNode","selectedNode","selectAt","handleSingleClick","handleDoubleClick","defaultTripleClick","forceDOMFlush","endComposition","keydown","inOrNearComposition","keyup","keypress","charCode","fromCharCode","selectNodeModifier","flushed","MouseDown","targetPos","mightDrag","addAttr","setUneditable","up","timeStamp","buttons","touchdown","contextmenu","timeoutComposition","scheduleComposeEnd","clearComposition","timestampFromCustomEvent","forceUpdate","captureCopy","selectNodeContents","compositionstart","compositionupdate","markCursor","compositionend","brokenClipboardAPI","sliceSingleNode","capturePaste","doPaste","singleNode","clipboardData","clearData","setData","paste","getData","Dragging","dragCopyModifier","dragstart","dataTransfer","effectAllowed","dragend","dragover","dragenter","drop","eventPos","$mouse","isNode","beforeInsert","beforeinput","inputType","compareObjs","WidgetType","noSpec","oldOffset","Decoration","valid","InlineType","inclusiveStart","inclusiveEnd","DecorationSet","buildTree","predicate","findInner","childOff","mapInner","newLocal","onRemove","mapChildren","byPos","addInner","childNode","childOffset","baseOffset","takeSpansForNode","moveSpans","withoutNulls","removeInner","span$1","dec","localSet","DecorationGroup","removeOverlap","localsInner","members","oldChildren","oldEnd","newEnd","dSize","mustRebuild","fromLocal","toLocal","mapAndGatherRemainingDecorations","from$1","spans","gather","hasNulls","localStart","working","insertAhead","viewDecorations","mappedDecos","member","sorted","EditorView","_props","directPlugins","checkStateComponent","_root","mount","mounted","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","prevDirectPlugins","pluginViews","updatePluginViews","isDestroyed","contenteditable","selectionContextChanged","sel1","sel2","changedNodeViews","nA","nB","updateStateInner","setProps","reconfigured","redraw","updateSel","scrollToSelection","updateDoc","oldScrollPos","overflowAnchor","forceSelUpdate","chromeKludge","destroyPluginViews","pluginView","plugin$1","getPrototypeOf","posAtDOM","dispatchTransaction","tet","getNodeName","ceil","dv","weekEndings","hu","replaceAll","IS_REG_EXP","searchLength","advanceBy","endOfLastMatch","zhCn","bitmap","computeOffsets","offsets","variation","commonX","commonY","mainAxis","getDescriptor","EXISTS","CONFIGURABLE","sv","IndexedObject","$assign","alphabet","ugCn","getWindowScrollBarX","webpackPolyfill","deprecate","paths","msMy","CONVERT_TO_STRING","codeAt","eo","arraySpeciesConstructor","Blockquote","setBlockquote","wrapIn","toggleBlockquote","toggleWrap","unsetBlockquote","starInputRegex","starPasteRegex","underscoreInputRegex","underscorePasteRegex","Bold","fontWeight","setBold","toggleBold","unsetBold","BulletList","itemTypeName","toggleBulletList","toggleList","pasteRegex","Code","setCode","toggleCode","unsetCode","backtickInputRegex","tildeInputRegex","CodeBlock","languageClassPrefix","exitOnTripleEnter","exitOnArrowDown","language","classNames","firstElementChild","languages","renderHTML","setCodeBlock","setNode","toggleCodeBlock","toggleNode","isAtStart","clearNodes","Enter","isAtEnd","endsWithDoubleNewline","command","exitCode","ArrowDown","isActive","vscode","vscodeData","Document","dropCursor","editorView","DropCursorView","cursorPos","setCursor","updateOverlay","nodeRect","parentLeft","parentTop","offsetParent","rect$1","scheduleRemoval","disableDropCursor","dragleave","Dropcursor","GapCursor","GapBookmark","closedBefore","closedAfter","override","allowGapCursor","mustMove","$cur","$cur$1","gapCursor","drawGapCursor","_view","$found","Gapcursor","HardBreak","keepMarks","setHardBreak","splittableMarks","extensionManager","filteredMarks","Heading","levels","hasLevel","setHeading","toggleHeading","GOOD_LEAF_SIZE","RopeSequence","leafAppend","leafPrepend","appendInner","Append","sliceInner","getInner","forEachInner","forEachInvertedInner","values","Leaf","flatten","leftLen","ropeSequence","max_empty_items","Branch","eventCount","cutOffEvents","cutPoint","popEvent","preserveItems","remap","remapping","remaining","addAfter","Item","addTransform","histOptions","newItems","oldItems","lastItem","merged","DEPTH_OVERFLOW","mirrorPos","mirrorOffset","addMaps","rebased","rebasedTransform","rebasedCount","rebasedItems","newUntil","iRebased","newMaps","branch","emptyItemCount","compress","newItem","HistoryState","undone","prevRanges","prevTime","history","historyTr","historyKey","historyState","closeHistoryKey","appended","redo","mustPreserveItems","rangesFor","mapRanges","newGroup","newGroupDelay","isAdjacentTo","adjacent","histTransaction","newHist","cachedPreserveItems","cachedPreserveItemsPlugins","historyPreserveItems","hist","undo","History","HorizontalRule","setHorizontalRule","Italic","fontStyle","setItalic","toggleItalic","unsetItalic","ListItem","splitListItem","sinkListItem","liftListItem","OrderedList","attributesWithoutStart","toggleOrderedList","joinPredicate","Paragraph","setParagraph","Strike","setStrike","toggleStrike","unsetStrike","StarterKit","_b","_c","_d","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","extensions","configure","bold","bulletList","codeBlock","dropcursor","gapcursor","hardBreak","heading","horizontalRule","italic","listItem","orderedList","paragraph","strike","sd","relativeTimeWithMutation","specialMutationForYears","lastNumber","softMutation","mutationTable","substring","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","weekdaysParse","mi","inspectSource","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","mk","last2Digits","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","sfc","__vccOpts","hasSymbol","toStringTag","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","currentLocation","query","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","every","fromSegments","toSegments","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","docRect","elRect","behavior","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","listeners","teardowns","pauseState","popStateHandler","fromState","forward","back","unknown","pauseListeners","listen","teardown","beforeUnloadListener","buildState","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","isRouteName","START_LOCATION_NORMALIZED","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","subPattern","avoidDuplicatedSlash","param","compareScoreArray","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","matcher","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","components","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","paramsFromLocation","parentMatcher","mergeMetaFields","redirect","beforeEnter","normalizeRecordProps","instances","leaveGuards","updateGuards","enterCallbacks","propsObject","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","decodeURIComponent","hasLeadingIM","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","useCallbacks","guardToPromiseFn","guard","enterCallbackArray","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","activeClass","exactActiveClass","ariaCurrentValue","slots","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","injectedRoute","routeToDisplay","matchedRouteRef","viewRef","oldInstance","oldName","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","vnode","isUnmounted","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","shouldRedirect","toLocation","failure","handleScroll","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","ready","readyHandlers","errorHandlers","isReady","started","installedApps","beforeEach","beforeResolve","afterEach","onError","$router","reactiveRoute","unmountApp","unmount","recordFrom","recordTo","nb","getHTMLElementScroll","getNodeScroll","getWindowScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","getDocumentElement","isScrollParent","clientLeft","clientTop","order","visited","modifier","dep","depModifier","orderModifiers","orderedModifiers","acc","debounce","mergeByName","existing","DEFAULT_OPTIONS","areValidElements","_len","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","_generatorOptions$def2","defaultOptions","effectCleanupFns","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","listScrollParents","contextElement","runModifierEffects","_state$elements","getOffsetParent","getLayoutRect","_state$orderedModifie","_state$orderedModifie2","_ref3","_ref3$options","cleanupFn","noopFn","kk","arTn","CONFIGURABLE_FUNCTION_NAME","TEMPLATE","itCh","enNz","monthsShortWithDots","monthsShortWithoutDots","fy","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","Superscript","setSuperscript","toggleSuperscript","unsetSuperscript","enIl","wrappedWellKnownSymbolModule","sw","auto","basePlacements","clippingParents","viewport","variationPlacements","placements","beforeRead","read","afterRead","beforeMain","afterMain","beforeWrite","write","afterWrite","modifierPhases","documentCreateElement","activeEffectScope","effectScopeStack","EffectScope","detached","effects","cleanups","scopes","fromParent","cleanup","recordEffectScope","scope","createDep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","enableTracking","cleanupEffect","resetTracking","onStop","shouldTrack","trackStack","pauseTracking","track","isTracking","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","newValue","oldTarget","triggerEffects","allowRecurse","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","createSetter","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","Proxy","isReactive","isProxy","markRaw","trackRefValue","triggerRefValue","newVal","__v_isRef","createRef","shallowRef","_shallow","_rawValue","_value","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","_get","_set","customRef","ComputedRefImpl","_setter","_dirty","getterOrOptions","debugOptions","setter","onlyGetter","cRef","emit$1","rawArgs","isModelListener","modelArg","modifiersKey","handlerName","callWithAsyncErrorHandling","onceHandler","emitted","normalizeEmitsOptions","appContext","asMixin","emitsCache","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","pushScopeId","popScopeId","withCtx","isNonScopedSlot","_n","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","withProxy","propsOptions","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","handleError","createVNode","Comment","filterModelListeners","cloneVNode","dirs","transition","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","queueEffectWithSuspense","suspense","pendingBranch","queuePostFlushCb","currentInstance","provides","parentProvides","defaultValue","treatDefaultAsFactory","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hooks","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","defineComponent","setup","isAsyncWrapper","__asyncLoader","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","resetShapeFlag","getInnerChild","__weh","setCurrentInstance","unsetCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","publicThis","beforeCreate","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","created","beforeMount","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","directives","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","opt","createWatcher","registerLifecycleHook","_hook","exposed","unwrapRef","normalizeInject","createPathGetter","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","initProps","isStateful","isSSR","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","bindings","traverse","invokeDirectiveHook","oldBindings","createAppContext","isNativeTag","performance","errorHandler","warnHandler","compilerOptions","uid","createAppAPI","hydrate","rootComponent","rootProps","installedPlugins","_uid","_component","_container","_context","_instance","mixin","directive","rootContainer","isHydrate","isSVG","__vue_app__","getExposeProxy","initFeatureFlags","queuePostRenderEffect","createRenderer","baseCreateRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","patchProp","hostPatchProp","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","patch","n1","n2","parentComponent","parentSuspense","slotScopeIds","dynamicChildren","getNextHostNode","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","setRef","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","mountChildren","unmountChildren","onVnodeBeforeMount","invokeVNodeHook","scopeId","needCallTransitionHooks","onVnodeMounted","parentVNode","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","renderer","setupComponent","asyncDep","registerDep","setupRenderEffect","asyncResolved","updateComponentPreRender","invalidateJob","componentUpdateFn","bu","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","queueJob","flushPreFlushCbs","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","um","suspenseId","pendingId","_vnode","flushPostFlushCbs","mc","pc","pbc","createApp","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","refs","doSet","callWithErrorHandling","ch1","ch2","arrI","isTeleport","__isTeleport","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","select","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","hydrateChildren","_lpa","Teleport","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","getComponentName","registry","currentBlock","openBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","createBlock","isVNode","__v_isVNode","normalizeKey","normalizeRef","needFullChildrenNormalization","__v_skip","staticCount","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","flag","createStaticVNode","numberOfNodes","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","renderList","renderItem","renderSlot","fallback","noSlotted","isCE","validSlotContent","ensureValidVNode","vnodes","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$attrs","$parent","$root","$forceUpdate","$nextTick","$watch","instanceWatch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","emptyAppContext","uid$1","exposeProxy","setupContext","bc","rtg","rtc","ec","sp","installWithProxy","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","__ssrInlineRender","ssrRender","skipOptions","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","displayName","throwInDev","contextVNode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","middle","middleJobId","getId","job","queueFlush","flushJobs","queueCb","activeQueue","pendingQueue","queuePreFlushCb","parentJob","deduped","watchEffect","doWatch","INITIAL_WATCHER_VALUE","immediate","onTrack","onTrigger","forceTrigger","isMultiSource","onInvalidate","baseGetter","propsOrChildren","svgNS","staticTemplateCache","nodeOps","multiple","patchClass","transitionClasses","_vtc","patchStyle","isCssString","setStyle","currentDisplay","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","isBoolean","patchDOMProp","_getNow","skipTimestampCheck","ffMatch","cachedNow","getNow","patchEvent","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","getModelAssigner","onCompositionStart","onCompositionEnd","vModelText","lazy","_assign","castToNumber","domValue","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","checked","getCheckboxValue","setChecked","vModelSelect","isSetModel","selectedVal","selected","setSelected","_binding","isMultiple","selectedIndex","systemModifiers","modifierGuards","prevent","ctrl","exact","withModifiers","keyNames","esc","down","withKeys","eventKey","vShow","_vod","setDisplay","rendererOptions","ensureRenderer","containerOrSelector","normalizeContainer","expires","domain","secure","cookie","isNumber","toGMTString","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","getUID","prefix","getSelector","hrefAttr","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","getElement","typeCheckConfig","componentName","configTypes","valueType","isDisabled","findShadowRoot","reflow","getjQuery","DOMContentLoadedCallbacks","onDOMContentLoaded","isRTL","defineJQueryPlugin","JQUERY_NO_CONFLICT","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","customEvents","customEventsRegex","nativeEvents","getUidEvent","getEvent","bootstrapHandler","EventHandler","bootstrapDelegationHandler","domElements","findHandler","uidEventList","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","isNative","addHandler","wrapFn","previousFn","removeHandler","removeNamespacedHandlers","storeElementEvent","handlerKey","inNamespace","isNamespace","elementEvent","keyHandlers","jQueryEvent","nativeDispatch","evt","elementMap","Data","instanceMap","VERSION","BaseComponent","propertyName","enableDismissTrigger","NAME$d","DATA_KEY$c","EVENT_KEY$c","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE$5","CLASS_NAME_SHOW$8","closeEvent","NAME$c","DATA_KEY$b","EVENT_KEY$b","DATA_API_KEY$7","CLASS_NAME_ACTIVE$3","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","normalizeData","normalizeDataKey","Manipulator","pureKey","NODE_TEXT","SelectorEngine","ancestor","previous","focusables","NAME$b","DATA_KEY$a","EVENT_KEY$a","DATA_API_KEY$6","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default$a","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE$1","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","activeIndex","absDeltax","hasPointerPenTouch","itemImg","isNext","eventDirectionName","targetIndex","activeIndicator","indicators","elementInterval","directionOrOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","triggerSlidEvent","completeCallBack","slideIndex","carousels","NAME$a","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$5","Default$9","DefaultType$9","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$4","elem","filterElement","foundElem","activesData","actives","tempActiveData","elemActive","dimension","complete","capitalizedDimension","scrollSize","triggerArrayLength","triggerArray","selectorElements","NAME$9","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","TAB_KEY$1","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","DefaultType$8","showEvent","hideEvent","referenceElement","isDisplayStatic","parentDropdown","isEnd","popperData","defaultBsPopperConfig","toggles","isMenuTarget","getToggleButton","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","calculatedValue","styleProp","scrollbarWidth","manipulationCallBack","actualValue","callBack","Default$7","DefaultType$7","NAME$8","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Backdrop","Default$6","DefaultType$6","NAME$7","DATA_KEY$7","EVENT_KEY$7","EVENT_FOCUSIN$1","EVENT_KEYDOWN_TAB","TAB_KEY","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","FocusTrap","NAME$6","DATA_KEY$6","EVENT_KEY$6","DATA_API_KEY$3","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","OPEN_SELECTOR$1","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$2","htmlElement","modalBody","transitionComplete","isModalOverflowing","isBodyOverflowing","allReadyOpen","NAME$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","ESCAPE_KEY","Default$4","DefaultType$4","CLASS_NAME_SHOW$3","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE$1","completeCallback","uriAttributes","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","regExp","attributeRegex","DefaultAllowlist","sanitizeHtml","unsafeHtml","createdDocument","elementName","attributeList","allowedAttributes","NAME$4","DATA_KEY$4","EVENT_KEY$4","CLASS_PREFIX$1","DISALLOWED_ATTRIBUTES","DefaultType$3","AttachmentMap","Default$3","Event$2","CLASS_NAME_FADE$2","CLASS_NAME_MODAL","CLASS_NAME_SHOW$2","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","shadowRoot","isInTheDom","tipId","attachment","prevHoverState","templateElement","triggers","eventIn","eventOut","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","NAME$3","DATA_KEY$3","EVENT_KEY$3","CLASS_PREFIX","Default$2","DefaultType$2","Event$1","SELECTOR_TITLE","SELECTOR_CONTENT","NAME$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY$1","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP$1","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN$1","SELECTOR_DROPDOWN_TOGGLE$1","METHOD_OFFSET","METHOD_POSITION","autoMethod","offsetMethod","offsetBase","targets","targetBCR","maxScroll","isActiveTarget","queries","listGroup","navItem","spy","NAME$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","listElement","itemSelector","activeElements","isTransitioning","dropdownChild","dropdownElement","dropdown","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","isInteracting","sk","activeXDocument","definePropertiesModule","GT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","unsetSides","roundOffsetsByDPR","win","dpr","devicePixelRatio","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","visualViewport","offsetX","_Object$assign","commonStyles","_ref4","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","$find","addToUnscopables","FIND","SKIPS_HOLES","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","16","17","18","27","32","33","34","35","36","37","38","39","44","45","46","59","61","91","92","106","107","108","109","110","111","144","145","160","161","162","163","164","165","173","186","187","188","189","190","191","192","219","220","221","222","229","48","49","51","52","53","54","55","56","57","brokenModifierNames","keyName","ignoreKey","normalizeKeyName","mod","keymap","keydownHandler","baseName","isChar","direct","fromCode","withShift","yo","rootNode","isSameNode","sl","numbersPast","numbersFuture","verbalNumber","fi","arSa","TableRow","isAbsoluteURL","combineURLs","baseURL","requestedURL","propertyKey","thing","deprecatedWarnings","allowUnknown","formatMessage","bg","my","gl","functionToString","valueof","epsilon","translateX","translateY","scale","bandwidth","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","ticks","identity","spacing","range0","range1","selectAll","tick","tickExit","tickEnter","line","isFinite","tickSize","axisBottom","axisLeft","parseTypenames","typenames","typename","_groups","subgroups","subnode","subgroup","__data__","_parents","arrayAll","selectorAll","childMatcher","childFind","childFirst","childrenFilter","sparse","EnterNode","datum","_parent","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareNode","ascending","sortgroups","sortgroup","NaN","xhtml","svg","xlink","xml","xmlns","namespaces","attrRemove","attrRemoveNS","fullname","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","getAttributeNS","styleRemove","styleConstant","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","creatorInherit","uri","creatorFixed","creator","constantNull","selection_cloneShallow","selection_cloneDeep","contextListener","__on","onAdd","detail","dispatchConstant","dispatchFunction","selection_select","selectChild","selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_merge","selection_node","selection_size","selection_empty","classed","selection_text","selection_raise","selection_lower","selection_remove","selection_datum","selection_on","selection_dispatch","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHex8","formatHex8","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatHex8","rgb_formatRgb","clampa","clampi","Hsl","hsl","clamph","clampt","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","linear","exponential","gamma","nogamma","rgbGamma","rgbSpline","spline","colors","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","genericArray","na","reA","reB","taskHead","taskTail","am","bi","date","numberArray","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","timer","restart","timerFlush","wake","nap","poke","t0","sleep","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","tween","timing","ease","schedule","svgNode","interrupt","degrees","PI","rotate","skewX","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","tweenValue","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","_name","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_easeVarying","transition_end","defaultTiming","selection_interrupt","selection_transition","number1","number2","EOL","EOF","NEWLINE","RETURN","objectConverter","columns","customConverter","inferColumns","columnSet","column","pad","formatYear","year","formatDate","getUTCHours","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getUTCFullYear","getUTCMonth","getUTCDate","reFormat","delimiter","DELIMITER","convert","parseRows","eof","eol","preformatBody","formatValue","formatBody","formatRows","formatRow","csv","dsv","csvParse","tsv","tsvParse","responseText","statusText","fetch","dsvParse","e10","e5","tickIncrement","r0","r1","power","log","LN10","tickStep","step0","step1","descending","bisector","compare1","compare2","lo","hi","mid","ascendingBisect","bisectRight","bisect","constants","unit","clamper","bimap","d0","d1","polymap","clamp","transformer","untransform","piecewise","rescale","rangeRound","continuous","initRange","formatSpecifier","specifier","FormatSpecifier","align","sign","zero","comma","precision","toLocaleString","formatDecimalParts","toExponential","coefficient","prefixExponent","grouping","thousands","numerals","exponent","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","locale","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatPrefix","defaultLocale","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","epsilon2","cosh","exp","sinh","tanh","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","d2","rho","b0","rho4","rho2","b1","coshr0","SQRT2","_1","_2","_4","zoomRho","applyX","applyY","invertX","invertY","rescaleX","rescaleY","__zoom","es","invalidDate","isFunction","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsNominative","monthsSubjective","pl","fa","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","unsubscribe","ar","bn","postfix","zhTw","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","multiline","getAltAxis","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","rootBoundary","_options$tether","tether","_options$tetherOffset","tetherOffset","detectOverflow","getBasePlacement","isBasePlacement","getMainAxisFromPlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","within","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","feature","detection","POLYFILL","NATIVE","ru","mn","ky","bnBd","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","awrap","async","iter","skipTempReset","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","separator","ro","cy","lookup","TextAlign","alignments","defaultAlignment","textAlign","setTextAlign","alignment","updateAttributes","unsetTextAlign","resetAttributes","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","expandToHashMap","hashMap","joinBackward","$cut","findCutBefore","deleteBarrier","textblockAt","only","selectNodeBackward","joinForward","findCutAfter","selectNodeForward","newlineInCode","defaultBlockAt","above","createParagraphNear","liftEmptyBlock","splitBlock","$first","selectParentNode","joinMaybeClear","conn","canDelAfter","joinAt","selAfter","wrap$1","afterText","afterDepth","end$1","selectTextblockSide","selectTextblockStart","selectTextblockEnd","applicable","chainCommands","backspace","del","pcBaseKeymap","macBaseKeymap","Home","End","os","wrapInList","listType","doJoin","outerRange","$insert","doWrapInList","joinBefore","splitDepth","itemType","liftToOuterList","liftOutOfList","endOfList","indexBefore","nestedBefore","mergeDeep","callOrReturn","getExtensionField","Extension","addOptions","extendedConfig","getTextBetween","startNode","textSerializers","textSerializer","getTextSeralizersFromSchema","fromEntries","toText","ClipboardTextSerializer","clipboardTextSerializer","blur$1","clearContent","emitUpdate","clearContent$1","$mappedFrom","$mappedTo","nodeRange","targetLiftDepth","clearNodes$1","command$1","createParagraphNear$1","getNodeType","nameOrType","deleteNode","typeOrName","deleteNode$1","deleteRange$1","deleteSelection$1","keyboardShortcut","exitCode$1","getMarkType","objectIncludes","object1","object2","findMarkInSet","isMarkInSet","getMarkRange","endPos","extendMarkRange","newSelection","extendMarkRange$1","first$1","isClass","isTextSelection","isiOS","minMax","resolveFocusPosition","minPos","maxPos","resolvedFrom","resolvedEnd","delayedFocus","isSameSelection","focus$1","forEach$1","insertContentAt","insertContent$1","elementFromString","wrappedValue","createNodeFromContent","parseOptions","isFragment","nodeOrFragment","isOnlyBlockContent","isEmptyTextBlock","insertContentAt$1","joinBackward$1","joinForward$1","KeyboardEvent","capturedTransaction","captureTransaction","newStep","keyboardShortcut$1","isNodeActive","nodeRanges","relativeFrom","relativeTo","selectionRange","matchedNodeRanges","sum","lift$1","liftEmptyBlock$1","liftListItem$1","newlineInCode$1","getSchemaTypeNameByName","deleteProps","propOrProps","newObj","schemaType","resetAttributes$1","scrollIntoView$1","setTextSelection","selectAll$1","selectNodeBackward$1","selectNodeForward$1","selectParentNode$1","createDocument","setContent$1","getMarkAttributes","markItem","oldAttributes","trimmedFrom","trimmedTo","someHasMark","setMark$1","setMeta$1","canSetBlock","updatedState","setNode$1","setNodeSelection","resolvedPos","setNodeSelection$1","setTextSelection$1","sinkListItem$1","getSplittedAttributes","extensionAttributes","extensionAttribute","defaultBlockAt$1","newAttributes","splitBlock$1","grandParent","depthBefore","depthAfter","newNextTypeAttributes","newTypeAttributes","splitListItem$1","findParentNodeClosestToPos","findParentNode","splitExtensions","baseExtensions","nodeExtensions","markExtensions","isList","joinListBackwards","canJoinBackwards","joinListForwards","canJoinForwards","listTypeOrName","itemTypeOrName","parentList","canWrapInList","toggleList$1","isMarkActive","markRanges","matchedRange","markRange","excludedRange","toggleMark$1","toggleTypeOrName","toggleType","toggleNode$1","toggleWrap$1","undoInputRule","undoable","isInputRules","toUndo","undoInputRule$1","unsetAllMarks","unsetAllMarks$1","unsetMark$1","updateAttributes$1","wrapIn$1","wrapInList$1","Commands","Editable","FocusEvents","isFocused","createChainableState","CommandManager","rawCommands","customState","buildProps","hasCustomState","createChain","createCan","startTr","shouldDispatch","callbacks","hasStartTransaction","chainedCommand","formattedCommands","Keymap","handleBackspace","handleDelete","allFrom","allEnd","allWasSelected","Tabindex","tabindex","getNodeAttributes","nodeItem","getHTMLFromFragment","documentFragment","temporaryDocument","getText","isNodeEmpty","defaultContent","createStyleTag","tipTapStyleTag","styleNode","getElementsByTagName","InputRule","inputRuleMatcherHandler","inputRuleMatch","maxMatch","textBefore","inputRulesPlugin","PasteRule","pasteRuleMatcherHandler","matchAll","pasteRuleMatch","resolvedTo","textToMatch","success","pasteRulesPlugin","isProseMirrorHTML","chainableState","getAttributesFromExtensions","nodeAndMarkExtensions","defaultAttribute","addGlobalAttributes","globalAttributes","globalAttribute","addAttributes","mergeAttributes","objects","mergedAttributes","exists","getRenderedAttributes","nodeOrMark","isEmptyObject","fromString","injectExtensionAttributesToParseRule","cleanUpSchemaItem","getSchemaByResolvedExtensions","allAttributes","extraNodeFields","extendNodeSchema","renderText","extraMarkFields","extendMarkSchema","getSchemaTypeByName","isExtensionRulesEnabled","enabledExtension","findDuplicates","extensionStorage","onBeforeCreate","onCreate","onUpdate","onSelectionUpdate","onTransaction","onDestroy","resolvedExtensions","duplicatedNames","addExtensions","flat","defaultPriority","priorityA","priorityB","addCommands","inputRules","pasteRules","allPlugins","addKeyboardShortcuts","shortcut","keyMapPlugin","addInputRules","enableInputRules","addPasteRules","enablePasteRules","addProseMirrorPlugins","proseMirrorPlugins","addNodeView","nodeview","getPos","EventEmitter","injectCSS","editorProps","enableCoreExtensions","isCapturingTransaction","createExtensionManager","createCommandManager","createSchema","createView","commandManager","handlePlugins","nameOrPluginKey","coreExtensions","allExtensions","createNodeViews","selectionHasChanged","nameOrAttributes","attributesOrUndefined","removeAllListeners","isDragging","dragHandle","parentElement","domBox","handleBox","setDragImage","isInElement","isDropEvent","isInput","isContentEditable","isDraggable","isCopyEvent","isPasteEvent","isCutEvent","isClickEvent","isDragEvent","isValidDragHandle","once","changedNodes","nodeInputRule","matchStart","lastChar","getMarksBetween","markInputRule","captureGroup","fullMatch","markEnd","startSpaces","textStart","textEnd","excludedMarks","textblockTypeInputRule","wrappingInputRule","markPasteRule","combineTransactionSteps","oldDoc","findChildrenInRange","nodesWithPos","removeDuplicates","by","simplifyChangedRanges","uniqueChanges","otherChange","getChangedRanges","stepMap","isNodeSelection","posToDOMRect","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","usingIterator","$defineProperty","ENUMERABLE","WRITABLE","Attributes","ENUMERABLE_NEXT","fr","makeMap","expectsLowerCase","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","parseStringStyle","listDelimiterRE","propertyDelimiterRE","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","objectToString","isMap","isSet","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","toTypeString","isSymbol","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","def","toNumber","_globalThis","getGlobalThis","toPrimitive","un$Join","ES3_STRINGS","arDz","NATIVE_SYMBOL","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","SYMBOL","TO_PRIMITIVE","ObjectPrototype","SymbolPrototype","QObject","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","hint","TableHeader","positionX","positionY","slotLeft","slotRight","disableClick","targetBlank","$toast","DKToast","checkCorrectnessOfIteration","INCORRECT_ITERATION","NativePromise","speciesConstructor","promiseResolve","NON_GENERIC","real","onFinally","gomDeva","error1","error2","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","commonjsGlobal","createCommonjsModule","humps","_processKeys","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","_isNumerical","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_extends","objectWithoutProperties","toConsumableArray","arr2","styleToObject","pair","idx","classToObject","classes","abstractElement","_attrs$style","aStyle","otherAttrs","PRODUCTION","_console","objectWithKey","_classes","spin","pulse","flip","rotation","pull","swapOpacity","normalizeIconArgs","icon$$1","iconName","FontAwesomeIcon","mask","renderedIcon","familyPrefix","_text","ignoreCase","passive","_options$scroll","_options$resize","resize","scrollParent","weekdaysCaseReplace","nounCase","nominative","accusative","genitive","processHoursFunction","uk","_getComputedStyle","overflowX","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","download","strFileName","strMimeType","blob","reader","defaultMime","mimeType","myBlob","Blob","MozBlob","WebKitBlob","ajax","onload","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","strUrl","decoder","atob","binData","uiArr","winMode","URL","revokeObjectURL","confirm","createObjectURL","btoa","FileReader","readAsDataURL","TO_STRING_TAG_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","deAt","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","onCanceled","requestData","requestHeaders","auth","username","password","unescape","Authorization","onloadend","responseHeaders","getAllResponseHeaders","responseData","onreadystatechange","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","tzmLatn","jv","notify","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","task","esMx","getViewportRect","getDocumentRect","_element$ownerDocumen","winScroll","scrollWidth","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","mainClippingParents","firstClippingParent","clippingRect","accRect","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","mergePaddingObject","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","USE_SYMBOL_AS_UID","symbolFor","createWellKnownSymbol","withoutSetter","isTableElement","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","perspective","contain","willChange","nativeKeys","FAILS_ON_PRIMITIVES","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","enSg","nn","relativeTimeWithSingular","relativeSeconds","lv","deCh","ordinaryToPrimitive","exoticToPrim","faAlignCenter","faAlignJustify","faAlignLeft","faAlignRight","faBold","faBroom","faCode","faGripLines","faHeading","faImage","faItalic","faLink","faListOl","faListUl","faMinus","faParagraph","faRedo","faRemoveFormat","faStrikethrough","faSubscript","faSuperscript","faTable","faUndo","faUnlink","tzm","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","createUTC","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_tzm","_isUTC","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","require","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","setUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","GG","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configFromObject","dayOrDate","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","offsetFromString","chunkOffset","chunk","cloneWithOffset","model","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","dur","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","wholeMonthDiff","keepOffset","toDate","inspect","datetime","zone","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","isValid$2","parsingFlags","invalidAt","creationData","localeEras","_eras","localeErasParse","eraName","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","BOX_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","splitBySpaces","normalizeToArray","pushIfUnique","unique","arrayFrom","removeUndefinedProps","isNodeList","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","_normalizeToArray","isCursorOutsideInteractiveBorder","popperTreeData","popperState","interactiveBorder","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","updateTransitionEndListener","actualContains","_target$getRootNode","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","bindGlobalEventListeners","isIE11","msCrypto","pluginProps","animateFill","followCursor","inlinePositioning","renderProps","allowHTML","inertia","maxWidth","theme","zIndex","defaultProps","appendTo","aria","expanded","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveDebounce","moveTransition","onAfterUpdate","onHidden","onHide","onMount","onShow","onShown","onUntrigger","onClickOutside","popperOptions","showOnCreate","triggerTarget","defaultKeys","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","getDataAttributeProps","propKeys","valueAsString","evaluateProps","dangerouslySetInnerHTML","createArrowElement","getChildren","boxChildren","_getChildren","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","popperInstance","isEnabled","isShown","clearDelayTimeouts","hideWithInteractivity","enable","disable","_props$render","pluginsHooks","hasAriaExpanded","addListeners","handleAriaExpandedAttribute","handleStyles","invokeHook","scheduleShow","getDocument","getNormalizedTouchSettings","getIsCustomTouchBehavior","getIsDefaultRenderFn","_instance$props$rende","getCurrentTarget","getDefaultTemplateChildren","getDelay","isShow","fromHide","pointerEvents","shouldInvokePropsHook","_instance$props","pluginHooks","handleAriaContentAttribute","cleanupInteractiveMouseListeners","onDocumentPress","actualTarget","removeDocumentPress","onTouchMove","onTouchStart","addDocumentPress","onTransitionedOut","onTransitionEnd","onTransitionedIn","eventType","onMouseLeave","onBlurOrFocusOut","removeListeners","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","getNestedPopperTree","_instance$popperInsta","shouldBail","createPopperInstance","destroyPopperInstance","_instance$props2","computedReference","tippyModifier","_getDefaultTemplateCh","_getNormalizedTouchSe","touchValue","touchDelay","cancelAnimationFrame","nestedPopper","isAlreadyVisible","isTouchAndTouchDisabled","_getDefaultTemplateCh2","_instance$popperInsta2","_getDefaultTemplateCh3","_box","_content","isAlreadyHidden","_getDefaultTemplateCh4","tippy","optionalProps","tippyOptions","shouldShow","preventHide","mousedownHandler","dragstartHandler","focusHandler","blurHandler","editorElement","editorIsAttached","createTooltip","BubbleMenuPlugin","pluginKey","isRootDepth","FloatingMenuPlugin","registerPlugin","unregisterPlugin","useDebouncedRef","vueRenderers","contentComponent","reactiveState","reactiveExtensionStorage","EditorContent","rootEl","newElement","vueRenderer","teleportElement","decorationClasses","onDragstart","onDragStart","ignoreDuplicateOf","pipe","product","assignValue","stripBOM","SHARED","normalizedName","sq","$includes","newPromiseCapability","promiseCapability","createInstance","defaultConfig","axios","promises","spread","sr","tzl","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","tlh","aFunction","NASHORN_BUG","bo","aPossiblePrototype","CORRECT_SETTER","ptBr","TAG","Pebble","fil","hyAm","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","comparativeDistance","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","smin","lmin","vmin","wh","bl","ratio","y2","x2","z2","cos","sin","ansi","mult","colorString","grayscale","hue","chroma","pure","mg","buildGraph","graph","models","deriveBFS","fromModel","adjacents","wrapConversion","toModel","conversion","wrapRaw","wrappedFn","wrapRounded","routeModels","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","per","hexAlpha","alpha","vals","hexDouble","reverseNames","setValues","lightness","whiteness","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","mix","mixinColor","weight","color1","w2","spaces","maxes","getValues","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","loopable","arrayEquals","a0","a1","ilen","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","dst","ChartElement","Surrogate","__super__","_deprecated","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","clearRect","roundedRect","radius","moveTo","arc","closePath","drawPoint","xOffset","yOffset","cornerRadius","rad","save","drawImage","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","clipArea","clip","unclipArea","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","inputs","cacheable","exports$2","_factorize","log10","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","actual","c0","configuration","initialize","pivot","_model","_start","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","onComplete","core_animations","animations","addAnimation","startTime","animating","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","updateIndex","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","resyncElements","_configure","_cachedDataOpts","easingValue","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","borderColor","readKey","datasetOpts","elementOptions","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","chartArea","defaultColor$2","getBarBounds","x1","y1","half","swap","orig","parseBorderSkipped","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","skipX","skipY","rectangle","element_rectangle","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","computeFlexCategoryTraits","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItemSpan","outerHTML","legend","generateLabels","controller","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxHeight","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","core_interaction","modes","single","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","getMargins","marginForPositions","positions","fitBoxes","refit","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","platform_dom$1","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","addListener","removeListener","nativeEvent","fromNativeEvent","throttled","ticking","createDiv","createResizer","maxSize","resizer","shrink","_reset","onScroll","watchForRender","expando","renderProxy","animationName","unwatchForRender","addResizeListener","maintainAspectRatio","removeResizeListener","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","releaseContext","proxies","addEvent","removeEvent","core_plugins","_plugins","_cacheId","getAll","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","combinedBodyLength","bodyItem","lines","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","olf","orf","yf","midX","midY","getBackgroundPoint","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","initConfig","updateConfig","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","onHover","animationDuration","responsiveAnimationDuration","Chart","_bufferedRender","retinaScale","bindEvents","initToolTip","getMaximumWidth","getMaximumHeight","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","configMerge","scaleMerge","core_helpers","parseMaxStyle","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","findNextWhere","arrayToSearch","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","originalEvent","srcElement","boundingRect","paddingTop","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","DateAdapter","_create","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","heights","widestLabelSize","highestLabelSize","major","minor","valueAt","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","getMajorIndices","skipMajors","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetRight","labelWidth","handleMargins","isFullWidth","_getScaleLabel","getValueForPixel","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","UNITS","sorter","arrayUnique","getMin","getMax","buildLookupTable","timestamps","distribution","interpolate$1","skey","tkey","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","amount","filler","propagate","mappers","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","computeBoundary","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","currentColHeight","lineDefault","legendHeight","legendWidth","drawLegendBox","halfFontSize","xLeft","yMiddle","alignmentOffset","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","cfg","ca","SHAM","DELEGATES_TO_SYMBOL","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","$map","frCa","nlBe","ArrayIteratorMethods","ArrayValues","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","gu","CORRECT_PROTOTYPE_GETTER","enIe","ARRAY_ITERATOR","Arguments","withinMaxClamp","relativeURL","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","anInstance","iterate","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","isThenable","callReaction","reaction","exited","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","capability","$promiseResolve","alreadyCalled","race","km","exceptions","numberToString","tester","low","fix","getScrollParent","isBody","updatedList","enIn","getOppositePlacement","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","_skip","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","numberOfChecks","fittingPlacement","_ret","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_objectSpread","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arr","_WINDOW","_DOCUMENT","_PERFORMANCE","measure","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","FontAwesomeConfig","getAttrConfig","coerce","_default","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","shims","functions","loaded","doScroll","asyncTimer","SETTLED","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","rejectPromise","invokeCallback","subscriber","settled","handleThenable","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","onFulfillment","onRejection","meaninglessTransform","flipX","flipY","insertCss","headChildren","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","transformForCss","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","deGroup","makeIconMasking","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","bindInternal4","thisContext","subject","defineIcons","_params$skipHooks","skipHooks","addPack","build","reducer","ligatures","ligature","hasRegular","shim","iconFromMapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","OPACITY_ANIMATE","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","_this","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","PromiseCapability","$$resolve","$$reject","ApiProxy","targetQueue","onQueue","defaultSettings","settings","localSettingsSaveId","currentSettings","localStorage","getItem","fallbacks","setItem","pluginId","setSettings","proxiedOn","_target","paIn","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","gd","use","eject","nl","xPseudo","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"js/chunk-vendors.0e0831de.js","sourcesContent":["'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\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","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","import { Node, mergeAttributes, nodeInputRule } from '@tiptap/core';\n\nconst inputRegex = /(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))/;\r\nconst Image = Node.create({\r\n name: 'image',\r\n addOptions() {\r\n return {\r\n inline: false,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n inline() {\r\n return this.options.inline;\r\n },\r\n group() {\r\n return this.options.inline ? 'inline' : 'block';\r\n },\r\n draggable: true,\r\n addAttributes() {\r\n return {\r\n src: {\r\n default: null,\r\n },\r\n alt: {\r\n default: null,\r\n },\r\n title: {\r\n default: null,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'img[src]',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['img', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n addCommands() {\r\n return {\r\n setImage: options => ({ commands }) => {\r\n return commands.insertContent({\r\n type: this.name,\r\n attrs: options,\r\n });\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n nodeInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n getAttributes: match => {\r\n const [, , alt, src, title] = match;\r\n return { src, alt, title };\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Image, Image as default, inputRegex };\n//# sourceMappingURL=tiptap-extension-image.esm.js.map\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { ReplaceError, Slice, Fragment, MarkType } from 'prosemirror-model';\n\n// Mappable:: interface\n// There are several things that positions can be mapped through.\n// Such objects conform to this interface.\n//\n// map:: (pos: number, assoc: ?number) → number\n// Map a position through this object. When given, `assoc` (should\n// be -1 or 1, defaults to 1) determines with which side the\n// position is associated, which determines in which direction to\n// move when a chunk of content is inserted at the mapped position.\n//\n// mapResult:: (pos: number, assoc: ?number) → MapResult\n// Map a position, and return an object containing additional\n// information about the mapping. The result's `deleted` field tells\n// you whether the position was deleted (completely enclosed in a\n// replaced range) during the mapping. When content on only one side\n// is deleted, the position itself is only considered deleted when\n// `assoc` points in the direction of the deleted content.\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\n\nvar lower16 = 0xffff;\nvar factor16 = Math.pow(2, 16);\n\nfunction makeRecover(index, offset) { return index + offset * factor16 }\nfunction recoverIndex(value) { return value & lower16 }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16 }\n\n// ::- An object representing a mapped position with extra\n// information.\nvar MapResult = function MapResult(pos, deleted, recover) {\n if ( deleted === void 0 ) deleted = false;\n if ( recover === void 0 ) recover = null;\n\n // :: number The mapped version of the position.\n this.pos = pos;\n // :: bool Tells you whether the position was deleted, that is,\n // whether the step removed its surroundings from the document.\n this.deleted = deleted;\n this.recover = recover;\n};\n\n// :: class extends Mappable\n// A map describing the deletions and insertions made by a step, which\n// can be used to find the correspondence between positions in the\n// pre-step version of a document and the same position in the\n// post-step version.\nvar StepMap = function StepMap(ranges, inverted) {\n if ( inverted === void 0 ) inverted = false;\n\n this.ranges = ranges;\n this.inverted = inverted;\n};\n\nStepMap.prototype.recover = function recover (value) {\n var diff = 0, index = recoverIndex(value);\n if (!this.inverted) { for (var i = 0; i < index; i++)\n { diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1]; } }\n return this.ranges[index * 3] + diff + recoverOffset(value)\n};\n\n// : (number, ?number) → MapResult\nStepMap.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\n// : (number, ?number) → number\nStepMap.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, true) };\n\nStepMap.prototype._map = function _map (pos, assoc, simple) {\n var diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n var side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n var result = start + diff + (side < 0 ? 0 : newSize);\n if (simple) { return result }\n var recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n return new MapResult(result, assoc < 0 ? pos != start : pos != end, recover)\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff)\n};\n\nStepMap.prototype.touches = function touches (pos, recover) {\n var diff = 0, index = recoverIndex(recover);\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3) { return true }\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false\n};\n\n// :: ((oldStart: number, oldEnd: number, newStart: number, newEnd: number))\n// Calls the given function on each of the changed ranges included in\n// this map.\nStepMap.prototype.forEach = function forEach (f) {\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0, diff = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n};\n\n// :: () → StepMap\n// Create an inverted version of this map. The result can be used to\n// map positions in the post-step document to the pre-step document.\nStepMap.prototype.invert = function invert () {\n return new StepMap(this.ranges, !this.inverted)\n};\n\nStepMap.prototype.toString = function toString () {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges)\n};\n\n// :: (n: number) → StepMap\n// Create a map that moves all positions by offset `n` (which may be\n// negative). This can be useful when applying steps meant for a\n// sub-document to a larger document, or vice-versa.\nStepMap.offset = function offset (n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n])\n};\n\nStepMap.empty = new StepMap([]);\n\n// :: class extends Mappable\n// A mapping represents a pipeline of zero or more [step\n// maps](#transform.StepMap). It has special provisions for losslessly\n// handling mapping positions through a series of steps in which some\n// steps are inverted versions of earlier steps. (This comes up when\n// ‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\n// collaboration or history management.)\nvar Mapping = function Mapping(maps, mirror, from, to) {\n // :: [StepMap]\n // The step maps in this mapping.\n this.maps = maps || [];\n // :: number\n // The starting position in the `maps` array, used when `map` or\n // `mapResult` is called.\n this.from = from || 0;\n // :: number\n // The end position in the `maps` array.\n this.to = to == null ? this.maps.length : to;\n this.mirror = mirror;\n};\n\n// :: (?number, ?number) → Mapping\n// Create a mapping that maps only through a part of this one.\nMapping.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.maps.length;\n\n return new Mapping(this.maps, this.mirror, from, to)\n};\n\nMapping.prototype.copy = function copy () {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to)\n};\n\n// :: (StepMap, ?number)\n// Add a step map to the end of this mapping. If `mirrors` is\n// given, it should be the index of the step map that is the mirror\n// image of this one.\nMapping.prototype.appendMap = function appendMap (map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null) { this.setMirror(this.maps.length - 1, mirrors); }\n};\n\n// :: (Mapping)\n// Add all the step maps in a given mapping to this one (preserving\n// mirroring information).\nMapping.prototype.appendMapping = function appendMapping (mapping) {\n for (var i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : null);\n }\n};\n\n// :: (number) → ?number\n// Finds the offset of the step map that mirrors the map at the\n// given offset, in this mapping (as per the second argument to\n// `appendMap`).\nMapping.prototype.getMirror = function getMirror (n) {\n if (this.mirror) { for (var i = 0; i < this.mirror.length; i++)\n { if (this.mirror[i] == n) { return this.mirror[i + (i % 2 ? -1 : 1)] } } }\n};\n\nMapping.prototype.setMirror = function setMirror (n, m) {\n if (!this.mirror) { this.mirror = []; }\n this.mirror.push(n, m);\n};\n\n// :: (Mapping)\n// Append the inverse of the given mapping to this one.\nMapping.prototype.appendMappingInverted = function appendMappingInverted (mapping) {\n for (var i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : null);\n }\n};\n\n// :: () → Mapping\n// Create an inverted version of this mapping.\nMapping.prototype.invert = function invert () {\n var inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse\n};\n\n// : (number, ?number) → number\n// Map a position through this mapping.\nMapping.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n\n if (this.mirror) { return this._map(pos, assoc, true) }\n for (var i = this.from; i < this.to; i++)\n { pos = this.maps[i].map(pos, assoc); }\n return pos\n};\n\n// : (number, ?number) → MapResult\n// Map a position through this mapping, returning a mapping\n// result.\nMapping.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\nMapping.prototype._map = function _map (pos, assoc, simple) {\n var deleted = false;\n\n for (var i = this.from; i < this.to; i++) {\n var map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n var corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue\n }\n }\n\n if (result.deleted) { deleted = true; }\n pos = result.pos;\n }\n\n return simple ? pos : new MapResult(pos, deleted)\n};\n\nfunction TransformError(message) {\n var err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err\n}\n\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n\n// ::- Abstraction to build up and track an array of\n// [steps](#transform.Step) representing a document transformation.\n//\n// Most transforming methods return the `Transform` object itself, so\n// that they can be chained.\nvar Transform = function Transform(doc) {\n // :: Node\n // The current document (the result of applying the steps in the\n // transform).\n this.doc = doc;\n // :: [Step]\n // The steps in this transform.\n this.steps = [];\n // :: [Node]\n // The documents before each of the steps.\n this.docs = [];\n // :: Mapping\n // A mapping with the maps for each of the steps in this transform.\n this.mapping = new Mapping;\n};\n\nvar prototypeAccessors = { before: { configurable: true },docChanged: { configurable: true } };\n\n// :: Node The starting document.\nprototypeAccessors.before.get = function () { return this.docs.length ? this.docs[0] : this.doc };\n\n// :: (step: Step) → this\n// Apply a new step in this transform, saving the result. Throws an\n// error when the step fails.\nTransform.prototype.step = function step (object) {\n var result = this.maybeStep(object);\n if (result.failed) { throw new TransformError(result.failed) }\n return this\n};\n\n// :: (Step) → StepResult\n// Try to apply a step in this transformation, ignoring it if it\n// fails. Returns the step result.\nTransform.prototype.maybeStep = function maybeStep (step) {\n var result = step.apply(this.doc);\n if (!result.failed) { this.addStep(step, result.doc); }\n return result\n};\n\n// :: bool\n// True when the document has been changed (when there are any\n// steps).\nprototypeAccessors.docChanged.get = function () {\n return this.steps.length > 0\n};\n\nTransform.prototype.addStep = function addStep (step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n};\n\nObject.defineProperties( Transform.prototype, prototypeAccessors );\n\nfunction mustOverride() { throw new Error(\"Override me\") }\n\nvar stepsByID = Object.create(null);\n\n// ::- A step object represents an atomic change. It generally applies\n// only to the document it was created for, since the positions\n// stored in it will only make sense for that document.\n//\n// New steps are defined by creating classes that extend `Step`,\n// overriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\n// methods, and registering your class with a unique\n// JSON-serialization identifier using\n// [`Step.jsonID`](#transform.Step^jsonID).\nvar Step = function Step () {};\n\nStep.prototype.apply = function apply (_doc) { return mustOverride() };\n\n// :: () → StepMap\n// Get the step map that represents the changes made by this step,\n// and which can be used to transform between positions in the old\n// and the new document.\nStep.prototype.getMap = function getMap () { return StepMap.empty };\n\n// :: (doc: Node) → Step\n// Create an inverted version of this step. Needs the document as it\n// was before the step as argument.\nStep.prototype.invert = function invert (_doc) { return mustOverride() };\n\n// :: (mapping: Mappable) → ?Step\n// Map this step through a mappable thing, returning either a\n// version of that step with its positions adjusted, or `null` if\n// the step was entirely deleted by the mapping.\nStep.prototype.map = function map (_mapping) { return mustOverride() };\n\n// :: (other: Step) → ?Step\n// Try to merge this step with another one, to be applied directly\n// after it. Returns the merged step when possible, null if the\n// steps can't be merged.\nStep.prototype.merge = function merge (_other) { return null };\n\n// :: () → Object\n// Create a JSON-serializeable representation of this step. When\n// defining this for a custom subclass, make sure the result object\n// includes the step type's [JSON id](#transform.Step^jsonID) under\n// the `stepType` property.\nStep.prototype.toJSON = function toJSON () { return mustOverride() };\n\n// :: (Schema, Object) → Step\n// Deserialize a step from its JSON representation. Will call\n// through to the step class' own implementation of this method.\nStep.fromJSON = function fromJSON (schema, json) {\n if (!json || !json.stepType) { throw new RangeError(\"Invalid input for Step.fromJSON\") }\n var type = stepsByID[json.stepType];\n if (!type) { throw new RangeError((\"No step type \" + (json.stepType) + \" defined\")) }\n return type.fromJSON(schema, json)\n};\n\n// :: (string, constructor)\n// To be able to serialize steps to JSON, each step needs a string\n// ID to attach to its JSON representation. Use this method to\n// register an ID for your step classes. Try to pick something\n// that's unlikely to clash with steps from other modules.\nStep.jsonID = function jsonID (id, stepClass) {\n if (id in stepsByID) { throw new RangeError(\"Duplicate use of step JSON ID \" + id) }\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass\n};\n\n// ::- The result of [applying](#transform.Step.apply) a step. Contains either a\n// new document or a failure value.\nvar StepResult = function StepResult(doc, failed) {\n // :: ?Node The transformed document.\n this.doc = doc;\n // :: ?string Text providing information about a failed step.\n this.failed = failed;\n};\n\n// :: (Node) → StepResult\n// Create a successful step result.\nStepResult.ok = function ok (doc) { return new StepResult(doc, null) };\n\n// :: (string) → StepResult\n// Create a failed step result.\nStepResult.fail = function fail (message) { return new StepResult(null, message) };\n\n// :: (Node, number, number, Slice) → StepResult\n// Call [`Node.replace`](#model.Node.replace) with the given\n// arguments. Create a successful result if it succeeds, and a\n// failed one if it throws a `ReplaceError`.\nStepResult.fromReplace = function fromReplace (doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice))\n } catch (e) {\n if (e instanceof ReplaceError) { return StepResult.fail(e.message) }\n throw e\n }\n};\n\n// ::- Replace a part of the document with a slice of new content.\nvar ReplaceStep = /*@__PURE__*/(function (Step) {\n function ReplaceStep(from, to, slice, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceStep.__proto__ = Step;\n ReplaceStep.prototype = Object.create( Step && Step.prototype );\n ReplaceStep.prototype.constructor = ReplaceStep;\n\n ReplaceStep.prototype.apply = function apply (doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n { return StepResult.fail(\"Structure replace would overwrite content\") }\n return StepResult.fromReplace(doc, this.from, this.to, this.slice)\n };\n\n ReplaceStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.to - this.from, this.slice.size])\n };\n\n ReplaceStep.prototype.invert = function invert (doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to))\n };\n\n ReplaceStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted) { return null }\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice)\n };\n\n ReplaceStep.prototype.merge = function merge (other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure) { return null }\n\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n var slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure)\n } else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n var slice$1 = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice$1, this.structure)\n } else {\n return null\n }\n };\n\n ReplaceStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replace\", from: this.from, to: this.to};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\") }\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure)\n };\n\n return ReplaceStep;\n}(Step));\n\nStep.jsonID(\"replace\", ReplaceStep);\n\n// ::- Replace a part of the document with a slice of content, but\n// preserve a range of the replaced content by moving it into the\n// slice.\nvar ReplaceAroundStep = /*@__PURE__*/(function (Step) {\n function ReplaceAroundStep(from, to, gapFrom, gapTo, slice, insert, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: number\n // The start of preserved range.\n this.gapFrom = gapFrom;\n // :: number\n // The end of preserved range.\n this.gapTo = gapTo;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n // :: number\n // The position in the slice where the preserved range should be\n // inserted.\n this.insert = insert;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceAroundStep.__proto__ = Step;\n ReplaceAroundStep.prototype = Object.create( Step && Step.prototype );\n ReplaceAroundStep.prototype.constructor = ReplaceAroundStep;\n\n ReplaceAroundStep.prototype.apply = function apply (doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n { return StepResult.fail(\"Structure gap-replace would overwrite content\") }\n\n var gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n { return StepResult.fail(\"Gap is not a flat range\") }\n var inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted) { return StepResult.fail(\"Content does not fit in gap\") }\n return StepResult.fromReplace(doc, this.from, this.to, inserted)\n };\n\n ReplaceAroundStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert])\n };\n\n ReplaceAroundStep.prototype.invert = function invert (doc) {\n var gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap,\n this.from + this.insert, this.from + this.insert + gap,\n doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from),\n this.gapFrom - this.from, this.structure)\n };\n\n ReplaceAroundStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n var gapFrom = mapping.map(this.gapFrom, -1), gapTo = mapping.map(this.gapTo, 1);\n if ((from.deleted && to.deleted) || gapFrom < from.pos || gapTo > to.pos) { return null }\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure)\n };\n\n ReplaceAroundStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceAroundStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\") }\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo,\n Slice.fromJSON(schema, json.slice), json.insert, !!json.structure)\n };\n\n return ReplaceAroundStep;\n}(Step));\n\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\n\nfunction contentBetween(doc, from, to) {\n var $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n var next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf) { return true }\n next = next.firstChild;\n dist--;\n }\n }\n return false\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end))\n}\n\n// :: (NodeRange) → ?number\n// Try to find a target depth to which the content in the given range\n// can be lifted. Will not go across\n// [isolating](#model.NodeSpec.isolating) parent nodes.\nfunction liftTarget(range) {\n var parent = range.parent;\n var content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (var depth = range.depth;; --depth) {\n var node = range.$from.node(depth);\n var index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n { return depth }\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex)) { break }\n }\n}\n\n// :: (NodeRange, number) → this\n// Split the content in the given range off from its parent, if there\n// is sibling content before or after it, and move it up the tree to\n// the depth specified by `target`. You'll probably want to use\n// [`liftTarget`](#transform.liftTarget) to compute `target`, to make\n// sure the lift is valid.\nTransform.prototype.lift = function(range, target) {\n var $from = range.$from;\n var $to = range.$to;\n var depth = range.depth;\n\n var gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n var start = gapStart, end = gapEnd;\n\n var before = Fragment.empty, openStart = 0;\n for (var d = depth, splitting = false; d > target; d--)\n { if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n } else {\n start--;\n } }\n var after = Fragment.empty, openEnd = 0;\n for (var d$1 = depth, splitting$1 = false; d$1 > target; d$1--)\n { if (splitting$1 || $to.after(d$1 + 1) < $to.end(d$1)) {\n splitting$1 = true;\n after = Fragment.from($to.node(d$1).copy(after));\n openEnd++;\n } else {\n end++;\n } }\n\n return this.step(new ReplaceAroundStep(start, end, gapStart, gapEnd,\n new Slice(before.append(after), openStart, openEnd),\n before.size - openStart, true))\n};\n\n// :: (NodeRange, NodeType, ?Object, ?NodeRange) → ?[{type: NodeType, attrs: ?Object}]\n// Try to find a valid way to wrap the content in the given range in a\n// node of the given type. May introduce extra nodes around and inside\n// the wrapper node, if necessary. Returns null if no valid wrapping\n// could be found. When `innerRange` is given, that range's content is\n// used as the content to fit into the wrapping, instead of the\n// content of `range`.\nfunction findWrapping(range, nodeType, attrs, innerRange) {\n if ( innerRange === void 0 ) innerRange = range;\n\n var around = findWrappingOutside(range, nodeType);\n var inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner) { return null }\n return around.map(withAttrs).concat({type: nodeType, attrs: attrs}).concat(inner.map(withAttrs))\n}\n\nfunction withAttrs(type) { return {type: type, attrs: null} }\n\nfunction findWrappingOutside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around) { return null }\n var outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null\n}\n\nfunction findWrappingInside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var inner = parent.child(startIndex);\n var inside = type.contentMatch.findWrapping(inner.type);\n if (!inside) { return null }\n var lastType = inside.length ? inside[inside.length - 1] : type;\n var innerMatch = lastType.contentMatch;\n for (var i = startIndex; innerMatch && i < endIndex; i++)\n { innerMatch = innerMatch.matchType(parent.child(i).type); }\n if (!innerMatch || !innerMatch.validEnd) { return null }\n return inside\n}\n\n// :: (NodeRange, [{type: NodeType, attrs: ?Object}]) → this\n// Wrap the given [range](#model.NodeRange) in the given set of wrappers.\n// The wrappers are assumed to be valid in this position, and should\n// probably be computed with [`findWrapping`](#transform.findWrapping).\nTransform.prototype.wrap = function(range, wrappers) {\n var content = Fragment.empty;\n for (var i = wrappers.length - 1; i >= 0; i--)\n { content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content)); }\n\n var start = range.start, end = range.end;\n return this.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true))\n};\n\n// :: (number, ?number, NodeType, ?Object) → this\n// Set the type of all textblocks (partly) between `from` and `to` to\n// the given node type with the given attributes.\nTransform.prototype.setBlockType = function(from, to, type, attrs) {\n var this$1 = this;\n if ( to === void 0 ) to = from;\n\n if (!type.isTextblock) { throw new RangeError(\"Type given to setBlockType should be a textblock\") }\n var mapFrom = this.steps.length;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(this$1.doc, this$1.mapping.slice(mapFrom).map(pos), type)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n this$1.clearIncompatible(this$1.mapping.slice(mapFrom).map(pos, 1), type);\n var mapping = this$1.mapping.slice(mapFrom);\n var startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n this$1.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1,\n new Slice(Fragment.from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n return false\n }\n });\n return this\n};\n\nfunction canChangeType(doc, pos, type) {\n var $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type)\n}\n\n// :: (number, ?NodeType, ?Object, ?[Mark]) → this\n// Change the type, attributes, and/or marks of the node at `pos`.\n// When `type` isn't given, the existing node type is preserved,\nTransform.prototype.setNodeMarkup = function(pos, type, attrs, marks) {\n var node = this.doc.nodeAt(pos);\n if (!node) { throw new RangeError(\"No node at given position\") }\n if (!type) { type = node.type; }\n var newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n { return this.replaceWith(pos, pos + node.nodeSize, newNode) }\n\n if (!type.validContent(node.content))\n { throw new RangeError(\"Invalid content for node type \" + type.name) }\n\n return this.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1,\n new Slice(Fragment.from(newNode), 0, 0), 1, true))\n};\n\n// :: (Node, number, number, ?[?{type: NodeType, attrs: ?Object}]) → bool\n// Check whether splitting at the given position is allowed.\nfunction canSplit(doc, pos, depth, typesAfter) {\n if ( depth === void 0 ) depth = 1;\n\n var $pos = doc.resolve(pos), base = $pos.depth - depth;\n var innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n { return false }\n for (var d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n var node = $pos.node(d), index$1 = $pos.index(d);\n if (node.type.spec.isolating) { return false }\n var rest = node.content.cutByIndex(index$1, node.childCount);\n var after = (typesAfter && typesAfter[i]) || node;\n if (after != node) { rest = rest.replaceChild(0, after.type.create(after.attrs)); }\n if (!node.canReplace(index$1 + 1, node.childCount) || !after.type.validContent(rest))\n { return false }\n }\n var index = $pos.indexAfter(base);\n var baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type)\n}\n\n// :: (number, ?number, ?[?{type: NodeType, attrs: ?Object}]) → this\n// Split the node at the given position, and optionally, if `depth` is\n// greater than one, any number of nodes above that. By default, the\n// parts split off will inherit the node type of the original node.\n// This can be changed by passing an array of types and attributes to\n// use after the split.\nTransform.prototype.split = function(pos, depth, typesAfter) {\n if ( depth === void 0 ) depth = 1;\n\n var $pos = this.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (var d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n var typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n return this.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true))\n};\n\n// :: (Node, number) → bool\n// Test whether the blocks before and after a given position can be\n// joined.\nfunction canJoin(doc, pos) {\n var $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1)\n}\n\nfunction joinable(a, b) {\n return a && b && !a.isLeaf && a.canAppend(b)\n}\n\n// :: (Node, number, ?number) → ?number\n// Find an ancestor of the given position that can be joined to the\n// block before (or after if `dir` is positive). Returns the joinable\n// point, if any.\nfunction joinPoint(doc, pos, dir) {\n if ( dir === void 0 ) dir = -1;\n\n var $pos = doc.resolve(pos);\n for (var d = $pos.depth;; d--) {\n var before = (void 0), after = (void 0), index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n } else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n } else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1)) { return pos }\n if (d == 0) { break }\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\n\n// :: (number, ?number) → this\n// Join the blocks around the given position. If depth is 2, their\n// last and first siblings are also joined, and so on.\nTransform.prototype.join = function(pos, depth) {\n if ( depth === void 0 ) depth = 1;\n\n var step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n return this.step(step)\n};\n\n// :: (Node, number, NodeType) → ?number\n// Try to find a point where a node of the given type can be inserted\n// near `pos`, by searching up the node hierarchy when `pos` itself\n// isn't a valid place but is at the start or end of a node. Return\n// null if no position was found.\nfunction insertPoint(doc, pos, nodeType) {\n var $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType)) { return pos }\n\n if ($pos.parentOffset == 0)\n { for (var d = $pos.depth - 1; d >= 0; d--) {\n var index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType)) { return $pos.before(d + 1) }\n if (index > 0) { return null }\n } }\n if ($pos.parentOffset == $pos.parent.content.size)\n { for (var d$1 = $pos.depth - 1; d$1 >= 0; d$1--) {\n var index$1 = $pos.indexAfter(d$1);\n if ($pos.node(d$1).canReplaceWith(index$1, index$1, nodeType)) { return $pos.after(d$1 + 1) }\n if (index$1 < $pos.node(d$1).childCount) { return null }\n } }\n}\n\n// :: (Node, number, Slice) → ?number\n// Finds a position at or around the given position where the given\n// slice can be inserted. Will look at parent nodes' nearest boundary\n// and try there, even if the original position wasn't directly at the\n// start or end of that node. Returns null when no position was found.\nfunction dropPoint(doc, pos, slice) {\n var $pos = doc.resolve(pos);\n if (!slice.content.size) { return pos }\n var content = slice.content;\n for (var i = 0; i < slice.openStart; i++) { content = content.firstChild.content; }\n for (var pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (var d = $pos.depth; d >= 0; d--) {\n var bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n var insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n var parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n } else {\n var wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n { return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1) }\n }\n }\n return null\n}\n\nfunction mapFragment(fragment, f, parent) {\n var mapped = [];\n for (var i = 0; i < fragment.childCount; i++) {\n var child = fragment.child(i);\n if (child.content.size) { child = child.copy(mapFragment(child.content, f, child)); }\n if (child.isInline) { child = f(child, parent, i); }\n mapped.push(child);\n }\n return Fragment.fromArray(mapped)\n}\n\n// ::- Add a mark to all inline content between two positions.\nvar AddMarkStep = /*@__PURE__*/(function (Step) {\n function AddMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the marked range.\n this.from = from;\n // :: number\n // The end of the marked range.\n this.to = to;\n // :: Mark\n // The mark to add.\n this.mark = mark;\n }\n\n if ( Step ) AddMarkStep.__proto__ = Step;\n AddMarkStep.prototype = Object.create( Step && Step.prototype );\n AddMarkStep.prototype.constructor = AddMarkStep;\n\n AddMarkStep.prototype.apply = function apply (doc) {\n var this$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n var parent = $from.node($from.sharedDepth(this.to));\n var slice = new Slice(mapFragment(oldSlice.content, function (node, parent) {\n if (!node.isAtom || !parent.type.allowsMarkType(this$1.mark.type)) { return node }\n return node.mark(this$1.mark.addToSet(node.marks))\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n AddMarkStep.prototype.invert = function invert () {\n return new RemoveMarkStep(this.from, this.to, this.mark)\n };\n\n AddMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new AddMarkStep(from.pos, to.pos, this.mark)\n };\n\n AddMarkStep.prototype.merge = function merge (other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new AddMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n AddMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n AddMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\") }\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return AddMarkStep;\n}(Step));\n\nStep.jsonID(\"addMark\", AddMarkStep);\n\n// ::- Remove a mark from all inline content between two positions.\nvar RemoveMarkStep = /*@__PURE__*/(function (Step) {\n function RemoveMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the unmarked range.\n this.from = from;\n // :: number\n // The end of the unmarked range.\n this.to = to;\n // :: Mark\n // The mark to remove.\n this.mark = mark;\n }\n\n if ( Step ) RemoveMarkStep.__proto__ = Step;\n RemoveMarkStep.prototype = Object.create( Step && Step.prototype );\n RemoveMarkStep.prototype.constructor = RemoveMarkStep;\n\n RemoveMarkStep.prototype.apply = function apply (doc) {\n var this$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to);\n var slice = new Slice(mapFragment(oldSlice.content, function (node) {\n return node.mark(this$1.mark.removeFromSet(node.marks))\n }), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n RemoveMarkStep.prototype.invert = function invert () {\n return new AddMarkStep(this.from, this.to, this.mark)\n };\n\n RemoveMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new RemoveMarkStep(from.pos, to.pos, this.mark)\n };\n\n RemoveMarkStep.prototype.merge = function merge (other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new RemoveMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n RemoveMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n RemoveMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\") }\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return RemoveMarkStep;\n}(Step));\n\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n\n// :: (number, number, Mark) → this\n// Add the given mark to the inline content between `from` and `to`.\nTransform.prototype.addMark = function(from, to, mark) {\n var this$1 = this;\n\n var removed = [], added = [], removing = null, adding = null;\n this.doc.nodesBetween(from, to, function (node, pos, parent) {\n if (!node.isInline) { return }\n var marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n var start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n var newSet = mark.addToSet(marks);\n\n for (var i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n { removing.to = end; }\n else\n { removed.push(removing = new RemoveMarkStep(start, end, marks[i])); }\n }\n }\n\n if (adding && adding.to == start)\n { adding.to = end; }\n else\n { added.push(adding = new AddMarkStep(start, end, mark)); }\n }\n });\n\n removed.forEach(function (s) { return this$1.step(s); });\n added.forEach(function (s) { return this$1.step(s); });\n return this\n};\n\n// :: (number, number, ?union) → this\n// Remove marks from inline nodes between `from` and `to`. When `mark`\n// is a single mark, remove precisely that mark. When it is a mark type,\n// remove all marks of that type. When it is null, remove all marks of\n// any type.\nTransform.prototype.removeMark = function(from, to, mark) {\n var this$1 = this;\n if ( mark === void 0 ) mark = null;\n\n var matched = [], step = 0;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (!node.isInline) { return }\n step++;\n var toRemove = null;\n if (mark instanceof MarkType) {\n var set = node.marks, found;\n while (found = mark.isInSet(set)) {\n(toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n } else if (mark) {\n if (mark.isInSet(node.marks)) { toRemove = [mark]; }\n } else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n var end = Math.min(pos + node.nodeSize, to);\n for (var i = 0; i < toRemove.length; i++) {\n var style = toRemove[i], found$1 = (void 0);\n for (var j = 0; j < matched.length; j++) {\n var m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style)) { found$1 = m; }\n }\n if (found$1) {\n found$1.to = end;\n found$1.step = step;\n } else {\n matched.push({style: style, from: Math.max(pos, from), to: end, step: step});\n }\n }\n }\n });\n matched.forEach(function (m) { return this$1.step(new RemoveMarkStep(m.from, m.to, m.style)); });\n return this\n};\n\n// :: (number, NodeType, ?ContentMatch) → this\n// Removes all marks and nodes from the content of the node at `pos`\n// that don't match the given new parent node type. Accepts an\n// optional starting [content match](#model.ContentMatch) as third\n// argument.\nTransform.prototype.clearIncompatible = function(pos, parentType, match) {\n if ( match === void 0 ) match = parentType.contentMatch;\n\n var node = this.doc.nodeAt(pos);\n var delSteps = [], cur = pos + 1;\n for (var i = 0; i < node.childCount; i++) {\n var child = node.child(i), end = cur + child.nodeSize;\n var allowed = match.matchType(child.type, child.attrs);\n if (!allowed) {\n delSteps.push(new ReplaceStep(cur, end, Slice.empty));\n } else {\n match = allowed;\n for (var j = 0; j < child.marks.length; j++) { if (!parentType.allowsMarkType(child.marks[j].type))\n { this.step(new RemoveMarkStep(cur, end, child.marks[j])); } }\n }\n cur = end;\n }\n if (!match.validEnd) {\n var fill = match.fillBefore(Fragment.empty, true);\n this.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (var i$1 = delSteps.length - 1; i$1 >= 0; i$1--) { this.step(delSteps[i$1]); }\n return this\n};\n\n// :: (Node, number, ?number, ?Slice) → ?Step\n// ‘Fit’ a slice into a given position in the document, producing a\n// [step](#transform.Step) that inserts it. Will return null if\n// there's no meaningful way to insert the slice here, or inserting it\n// would be a no-op (an empty slice over an empty range).\nfunction replaceStep(doc, from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n if (from == to && !slice.size) { return null }\n\n var $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice)) { return new ReplaceStep(from, to, slice) }\n return new Fitter($from, $to, slice).fit()\n}\n\n// :: (number, ?number, ?Slice) → this\n// Replace the part of the document between `from` and `to` with the\n// given `slice`.\nTransform.prototype.replace = function(from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n var step = replaceStep(this.doc, from, to, slice);\n if (step) { this.step(step); }\n return this\n};\n\n// :: (number, number, union) → this\n// Replace the given range with the given content, which may be a\n// fragment, node, or array of nodes.\nTransform.prototype.replaceWith = function(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the content between the given positions.\nTransform.prototype.delete = function(from, to) {\n return this.replace(from, to, Slice.empty)\n};\n\n// :: (number, union) → this\n// Insert the given content at the given position.\nTransform.prototype.insert = function(pos, content) {\n return this.replaceWith(pos, pos, content)\n};\n\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content)\n}\n\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nvar Fitter = function Fitter($from, $to, slice) {\n this.$to = $to;\n this.$from = $from;\n this.unplaced = slice;\n\n this.frontier = [];\n for (var i = 0; i <= $from.depth; i++) {\n var node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n\n this.placed = Fragment.empty;\n for (var i$1 = $from.depth; i$1 > 0; i$1--)\n { this.placed = Fragment.from($from.node(i$1).copy(this.placed)); }\n};\n\nvar prototypeAccessors$1 = { depth: { configurable: true } };\n\nprototypeAccessors$1.depth.get = function () { return this.frontier.length - 1 };\n\nFitter.prototype.fit = function fit () {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n var fit = this.findFittable();\n if (fit) { this.placeNodes(fit); }\n else { this.openMore() || this.dropNode(); }\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n var moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n var $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to) { return null }\n\n // If closing to `$to` succeeded, create a step\n var content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--; openEnd--;\n }\n var slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n { return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize) }\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n { return new ReplaceStep($from.pos, $to.pos, slice) }\n};\n\n// Find a position on the start spine of `this.unplaced` that has\n// content that can be moved somewhere on the frontier. Returns two\n// depths, one for the slice and one for the frontier.\nFitter.prototype.findFittable = function findFittable () {\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (var pass = 1; pass <= 2; pass++) {\n for (var sliceDepth = this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n var fragment = (void 0), parent = (void 0);\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n } else {\n fragment = this.unplaced.content;\n }\n var first = fragment.firstChild;\n for (var frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n var ref = this.frontier[frontierDepth];\n var type = ref.type;\n var match = ref.match;\n var wrap = (void 0), inject = (void 0);\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : type.compatibleContent(parent.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, inject: inject} }\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, wrap: wrap} }\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type)) { break }\n }\n }\n }\n};\n\nFitter.prototype.openMore = function openMore () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf) { return false }\n this.unplaced = new Slice(content, openStart + 1,\n Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true\n};\n\nFitter.prototype.dropNode = function dropNode () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n var openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1,\n openAtEnd ? openStart - 1 : openEnd);\n } else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n};\n\n// : ({sliceDepth: number, frontierDepth: number, parent: ?Node, wrap: ?[NodeType], inject: ?Fragment})\n// Move content from the unplaced slice at `sliceDepth` to the\n// frontier node at `frontierDepth`. Close that frontier node when\n// applicable.\nFitter.prototype.placeNodes = function placeNodes (ref) {\n var sliceDepth = ref.sliceDepth;\n var frontierDepth = ref.frontierDepth;\n var parent = ref.parent;\n var inject = ref.inject;\n var wrap = ref.wrap;\n\n while (this.depth > frontierDepth) { this.closeFrontierNode(); }\n if (wrap) { for (var i = 0; i < wrap.length; i++) { this.openFrontierNode(wrap[i]); } }\n\n var slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n var openStart = slice.openStart - sliceDepth;\n var taken = 0, add = [];\n var ref$1 = this.frontier[frontierDepth];\n var match = ref$1.match;\n var type = ref$1.type;\n if (inject) {\n for (var i$1 = 0; i$1 < inject.childCount; i$1++) { add.push(inject.child(i$1)); }\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n var openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n var next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches) { break }\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0,\n taken == fragment.childCount ? openEndCount : -1));\n }\n }\n var toEnd = taken == fragment.childCount;\n if (!toEnd) { openEndCount = -1; }\n\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n { this.closeFrontierNode(); }\n\n // Add new frontier nodes for any open nodes at the end.\n for (var i$2 = 0, cur = fragment; i$2 < openEndCount; i$2++) {\n var node = cur.lastChild;\n this.frontier.push({type: node.type, match: node.contentMatchAt(node.childCount)});\n cur = node.content;\n }\n\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1),\n sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n};\n\nFitter.prototype.mustMoveInline = function mustMoveInline () {\n if (!this.$to.parent.isTextblock || this.$to.end() == this.$to.pos) { return -1 }\n var top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth)) { return -1 }\n\n var ref = this.$to;\n var depth = ref.depth;\n var after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth)) { ++after; }\n return after\n};\n\nFitter.prototype.findCloseLevel = function findCloseLevel ($to) {\n scan: for (var i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n var ref = this.frontier[i];\n var match = ref.match;\n var type = ref.type;\n var dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n var fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit) { continue }\n for (var d = i - 1; d >= 0; d--) {\n var ref$1 = this.frontier[d];\n var match$1 = ref$1.match;\n var type$1 = ref$1.type;\n var matches = contentAfterFits($to, d, type$1, match$1, true);\n if (!matches || matches.childCount) { continue scan }\n }\n return {depth: i, fit: fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to}\n }\n};\n\nFitter.prototype.close = function close ($to) {\n var close = this.findCloseLevel($to);\n if (!close) { return null }\n\n while (this.depth > close.depth) { this.closeFrontierNode(); }\n if (close.fit.childCount) { this.placed = addToFragment(this.placed, close.depth, close.fit); }\n $to = close.move;\n for (var d = close.depth + 1; d <= $to.depth; d++) {\n var node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to\n};\n\nFitter.prototype.openFrontierNode = function openFrontierNode (type, attrs, content) {\n var top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({type: type, match: type.contentMatch});\n};\n\nFitter.prototype.closeFrontierNode = function closeFrontierNode () {\n var open = this.frontier.pop();\n var add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount) { this.placed = addToFragment(this.placed, this.frontier.length, add); }\n};\n\nObject.defineProperties( Fitter.prototype, prototypeAccessors$1 );\n\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0) { return fragment.cutByIndex(count) }\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)))\n}\n\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0) { return fragment.append(content) }\n return fragment.replaceChild(fragment.childCount - 1,\n fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)))\n}\n\nfunction contentAt(fragment, depth) {\n for (var i = 0; i < depth; i++) { fragment = fragment.firstChild.content; }\n return fragment\n}\n\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0) { return node }\n var frag = node.content;\n if (openStart > 1)\n { frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0)); }\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0) { frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true)); }\n }\n return node.copy(frag)\n}\n\nfunction contentAfterFits($to, depth, type, match, open) {\n var node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type)) { return null }\n var fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null\n}\n\nfunction invalidMarks(type, fragment, start) {\n for (var i = start; i < fragment.childCount; i++)\n { if (!type.allowsMarks(fragment.child(i).marks)) { return true } }\n return false\n}\n\n// :: (number, number, Slice) → this\n// Replace a range of the document with a given slice, using `from`,\n// `to`, and the slice's [`openStart`](#model.Slice.openStart) property\n// as hints, rather than fixed start and end points. This method may\n// grow the replaced area or close open nodes in the slice in order to\n// get a fit that is more in line with WYSIWYG expectations, by\n// dropping fully covered parent nodes of the replaced region when\n// they are marked [non-defining](#model.NodeSpec.defining), or\n// including an open parent node from the slice that _is_ marked as\n// [defining](#model.NodeSpec.defining).\n//\n// This is the method, for example, to handle paste. The similar\n// [`replace`](#transform.Transform.replace) method is a more\n// primitive tool which will _not_ move the start and end of its given\n// range, and is useful in situations where you need more precise\n// control over what happens.\nTransform.prototype.replaceRange = function(from, to, slice) {\n if (!slice.size) { return this.deleteRange(from, to) }\n\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n { return this.step(new ReplaceStep(from, to, slice)) }\n\n var targetDepths = coveredDepths($from, this.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0) { targetDepths.pop(); }\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n var preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (var d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n var spec = $from.node(d).type.spec;\n if (spec.defining || spec.isolating) { break }\n if (targetDepths.indexOf(d) > -1) { preferredTarget = d; }\n else if ($from.before(d) == pos) { targetDepths.splice(1, 0, -d); }\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n var preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n\n var leftNodes = [], preferredDepth = slice.openStart;\n for (var content = slice.content, i = 0;; i++) {\n var node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart) { break }\n content = node.content;\n }\n // Back up if the node directly above openStart, or the node above\n // that separated only by a non-defining textblock node, is defining.\n if (preferredDepth > 0 && leftNodes[preferredDepth - 1].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 1].type)\n { preferredDepth -= 1; }\n else if (preferredDepth >= 2 && leftNodes[preferredDepth - 1].isTextblock && leftNodes[preferredDepth - 2].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 2].type)\n { preferredDepth -= 2; }\n\n for (var j = slice.openStart; j >= 0; j--) {\n var openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n var insert = leftNodes[openDepth];\n if (!insert) { continue }\n for (var i$1 = 0; i$1 < targetDepths.length; i$1++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n var targetDepth = targetDepths[(i$1 + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) { expand = false; targetDepth = -targetDepth; }\n var parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n { return this.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to,\n new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth),\n openDepth, slice.openEnd)) }\n }\n }\n\n var startSteps = this.steps.length;\n for (var i$2 = targetDepths.length - 1; i$2 >= 0; i$2--) {\n this.replace(from, to, slice);\n if (this.steps.length > startSteps) { break }\n var depth = targetDepths[i$2];\n if (depth < 0) { continue }\n from = $from.before(depth); to = $to.after(depth);\n }\n return this\n};\n\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n var first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n var match = parent.contentMatchAt(0);\n var start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment\n}\n\n// :: (number, number, Node) → this\n// Replace the given range with a node, but use `from` and `to` as\n// hints, rather than precise positions. When from and to are the same\n// and are at the start or end of a parent node in which the given\n// node doesn't fit, this method may _move_ them out towards a parent\n// that does allow the given node to be placed. When the given range\n// completely covers a parent node, this method may completely replace\n// that parent node.\nTransform.prototype.replaceRangeWith = function(from, to, node) {\n if (!node.isInline && from == to && this.doc.resolve(from).parent.content.size) {\n var point = insertPoint(this.doc, from, node.type);\n if (point != null) { from = to = point; }\n }\n return this.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the given range, expanding it to cover fully covered\n// parent nodes until a valid replace is found.\nTransform.prototype.deleteRange = function(from, to) {\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n var covered = coveredDepths($from, $to);\n for (var i = 0; i < covered.length; i++) {\n var depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n { return this.delete($from.start(depth), $to.end(depth)) }\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n { return this.delete($from.before(depth), $to.after(depth)) }\n }\n for (var d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n { return this.delete($from.before(d), to) }\n }\n return this.delete(from, to)\n};\n\n// : (ResolvedPos, ResolvedPos) → [number]\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n var result = [], minDepth = Math.min($from.depth, $to.depth);\n for (var d = minDepth; d >= 0; d--) {\n var start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating) { break }\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n { result.push(d); }\n }\n return result\n}\n\nexport { AddMarkStep, MapResult, Mapping, RemoveMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n//# sourceMappingURL=index.es.js.map\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","import { PluginKey, TextSelection, Selection, SelectionRange, NodeSelection, Plugin } from 'prosemirror-state';\nimport { Fragment, Slice } from 'prosemirror-model';\nimport { keydownHandler } from 'prosemirror-keymap';\nimport { Decoration, DecorationSet } from 'prosemirror-view';\nimport { Transform } from 'prosemirror-transform';\n\n// Because working with row and column-spanning cells is not quite\n// trivial, this code builds up a descriptive structure for a given\n// table node. The structures are cached with the (persistent) table\n// nodes as key, so that they only have to be recomputed when the\n// content of the table changes.\n//\n// This does mean that they have to store table-relative, not\n// document-relative positions. So code that uses them will typically\n// compute the start position of the table and offset positions passed\n// to or gotten from this structure by that amount.\n\nvar readFromCache, addToCache;\n// Prefer using a weak map to cache table maps. Fall back on a\n// fixed-size cache if that's not supported.\nif (typeof WeakMap != \"undefined\") {\n var cache = new WeakMap;\n readFromCache = function (key) { return cache.get(key); };\n addToCache = function (key, value) {\n cache.set(key, value);\n return value\n };\n} else {\n var cache$1 = [], cacheSize = 10, cachePos = 0;\n readFromCache = function (key) {\n for (var i = 0; i < cache$1.length; i += 2)\n { if (cache$1[i] == key) { return cache$1[i + 1] } }\n };\n addToCache = function (key, value) {\n if (cachePos == cacheSize) { cachePos = 0; }\n cache$1[cachePos++] = key;\n return cache$1[cachePos++] = value\n };\n}\n\nvar Rect = function Rect(left, top, right, bottom) {\n this.left = left; this.top = top; this.right = right; this.bottom = bottom;\n};\n\n// ::- A table map describes the structore of a given table. To avoid\n// recomputing them all the time, they are cached per table node. To\n// be able to do that, positions saved in the map are relative to the\n// start of the table, rather than the start of the document.\nvar TableMap = function TableMap(width, height, map, problems) {\n // :: number The width of the table\n this.width = width;\n // :: number The table's height\n this.height = height;\n // :: [number] A width * height array with the start position of\n // the cell covering that part of the table in each slot\n this.map = map;\n // An optional array of problems (cell overlap or non-rectangular\n // shape) for the table, used by the table normalizer.\n this.problems = problems;\n};\n\n// :: (number) → Rect\n// Find the dimensions of the cell at the given position.\nTableMap.prototype.findCell = function findCell (pos) {\n for (var i = 0; i < this.map.length; i++) {\n var curPos = this.map[i];\n if (curPos != pos) { continue }\n var left = i % this.width, top = (i / this.width) | 0;\n var right = left + 1, bottom = top + 1;\n for (var j = 1; right < this.width && this.map[i + j] == curPos; j++) { right++; }\n for (var j$1 = 1; bottom < this.height && this.map[i + (this.width * j$1)] == curPos; j$1++) { bottom++; }\n return new Rect(left, top, right, bottom)\n }\n throw new RangeError(\"No cell with offset \" + pos + \" found\")\n};\n\n// :: (number) → number\n// Find the left side of the cell at the given position.\nTableMap.prototype.colCount = function colCount (pos) {\n for (var i = 0; i < this.map.length; i++)\n { if (this.map[i] == pos) { return i % this.width } }\n throw new RangeError(\"No cell with offset \" + pos + \" found\")\n};\n\n// :: (number, string, number) → ?number\n// Find the next cell in the given direction, starting from the cell\n// at `pos`, if any.\nTableMap.prototype.nextCell = function nextCell (pos, axis, dir) {\n var ref = this.findCell(pos);\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n var bottom = ref.bottom;\n if (axis == \"horiz\") {\n if (dir < 0 ? left == 0 : right == this.width) { return null }\n return this.map[top * this.width + (dir < 0 ? left - 1 : right)]\n } else {\n if (dir < 0 ? top == 0 : bottom == this.height) { return null }\n return this.map[left + this.width * (dir < 0 ? top - 1 : bottom)]\n }\n};\n\n// :: (number, number) → Rect\n// Get the rectangle spanning the two given cells.\nTableMap.prototype.rectBetween = function rectBetween (a, b) {\n var ref = this.findCell(a);\n var leftA = ref.left;\n var rightA = ref.right;\n var topA = ref.top;\n var bottomA = ref.bottom;\n var ref$1 = this.findCell(b);\n var leftB = ref$1.left;\n var rightB = ref$1.right;\n var topB = ref$1.top;\n var bottomB = ref$1.bottom;\n return new Rect(Math.min(leftA, leftB), Math.min(topA, topB),\n Math.max(rightA, rightB), Math.max(bottomA, bottomB))\n};\n\n// :: (Rect) → [number]\n// Return the position of all cells that have the top left corner in\n// the given rectangle.\nTableMap.prototype.cellsInRect = function cellsInRect (rect) {\n var result = [], seen = {};\n for (var row = rect.top; row < rect.bottom; row++) {\n for (var col = rect.left; col < rect.right; col++) {\n var index = row * this.width + col, pos = this.map[index];\n if (seen[pos]) { continue }\n seen[pos] = true;\n if ((col != rect.left || !col || this.map[index - 1] != pos) &&\n (row != rect.top || !row || this.map[index - this.width] != pos))\n { result.push(pos); }\n }\n }\n return result\n};\n\n// :: (number, number, Node) → number\n// Return the position at which the cell at the given row and column\n// starts, or would start, if a cell started there.\nTableMap.prototype.positionAt = function positionAt (row, col, table) {\n for (var i = 0, rowStart = 0;; i++) {\n var rowEnd = rowStart + table.child(i).nodeSize;\n if (i == row) {\n var index = col + row * this.width, rowEndIndex = (row + 1) * this.width;\n // Skip past cells from previous rows (via rowspan)\n while (index < rowEndIndex && this.map[index] < rowStart) { index++; }\n return index == rowEndIndex ? rowEnd - 1 : this.map[index]\n }\n rowStart = rowEnd;\n }\n};\n\n// :: (Node) → TableMap\n// Find the table map for the given table node.\nTableMap.get = function get (table) {\n return readFromCache(table) || addToCache(table, computeMap(table))\n};\n\n// Compute a table map.\nfunction computeMap(table) {\n if (table.type.spec.tableRole != \"table\") { throw new RangeError(\"Not a table node: \" + table.type.name) }\n var width = findWidth(table), height = table.childCount;\n var map = [], mapPos = 0, problems = null, colWidths = [];\n for (var i = 0, e = width * height; i < e; i++) { map[i] = 0; }\n\n for (var row = 0, pos = 0; row < height; row++) {\n var rowNode = table.child(row);\n pos++;\n for (var i$1 = 0;; i$1++) {\n while (mapPos < map.length && map[mapPos] != 0) { mapPos++; }\n if (i$1 == rowNode.childCount) { break }\n var cellNode = rowNode.child(i$1);\n var ref = cellNode.attrs;\n var colspan = ref.colspan;\n var rowspan = ref.rowspan;\n var colwidth = ref.colwidth;\n for (var h = 0; h < rowspan; h++) {\n if (h + row >= height) {\n (problems || (problems = [])).push({type: \"overlong_rowspan\", pos: pos, n: rowspan - h});\n break\n }\n var start = mapPos + (h * width);\n for (var w = 0; w < colspan; w++) {\n if (map[start + w] == 0)\n { map[start + w] = pos; }\n else\n { (problems || (problems = [])).push({type: \"collision\", row: row, pos: pos, n: colspan - w}); }\n var colW = colwidth && colwidth[w];\n if (colW) {\n var widthIndex = ((start + w) % width) * 2, prev = colWidths[widthIndex];\n if (prev == null || (prev != colW && colWidths[widthIndex + 1] == 1)) {\n colWidths[widthIndex] = colW;\n colWidths[widthIndex + 1] = 1;\n } else if (prev == colW) {\n colWidths[widthIndex + 1]++;\n }\n }\n }\n }\n mapPos += colspan;\n pos += cellNode.nodeSize;\n }\n var expectedPos = (row + 1) * width, missing = 0;\n while (mapPos < expectedPos) { if (map[mapPos++] == 0) { missing++; } }\n if (missing) { (problems || (problems = [])).push({type: \"missing\", row: row, n: missing}); }\n pos++;\n }\n\n var tableMap = new TableMap(width, height, map, problems), badWidths = false;\n\n // For columns that have defined widths, but whose widths disagree\n // between rows, fix up the cells whose width doesn't match the\n // computed one.\n for (var i$2 = 0; !badWidths && i$2 < colWidths.length; i$2 += 2)\n { if (colWidths[i$2] != null && colWidths[i$2 + 1] < height) { badWidths = true; } }\n if (badWidths) { findBadColWidths(tableMap, colWidths, table); }\n\n return tableMap\n}\n\nfunction findWidth(table) {\n var width = -1, hasRowSpan = false;\n for (var row = 0; row < table.childCount; row++) {\n var rowNode = table.child(row), rowWidth = 0;\n if (hasRowSpan) { for (var j = 0; j < row; j++) {\n var prevRow = table.child(j);\n for (var i = 0; i < prevRow.childCount; i++) {\n var cell = prevRow.child(i);\n if (j + cell.attrs.rowspan > row) { rowWidth += cell.attrs.colspan; }\n }\n } }\n for (var i$1 = 0; i$1 < rowNode.childCount; i$1++) {\n var cell$1 = rowNode.child(i$1);\n rowWidth += cell$1.attrs.colspan;\n if (cell$1.attrs.rowspan > 1) { hasRowSpan = true; }\n }\n if (width == -1)\n { width = rowWidth; }\n else if (width != rowWidth)\n { width = Math.max(width, rowWidth); }\n }\n return width\n}\n\nfunction findBadColWidths(map, colWidths, table) {\n if (!map.problems) { map.problems = []; }\n for (var i = 0, seen = {}; i < map.map.length; i++) {\n var pos = map.map[i];\n if (seen[pos]) { continue }\n seen[pos] = true;\n var node = table.nodeAt(pos), updated = null;\n for (var j = 0; j < node.attrs.colspan; j++) {\n var col = (i + j) % map.width, colWidth = colWidths[col * 2];\n if (colWidth != null && (!node.attrs.colwidth || node.attrs.colwidth[j] != colWidth))\n { (updated || (updated = freshColWidth(node.attrs)))[j] = colWidth; }\n }\n if (updated) { map.problems.unshift({type: \"colwidth mismatch\", pos: pos, colwidth: updated}); }\n }\n}\n\nfunction freshColWidth(attrs) {\n if (attrs.colwidth) { return attrs.colwidth.slice() }\n var result = [];\n for (var i = 0; i < attrs.colspan; i++) { result.push(0); }\n return result\n}\n\n// Helper for creating a schema that supports tables.\n\nfunction getCellAttrs(dom, extraAttrs) {\n var widthAttr = dom.getAttribute(\"data-colwidth\");\n var widths = widthAttr && /^\\d+(,\\d+)*$/.test(widthAttr) ? widthAttr.split(\",\").map(function (s) { return Number(s); }) : null;\n var colspan = Number(dom.getAttribute(\"colspan\") || 1);\n var result = {\n colspan: colspan,\n rowspan: Number(dom.getAttribute(\"rowspan\") || 1),\n colwidth: widths && widths.length == colspan ? widths : null\n };\n for (var prop in extraAttrs) {\n var getter = extraAttrs[prop].getFromDOM;\n var value = getter && getter(dom);\n if (value != null) { result[prop] = value; }\n }\n return result\n}\n\nfunction setCellAttrs(node, extraAttrs) {\n var attrs = {};\n if (node.attrs.colspan != 1) { attrs.colspan = node.attrs.colspan; }\n if (node.attrs.rowspan != 1) { attrs.rowspan = node.attrs.rowspan; }\n if (node.attrs.colwidth)\n { attrs[\"data-colwidth\"] = node.attrs.colwidth.join(\",\"); }\n for (var prop in extraAttrs) {\n var setter = extraAttrs[prop].setDOMAttr;\n if (setter) { setter(node.attrs[prop], attrs); }\n }\n return attrs\n}\n\n// :: (Object) → Object\n//\n// This function creates a set of [node\n// specs](http://prosemirror.net/docs/ref/#model.SchemaSpec.nodes) for\n// `table`, `table_row`, and `table_cell` nodes types as used by this\n// module. The result can then be added to the set of nodes when\n// creating a a schema.\n//\n// options::- The following options are understood:\n//\n// tableGroup:: ?string\n// A group name (something like `\"block\"`) to add to the table\n// node type.\n//\n// cellContent:: string\n// The content expression for table cells.\n//\n// cellAttributes:: ?Object\n// Additional attributes to add to cells. Maps attribute names to\n// objects with the following properties:\n//\n// default:: any\n// The attribute's default value.\n//\n// getFromDOM:: ?(dom.Node) → any\n// A function to read the attribute's value from a DOM node.\n//\n// setDOMAttr:: ?(value: any, attrs: Object)\n// A function to add the attribute's value to an attribute\n// object that's used to render the cell's DOM.\nfunction tableNodes(options) {\n var extraAttrs = options.cellAttributes || {};\n var cellAttrs = {\n colspan: {default: 1},\n rowspan: {default: 1},\n colwidth: {default: null}\n };\n for (var prop in extraAttrs)\n { cellAttrs[prop] = {default: extraAttrs[prop].default}; }\n\n return {\n table: {\n content: \"table_row+\",\n tableRole: \"table\",\n isolating: true,\n group: options.tableGroup,\n parseDOM: [{tag: \"table\"}],\n toDOM: function toDOM() { return [\"table\", [\"tbody\", 0]] }\n },\n table_row: {\n content: \"(table_cell | table_header)*\",\n tableRole: \"row\",\n parseDOM: [{tag: \"tr\"}],\n toDOM: function toDOM() { return [\"tr\", 0] }\n },\n table_cell: {\n content: options.cellContent,\n attrs: cellAttrs,\n tableRole: \"cell\",\n isolating: true,\n parseDOM: [{tag: \"td\", getAttrs: function (dom) { return getCellAttrs(dom, extraAttrs); }}],\n toDOM: function toDOM(node) { return [\"td\", setCellAttrs(node, extraAttrs), 0] }\n },\n table_header: {\n content: options.cellContent,\n attrs: cellAttrs,\n tableRole: \"header_cell\",\n isolating: true,\n parseDOM: [{tag: \"th\", getAttrs: function (dom) { return getCellAttrs(dom, extraAttrs); }}],\n toDOM: function toDOM(node) { return [\"th\", setCellAttrs(node, extraAttrs), 0] }\n }\n }\n}\n\nfunction tableNodeTypes(schema) {\n var result = schema.cached.tableNodeTypes;\n if (!result) {\n result = schema.cached.tableNodeTypes = {};\n for (var name in schema.nodes) {\n var type = schema.nodes[name], role = type.spec.tableRole;\n if (role) { result[role] = type; }\n }\n }\n return result\n}\n\n// Various helper function for working with tables\n\nvar key = new PluginKey(\"selectingCells\");\n\nfunction cellAround($pos) {\n for (var d = $pos.depth - 1; d > 0; d--)\n { if ($pos.node(d).type.spec.tableRole == \"row\") { return $pos.node(0).resolve($pos.before(d + 1)) } }\n return null\n}\n\nfunction cellWrapping($pos) {\n for (var d = $pos.depth; d > 0; d--) { // Sometimes the cell can be in the same depth.\n var role = $pos.node(d).type.spec.tableRole;\n if (role === \"cell\" || role === 'header_cell') { return $pos.node(d) }\n }\n return null\n}\n\nfunction isInTable(state) {\n var $head = state.selection.$head;\n for (var d = $head.depth; d > 0; d--) { if ($head.node(d).type.spec.tableRole == \"row\") { return true } }\n return false\n}\n\nfunction selectionCell(state) {\n var sel = state.selection;\n if (sel.$anchorCell) {\n return sel.$anchorCell.pos > sel.$headCell.pos ? sel.$anchorCell : sel.$headCell;\n } else if (sel.node && sel.node.type.spec.tableRole == \"cell\") {\n return sel.$anchor\n }\n return cellAround(sel.$head) || cellNear(sel.$head)\n}\n\nfunction cellNear($pos) {\n for (var after = $pos.nodeAfter, pos = $pos.pos; after; after = after.firstChild, pos++) {\n var role = after.type.spec.tableRole;\n if (role == \"cell\" || role == \"header_cell\") { return $pos.doc.resolve(pos) }\n }\n for (var before = $pos.nodeBefore, pos$1 = $pos.pos; before; before = before.lastChild, pos$1--) {\n var role$1 = before.type.spec.tableRole;\n if (role$1 == \"cell\" || role$1 == \"header_cell\") { return $pos.doc.resolve(pos$1 - before.nodeSize) }\n }\n}\n\nfunction pointsAtCell($pos) {\n return $pos.parent.type.spec.tableRole == \"row\" && $pos.nodeAfter\n}\n\nfunction moveCellForward($pos) {\n return $pos.node(0).resolve($pos.pos + $pos.nodeAfter.nodeSize)\n}\n\nfunction inSameTable($a, $b) {\n return $a.depth == $b.depth && $a.pos >= $b.start(-1) && $a.pos <= $b.end(-1)\n}\n\nfunction findCell($pos) {\n return TableMap.get($pos.node(-1)).findCell($pos.pos - $pos.start(-1))\n}\n\nfunction colCount($pos) {\n return TableMap.get($pos.node(-1)).colCount($pos.pos - $pos.start(-1))\n}\n\nfunction nextCell($pos, axis, dir) {\n var start = $pos.start(-1), map = TableMap.get($pos.node(-1));\n var moved = map.nextCell($pos.pos - start, axis, dir);\n return moved == null ? null : $pos.node(0).resolve(start + moved)\n}\n\nfunction setAttr(attrs, name, value) {\n var result = {};\n for (var prop in attrs) { result[prop] = attrs[prop]; }\n result[name] = value;\n return result\n}\n\nfunction removeColSpan(attrs, pos, n) {\n if ( n === void 0 ) n=1;\n\n var result = setAttr(attrs, \"colspan\", attrs.colspan - n);\n if (result.colwidth) {\n result.colwidth = result.colwidth.slice();\n result.colwidth.splice(pos, n);\n if (!result.colwidth.some(function (w) { return w > 0; })) { result.colwidth = null; }\n }\n return result\n}\n\nfunction addColSpan(attrs, pos, n) {\n if ( n === void 0 ) n=1;\n\n var result = setAttr(attrs, \"colspan\", attrs.colspan + n);\n if (result.colwidth) {\n result.colwidth = result.colwidth.slice();\n for (var i = 0; i < n; i++) { result.colwidth.splice(pos, 0, 0); }\n }\n return result\n}\n\nfunction columnIsHeader(map, table, col) {\n var headerCell = tableNodeTypes(table.type.schema).header_cell;\n for (var row = 0; row < map.height; row++)\n { if (table.nodeAt(map.map[col + row * map.width]).type != headerCell)\n { return false } }\n return true\n}\n\n// This file defines a ProseMirror selection subclass that models\n\n// ::- A [`Selection`](http://prosemirror.net/docs/ref/#state.Selection)\n// subclass that represents a cell selection spanning part of a table.\n// With the plugin enabled, these will be created when the user\n// selects across cells, and will be drawn by giving selected cells a\n// `selectedCell` CSS class.\nvar CellSelection = /*@__PURE__*/(function (Selection) {\n function CellSelection($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var table = $anchorCell.node(-1), map = TableMap.get(table), start = $anchorCell.start(-1);\n var rect = map.rectBetween($anchorCell.pos - start, $headCell.pos - start);\n var doc = $anchorCell.node(0);\n var cells = map.cellsInRect(rect).filter(function (p) { return p != $headCell.pos - start; });\n // Make the head cell the first range, so that it counts as the\n // primary part of the selection\n cells.unshift($headCell.pos - start);\n var ranges = cells.map(function (pos) {\n var cell = table.nodeAt(pos), from = pos + start + 1;\n return new SelectionRange(doc.resolve(from), doc.resolve(from + cell.content.size))\n });\n Selection.call(this, ranges[0].$from, ranges[0].$to, ranges);\n // :: ResolvedPos\n // A resolved position pointing _in front of_ the anchor cell (the one\n // that doesn't move when extending the selection).\n this.$anchorCell = $anchorCell;\n // :: ResolvedPos\n // A resolved position pointing in front of the head cell (the one\n // moves when extending the selection).\n this.$headCell = $headCell;\n }\n\n if ( Selection ) CellSelection.__proto__ = Selection;\n CellSelection.prototype = Object.create( Selection && Selection.prototype );\n CellSelection.prototype.constructor = CellSelection;\n\n CellSelection.prototype.map = function map (doc, mapping) {\n var $anchorCell = doc.resolve(mapping.map(this.$anchorCell.pos));\n var $headCell = doc.resolve(mapping.map(this.$headCell.pos));\n if (pointsAtCell($anchorCell) && pointsAtCell($headCell) && inSameTable($anchorCell, $headCell)) {\n var tableChanged = this.$anchorCell.node(-1) != $anchorCell.node(-1);\n if (tableChanged && this.isRowSelection())\n { return CellSelection.rowSelection($anchorCell, $headCell) }\n else if (tableChanged && this.isColSelection())\n { return CellSelection.colSelection($anchorCell, $headCell) }\n else\n { return new CellSelection($anchorCell, $headCell) }\n }\n return TextSelection.between($anchorCell, $headCell)\n };\n\n // :: () → Slice\n // Returns a rectangular slice of table rows containing the selected\n // cells.\n CellSelection.prototype.content = function content () {\n var table = this.$anchorCell.node(-1), map = TableMap.get(table), start = this.$anchorCell.start(-1);\n var rect = map.rectBetween(this.$anchorCell.pos - start, this.$headCell.pos - start);\n var seen = {}, rows = [];\n for (var row = rect.top; row < rect.bottom; row++) {\n var rowContent = [];\n for (var index = row * map.width + rect.left, col = rect.left; col < rect.right; col++, index++) {\n var pos = map.map[index];\n if (!seen[pos]) {\n seen[pos] = true;\n var cellRect = map.findCell(pos), cell = table.nodeAt(pos);\n var extraLeft = rect.left - cellRect.left, extraRight = cellRect.right - rect.right;\n if (extraLeft > 0 || extraRight > 0) {\n var attrs = cell.attrs;\n if (extraLeft > 0) { attrs = removeColSpan(attrs, 0, extraLeft); }\n if (extraRight > 0) { attrs = removeColSpan(attrs, attrs.colspan - extraRight, extraRight); }\n if (cellRect.left < rect.left) { cell = cell.type.createAndFill(attrs); }\n else { cell = cell.type.create(attrs, cell.content); }\n }\n if (cellRect.top < rect.top || cellRect.bottom > rect.bottom) {\n var attrs$1 = setAttr(cell.attrs, \"rowspan\", Math.min(cellRect.bottom, rect.bottom) - Math.max(cellRect.top, rect.top));\n if (cellRect.top < rect.top) { cell = cell.type.createAndFill(attrs$1); }\n else { cell = cell.type.create(attrs$1, cell.content); }\n }\n rowContent.push(cell);\n }\n }\n rows.push(table.child(row).copy(Fragment.from(rowContent)));\n }\n\n var fragment = this.isColSelection() && this.isRowSelection() ? table : rows;\n return new Slice(Fragment.from(fragment), 1, 1)\n };\n\n CellSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replace(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n }\n var sel = Selection.findFrom(tr.doc.resolve(tr.mapping.slice(mapFrom).map(this.to)), -1);\n if (sel) { tr.setSelection(sel); }\n };\n\n CellSelection.prototype.replaceWith = function replaceWith (tr, node) {\n this.replace(tr, new Slice(Fragment.from(node), 0, 0));\n };\n\n CellSelection.prototype.forEachCell = function forEachCell (f) {\n var table = this.$anchorCell.node(-1), map = TableMap.get(table), start = this.$anchorCell.start(-1);\n var cells = map.cellsInRect(map.rectBetween(this.$anchorCell.pos - start, this.$headCell.pos - start));\n for (var i = 0; i < cells.length; i++)\n { f(table.nodeAt(cells[i]), start + cells[i]); }\n };\n\n // :: () → bool\n // True if this selection goes all the way from the top to the\n // bottom of the table.\n CellSelection.prototype.isColSelection = function isColSelection () {\n var anchorTop = this.$anchorCell.index(-1), headTop = this.$headCell.index(-1);\n if (Math.min(anchorTop, headTop) > 0) { return false }\n var anchorBot = anchorTop + this.$anchorCell.nodeAfter.attrs.rowspan,\n headBot = headTop + this.$headCell.nodeAfter.attrs.rowspan;\n return Math.max(anchorBot, headBot) == this.$headCell.node(-1).childCount\n };\n\n // :: (ResolvedPos, ?ResolvedPos) → CellSelection\n // Returns the smallest column selection that covers the given anchor\n // and head cell.\n CellSelection.colSelection = function colSelection ($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var map = TableMap.get($anchorCell.node(-1)), start = $anchorCell.start(-1);\n var anchorRect = map.findCell($anchorCell.pos - start), headRect = map.findCell($headCell.pos - start);\n var doc = $anchorCell.node(0);\n if (anchorRect.top <= headRect.top) {\n if (anchorRect.top > 0)\n { $anchorCell = doc.resolve(start + map.map[anchorRect.left]); }\n if (headRect.bottom < map.height)\n { $headCell = doc.resolve(start + map.map[map.width * (map.height - 1) + headRect.right - 1]); }\n } else {\n if (headRect.top > 0)\n { $headCell = doc.resolve(start + map.map[headRect.left]); }\n if (anchorRect.bottom < map.height)\n { $anchorCell = doc.resolve(start + map.map[map.width * (map.height - 1) + anchorRect.right - 1]); }\n }\n return new CellSelection($anchorCell, $headCell)\n };\n\n // :: () → bool\n // True if this selection goes all the way from the left to the\n // right of the table.\n CellSelection.prototype.isRowSelection = function isRowSelection () {\n var map = TableMap.get(this.$anchorCell.node(-1)), start = this.$anchorCell.start(-1);\n var anchorLeft = map.colCount(this.$anchorCell.pos - start),\n headLeft = map.colCount(this.$headCell.pos - start);\n if (Math.min(anchorLeft, headLeft) > 0) { return false }\n var anchorRight = anchorLeft + this.$anchorCell.nodeAfter.attrs.colspan,\n headRight = headLeft + this.$headCell.nodeAfter.attrs.colspan;\n return Math.max(anchorRight, headRight) == map.width\n };\n\n CellSelection.prototype.eq = function eq (other) {\n return other instanceof CellSelection && other.$anchorCell.pos == this.$anchorCell.pos &&\n other.$headCell.pos == this.$headCell.pos\n };\n\n // :: (ResolvedPos, ?ResolvedPos) → CellSelection\n // Returns the smallest row selection that covers the given anchor\n // and head cell.\n CellSelection.rowSelection = function rowSelection ($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var map = TableMap.get($anchorCell.node(-1)), start = $anchorCell.start(-1);\n var anchorRect = map.findCell($anchorCell.pos - start), headRect = map.findCell($headCell.pos - start);\n var doc = $anchorCell.node(0);\n if (anchorRect.left <= headRect.left) {\n if (anchorRect.left > 0)\n { $anchorCell = doc.resolve(start + map.map[anchorRect.top * map.width]); }\n if (headRect.right < map.width)\n { $headCell = doc.resolve(start + map.map[map.width * (headRect.top + 1) - 1]); }\n } else {\n if (headRect.left > 0)\n { $headCell = doc.resolve(start + map.map[headRect.top * map.width]); }\n if (anchorRect.right < map.width)\n { $anchorCell = doc.resolve(start + map.map[map.width * (anchorRect.top + 1) - 1]); }\n }\n return new CellSelection($anchorCell, $headCell)\n };\n\n CellSelection.prototype.toJSON = function toJSON () {\n return {type: \"cell\", anchor: this.$anchorCell.pos, head: this.$headCell.pos}\n };\n\n CellSelection.fromJSON = function fromJSON (doc, json) {\n return new CellSelection(doc.resolve(json.anchor), doc.resolve(json.head))\n };\n\n // :: (Node, number, ?number) → CellSelection\n CellSelection.create = function create (doc, anchorCell, headCell) {\n if ( headCell === void 0 ) headCell = anchorCell;\n\n return new CellSelection(doc.resolve(anchorCell), doc.resolve(headCell))\n };\n\n CellSelection.prototype.getBookmark = function getBookmark () { return new CellBookmark(this.$anchorCell.pos, this.$headCell.pos) };\n\n return CellSelection;\n}(Selection));\n\nCellSelection.prototype.visible = false;\n\nSelection.jsonID(\"cell\", CellSelection);\n\nvar CellBookmark = function CellBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\nCellBookmark.prototype.map = function map (mapping) {\n return new CellBookmark(mapping.map(this.anchor), mapping.map(this.head))\n};\nCellBookmark.prototype.resolve = function resolve (doc) {\n var $anchorCell = doc.resolve(this.anchor), $headCell = doc.resolve(this.head);\n if ($anchorCell.parent.type.spec.tableRole == \"row\" &&\n $headCell.parent.type.spec.tableRole == \"row\" &&\n $anchorCell.index() < $anchorCell.parent.childCount &&\n $headCell.index() < $headCell.parent.childCount &&\n inSameTable($anchorCell, $headCell))\n { return new CellSelection($anchorCell, $headCell) }\n else\n { return Selection.near($headCell, 1) }\n};\n\nfunction drawCellSelection(state) {\n if (!(state.selection instanceof CellSelection)) { return null }\n var cells = [];\n state.selection.forEachCell(function (node, pos) {\n cells.push(Decoration.node(pos, pos + node.nodeSize, {class: \"selectedCell\"}));\n });\n return DecorationSet.create(state.doc, cells)\n}\n\nfunction isCellBoundarySelection(ref) {\n var $from = ref.$from;\n var $to = ref.$to;\n\n if ($from.pos == $to.pos || $from.pos < $from.pos - 6) { return false } // Cheap elimination\n var afterFrom = $from.pos, beforeTo = $to.pos, depth = $from.depth;\n for (; depth >= 0; depth--, afterFrom++)\n { if ($from.after(depth + 1) < $from.end(depth)) { break } }\n for (var d = $to.depth; d >= 0; d--, beforeTo--)\n { if ($to.before(d + 1) > $to.start(d)) { break } }\n return afterFrom == beforeTo && /row|table/.test($from.node(depth).type.spec.tableRole)\n}\n\nfunction isTextSelectionAcrossCells(ref) {\n var $from = ref.$from;\n var $to = ref.$to;\n\n var fromCellBoundaryNode;\n var toCellBoundaryNode;\n\n for (var i = $from.depth; i > 0; i--) {\n var node = $from.node(i);\n if (node.type.spec.tableRole === 'cell' || node.type.spec.tableRole === 'header_cell') {\n fromCellBoundaryNode = node;\n break;\n }\n }\n\n for (var i$1 = $to.depth; i$1 > 0; i$1--) {\n var node$1 = $to.node(i$1);\n if (node$1.type.spec.tableRole === 'cell' || node$1.type.spec.tableRole === 'header_cell') {\n toCellBoundaryNode = node$1;\n break;\n }\n }\n\n return fromCellBoundaryNode !== toCellBoundaryNode && $to.parentOffset === 0\n}\n\nfunction normalizeSelection(state, tr, allowTableNodeSelection) {\n var sel = (tr || state).selection, doc = (tr || state).doc, normalize, role;\n if (sel instanceof NodeSelection && (role = sel.node.type.spec.tableRole)) {\n if (role == \"cell\" || role == \"header_cell\") {\n normalize = CellSelection.create(doc, sel.from);\n } else if (role == \"row\") {\n var $cell = doc.resolve(sel.from + 1);\n normalize = CellSelection.rowSelection($cell, $cell);\n } else if (!allowTableNodeSelection) {\n var map = TableMap.get(sel.node), start = sel.from + 1;\n var lastCell = start + map.map[map.width * map.height - 1];\n normalize = CellSelection.create(doc, start + 1, lastCell);\n }\n } else if (sel instanceof TextSelection && isCellBoundarySelection(sel)) {\n normalize = TextSelection.create(doc, sel.from);\n } else if (sel instanceof TextSelection && isTextSelectionAcrossCells(sel)) {\n normalize = TextSelection.create(doc, sel.$from.start(), sel.$from.end());\n }\n if (normalize)\n { (tr || (tr = state.tr)).setSelection(normalize); }\n return tr\n}\n\n// Utilities used for copy/paste handling.\n\n// Utilities to help with copying and pasting table cells\n\n// : (Slice) → ?{width: number, height: number, rows: [Fragment]}\n// Get a rectangular area of cells from a slice, or null if the outer\n// nodes of the slice aren't table cells or rows.\nfunction pastedCells(slice) {\n if (!slice.size) { return null }\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.firstChild.type.spec.tableRole == \"table\")) {\n openStart--;\n openEnd--;\n content = content.firstChild.content;\n }\n var first = content.firstChild, role = first.type.spec.tableRole;\n var schema = first.type.schema, rows = [];\n if (role == \"row\") {\n for (var i = 0; i < content.childCount; i++) {\n var cells = content.child(i).content;\n var left = i ? 0 : Math.max(0, openStart - 1);\n var right = i < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);\n if (left || right) { cells = fitSlice(tableNodeTypes(schema).row, new Slice(cells, left, right)).content; }\n rows.push(cells);\n }\n } else if (role == \"cell\" || role == \"header_cell\") {\n rows.push(openStart || openEnd ? fitSlice(tableNodeTypes(schema).row, new Slice(content, openStart, openEnd)).content : content);\n } else {\n return null\n }\n return ensureRectangular(schema, rows)\n}\n\n// : (Schema, [Fragment]) → {width: number, height: number, rows: [Fragment]}\n// Compute the width and height of a set of cells, and make sure each\n// row has the same number of cells.\nfunction ensureRectangular(schema, rows) {\n var widths = [];\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n for (var j = row.childCount - 1; j >= 0; j--) {\n var ref = row.child(j).attrs;\n var rowspan = ref.rowspan;\n var colspan = ref.colspan;\n for (var r = i; r < i + rowspan; r++)\n { widths[r] = (widths[r] || 0) + colspan; }\n }\n }\n var width = 0;\n for (var r$1 = 0; r$1 < widths.length; r$1++) { width = Math.max(width, widths[r$1]); }\n for (var r$2 = 0; r$2 < widths.length; r$2++) {\n if (r$2 >= rows.length) { rows.push(Fragment.empty); }\n if (widths[r$2] < width) {\n var empty = tableNodeTypes(schema).cell.createAndFill(), cells = [];\n for (var i$1 = widths[r$2]; i$1 < width; i$1++) { cells.push(empty); }\n rows[r$2] = rows[r$2].append(Fragment.from(cells));\n }\n }\n return {height: rows.length, width: width, rows: rows}\n}\n\nfunction fitSlice(nodeType, slice) {\n var node = nodeType.createAndFill();\n var tr = new Transform(node).replace(0, node.content.size, slice);\n return tr.doc\n}\n\n// : ({width: number, height: number, rows: [Fragment]}, number, number) → {width: number, height: number, rows: [Fragment]}\n// Clip or extend (repeat) the given set of cells to cover the given\n// width and height. Will clip rowspan/colspan cells at the edges when\n// they stick out.\nfunction clipCells(ref, newWidth, newHeight) {\n var width = ref.width;\n var height = ref.height;\n var rows = ref.rows;\n\n if (width != newWidth) {\n var added = [], newRows = [];\n for (var row = 0; row < rows.length; row++) {\n var frag = rows[row], cells = [];\n for (var col = added[row] || 0, i = 0; col < newWidth; i++) {\n var cell = frag.child(i % frag.childCount);\n if (col + cell.attrs.colspan > newWidth)\n { cell = cell.type.create(removeColSpan(cell.attrs, cell.attrs.colspan, col + cell.attrs.colspan - newWidth), cell.content); }\n cells.push(cell);\n col += cell.attrs.colspan;\n for (var j = 1; j < cell.attrs.rowspan; j++)\n { added[row + j] = (added[row + j] || 0) + cell.attrs.colspan; }\n }\n newRows.push(Fragment.from(cells));\n }\n rows = newRows;\n width = newWidth;\n }\n\n if (height != newHeight) {\n var newRows$1 = [];\n for (var row$1 = 0, i$1 = 0; row$1 < newHeight; row$1++, i$1++) {\n var cells$1 = [], source = rows[i$1 % height];\n for (var j$1 = 0; j$1 < source.childCount; j$1++) {\n var cell$1 = source.child(j$1);\n if (row$1 + cell$1.attrs.rowspan > newHeight)\n { cell$1 = cell$1.type.create(setAttr(cell$1.attrs, \"rowspan\", Math.max(1, newHeight - cell$1.attrs.rowspan)), cell$1.content); }\n cells$1.push(cell$1);\n }\n newRows$1.push(Fragment.from(cells$1));\n }\n rows = newRows$1;\n height = newHeight;\n }\n\n return {width: width, height: height, rows: rows}\n}\n\n// Make sure a table has at least the given width and height. Return\n// true if something was changed.\nfunction growTable(tr, map, table, start, width, height, mapFrom) {\n var schema = tr.doc.type.schema, types = tableNodeTypes(schema), empty, emptyHead;\n if (width > map.width) {\n for (var row = 0, rowEnd = 0; row < map.height; row++) {\n var rowNode = table.child(row);\n rowEnd += rowNode.nodeSize;\n var cells = [], add = (void 0);\n if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)\n { add = empty || (empty = types.cell.createAndFill()); }\n else\n { add = emptyHead || (emptyHead = types.header_cell.createAndFill()); }\n for (var i = map.width; i < width; i++) { cells.push(add); }\n tr.insert(tr.mapping.slice(mapFrom).map(rowEnd - 1 + start), cells);\n }\n }\n if (height > map.height) {\n var cells$1 = [];\n for (var i$1 = 0, start$1 = (map.height - 1) * map.width; i$1 < Math.max(map.width, width); i$1++) {\n var header = i$1 >= map.width ? false :\n table.nodeAt(map.map[start$1 + i$1]).type == types.header_cell;\n cells$1.push(header\n ? (emptyHead || (emptyHead = types.header_cell.createAndFill()))\n : (empty || (empty = types.cell.createAndFill())));\n }\n\n var emptyRow = types.row.create(null, Fragment.from(cells$1)), rows = [];\n for (var i$2 = map.height; i$2 < height; i$2++) { rows.push(emptyRow); }\n tr.insert(tr.mapping.slice(mapFrom).map(start + table.nodeSize - 2), rows);\n }\n return !!(empty || emptyHead)\n}\n\n// Make sure the given line (left, top) to (right, top) doesn't cross\n// any rowspan cells by splitting cells that cross it. Return true if\n// something changed.\nfunction isolateHorizontal(tr, map, table, start, left, right, top, mapFrom) {\n if (top == 0 || top == map.height) { return false }\n var found = false;\n for (var col = left; col < right; col++) {\n var index = top * map.width + col, pos = map.map[index];\n if (map.map[index - map.width] == pos) {\n found = true;\n var cell = table.nodeAt(pos);\n var ref = map.findCell(pos);\n var cellTop = ref.top;\n var cellLeft = ref.left;\n tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + start), null, setAttr(cell.attrs, \"rowspan\", top - cellTop));\n tr.insert(tr.mapping.slice(mapFrom).map(map.positionAt(top, cellLeft, table)),\n cell.type.createAndFill(setAttr(cell.attrs, \"rowspan\", (cellTop + cell.attrs.rowspan) - top)));\n col += cell.attrs.colspan - 1;\n }\n }\n return found\n}\n\n// Make sure the given line (left, top) to (left, bottom) doesn't\n// cross any colspan cells by splitting cells that cross it. Return\n// true if something changed.\nfunction isolateVertical(tr, map, table, start, top, bottom, left, mapFrom) {\n if (left == 0 || left == map.width) { return false }\n var found = false;\n for (var row = top; row < bottom; row++) {\n var index = row * map.width + left, pos = map.map[index];\n if (map.map[index - 1] == pos) {\n found = true;\n var cell = table.nodeAt(pos), cellLeft = map.colCount(pos);\n var updatePos = tr.mapping.slice(mapFrom).map(pos + start);\n tr.setNodeMarkup(updatePos, null, removeColSpan(cell.attrs, left - cellLeft, cell.attrs.colspan - (left - cellLeft)));\n tr.insert(updatePos + cell.nodeSize, cell.type.createAndFill(removeColSpan(cell.attrs, 0, left - cellLeft)));\n row += cell.attrs.rowspan - 1;\n }\n }\n return found\n}\n\n// Insert the given set of cells (as returned by `pastedCells`) into a\n// table, at the position pointed at by rect.\nfunction insertCells(state, dispatch, tableStart, rect, cells) {\n var table = tableStart ? state.doc.nodeAt(tableStart - 1) : state.doc, map = TableMap.get(table);\n var top = rect.top;\n var left = rect.left;\n var right = left + cells.width, bottom = top + cells.height;\n var tr = state.tr, mapFrom = 0;\n function recomp() {\n table = tableStart ? tr.doc.nodeAt(tableStart - 1) : tr.doc;\n map = TableMap.get(table);\n mapFrom = tr.mapping.maps.length;\n }\n // Prepare the table to be large enough and not have any cells\n // crossing the boundaries of the rectangle that we want to\n // insert into. If anything about it changes, recompute the table\n // map so that subsequent operations can see the current shape.\n if (growTable(tr, map, table, tableStart, right, bottom, mapFrom)) { recomp(); }\n if (isolateHorizontal(tr, map, table, tableStart, left, right, top, mapFrom)) { recomp(); }\n if (isolateHorizontal(tr, map, table, tableStart, left, right, bottom, mapFrom)) { recomp(); }\n if (isolateVertical(tr, map, table, tableStart, top, bottom, left, mapFrom)) { recomp(); }\n if (isolateVertical(tr, map, table, tableStart, top, bottom, right, mapFrom)) { recomp(); }\n\n for (var row = top; row < bottom; row++) {\n var from = map.positionAt(row, left, table), to = map.positionAt(row, right, table);\n tr.replace(tr.mapping.slice(mapFrom).map(from + tableStart), tr.mapping.slice(mapFrom).map(to + tableStart),\n new Slice(cells.rows[row - top], 0, 0));\n }\n recomp();\n tr.setSelection(new CellSelection(tr.doc.resolve(tableStart + map.positionAt(top, left, table)),\n tr.doc.resolve(tableStart + map.positionAt(bottom - 1, right - 1, table))));\n dispatch(tr);\n}\n\n// This file defines a number of helpers for wiring up user input to\n\nvar handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1),\n\n \"Shift-ArrowLeft\": shiftArrow(\"horiz\", -1),\n \"Shift-ArrowRight\": shiftArrow(\"horiz\", 1),\n \"Shift-ArrowUp\": shiftArrow(\"vert\", -1),\n \"Shift-ArrowDown\": shiftArrow(\"vert\", 1),\n\n \"Backspace\": deleteCellSelection,\n \"Mod-Backspace\": deleteCellSelection,\n \"Delete\": deleteCellSelection,\n \"Mod-Delete\": deleteCellSelection\n});\n\nfunction maybeSetSelection(state, dispatch, selection) {\n if (selection.eq(state.selection)) { return false }\n if (dispatch) { dispatch(state.tr.setSelection(selection).scrollIntoView()); }\n return true\n}\n\nfunction arrow(axis, dir) {\n return function (state, dispatch, view) {\n var sel = state.selection;\n if (sel instanceof CellSelection) {\n return maybeSetSelection(state, dispatch, Selection.near(sel.$headCell, dir))\n }\n if (axis != \"horiz\" && !sel.empty) { return false }\n var end = atEndOfCell(view, axis, dir);\n if (end == null) { return false }\n if (axis == \"horiz\") {\n return maybeSetSelection(state, dispatch, Selection.near(state.doc.resolve(sel.head + dir), dir))\n } else {\n var $cell = state.doc.resolve(end), $next = nextCell($cell, axis, dir), newSel;\n if ($next) { newSel = Selection.near($next, 1); }\n else if (dir < 0) { newSel = Selection.near(state.doc.resolve($cell.before(-1)), -1); }\n else { newSel = Selection.near(state.doc.resolve($cell.after(-1)), 1); }\n return maybeSetSelection(state, dispatch, newSel)\n }\n }\n}\n\nfunction shiftArrow(axis, dir) {\n return function (state, dispatch, view) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection)) {\n var end = atEndOfCell(view, axis, dir);\n if (end == null) { return false }\n sel = new CellSelection(state.doc.resolve(end));\n }\n var $head = nextCell(sel.$headCell, axis, dir);\n if (!$head) { return false }\n return maybeSetSelection(state, dispatch, new CellSelection(sel.$anchorCell, $head))\n }\n}\n\nfunction deleteCellSelection(state, dispatch) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection)) { return false }\n if (dispatch) {\n var tr = state.tr, baseContent = tableNodeTypes(state.schema).cell.createAndFill().content;\n sel.forEachCell(function (cell, pos) {\n if (!cell.content.eq(baseContent))\n { tr.replace(tr.mapping.map(pos + 1), tr.mapping.map(pos + cell.nodeSize - 1),\n new Slice(baseContent, 0, 0)); }\n });\n if (tr.docChanged) { dispatch(tr); }\n }\n return true\n}\n\nfunction handleTripleClick(view, pos) {\n var doc = view.state.doc, $cell = cellAround(doc.resolve(pos));\n if (!$cell) { return false }\n view.dispatch(view.state.tr.setSelection(new CellSelection($cell)));\n return true\n}\n\nfunction handlePaste(view, _, slice) {\n if (!isInTable(view.state)) { return false }\n var cells = pastedCells(slice), sel = view.state.selection;\n if (sel instanceof CellSelection) {\n if (!cells) { cells = {width: 1, height: 1, rows: [Fragment.from(fitSlice(tableNodeTypes(view.state.schema).cell, slice))]}; }\n var table = sel.$anchorCell.node(-1), start = sel.$anchorCell.start(-1);\n var rect = TableMap.get(table).rectBetween(sel.$anchorCell.pos - start, sel.$headCell.pos - start);\n cells = clipCells(cells, rect.right - rect.left, rect.bottom - rect.top);\n insertCells(view.state, view.dispatch, start, rect, cells);\n return true\n } else if (cells) {\n var $cell = selectionCell(view.state), start$1 = $cell.start(-1);\n insertCells(view.state, view.dispatch, start$1, TableMap.get($cell.node(-1)).findCell($cell.pos - start$1), cells);\n return true\n } else {\n return false\n }\n}\n\nfunction handleMouseDown(view, startEvent) {\n if (startEvent.ctrlKey || startEvent.metaKey) { return }\n\n var startDOMCell = domInCell(view, startEvent.target), $anchor;\n if (startEvent.shiftKey && (view.state.selection instanceof CellSelection)) {\n // Adding to an existing cell selection\n setCellSelection(view.state.selection.$anchorCell, startEvent);\n startEvent.preventDefault();\n } else if (startEvent.shiftKey && startDOMCell &&\n ($anchor = cellAround(view.state.selection.$anchor)) != null &&\n cellUnderMouse(view, startEvent).pos != $anchor.pos) {\n // Adding to a selection that starts in another cell (causing a\n // cell selection to be created).\n setCellSelection($anchor, startEvent);\n startEvent.preventDefault();\n } else if (!startDOMCell) {\n // Not in a cell, let the default behavior happen.\n return\n }\n\n // Create and dispatch a cell selection between the given anchor and\n // the position under the mouse.\n function setCellSelection($anchor, event) {\n var $head = cellUnderMouse(view, event);\n var starting = key.getState(view.state) == null;\n if (!$head || !inSameTable($anchor, $head)) {\n if (starting) { $head = $anchor; }\n else { return }\n }\n var selection = new CellSelection($anchor, $head);\n if (starting || !view.state.selection.eq(selection)) {\n var tr = view.state.tr.setSelection(selection);\n if (starting) { tr.setMeta(key, $anchor.pos); }\n view.dispatch(tr);\n }\n }\n\n // Stop listening to mouse motion events.\n function stop() {\n view.root.removeEventListener(\"mouseup\", stop);\n view.root.removeEventListener(\"dragstart\", stop);\n view.root.removeEventListener(\"mousemove\", move);\n if (key.getState(view.state) != null) { view.dispatch(view.state.tr.setMeta(key, -1)); }\n }\n\n function move(event) {\n var anchor = key.getState(view.state), $anchor;\n if (anchor != null) {\n // Continuing an existing cross-cell selection\n $anchor = view.state.doc.resolve(anchor);\n } else if (domInCell(view, event.target) != startDOMCell) {\n // Moving out of the initial cell -- start a new cell selection\n $anchor = cellUnderMouse(view, startEvent);\n if (!$anchor) { return stop() }\n }\n if ($anchor) { setCellSelection($anchor, event); }\n }\n view.root.addEventListener(\"mouseup\", stop);\n view.root.addEventListener(\"dragstart\", stop);\n view.root.addEventListener(\"mousemove\", move);\n}\n\n// Check whether the cursor is at the end of a cell (so that further\n// motion would move out of the cell)\nfunction atEndOfCell(view, axis, dir) {\n if (!(view.state.selection instanceof TextSelection)) { return null }\n var ref = view.state.selection;\n var $head = ref.$head;\n for (var d = $head.depth - 1; d >= 0; d--) {\n var parent = $head.node(d), index = dir < 0 ? $head.index(d) : $head.indexAfter(d);\n if (index != (dir < 0 ? 0 : parent.childCount)) { return null }\n if (parent.type.spec.tableRole == \"cell\" || parent.type.spec.tableRole == \"header_cell\") {\n var cellPos = $head.before(d);\n var dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return view.endOfTextblock(dirStr) ? cellPos : null\n }\n }\n return null\n}\n\nfunction domInCell(view, dom) {\n for (; dom && dom != view.dom; dom = dom.parentNode)\n { if (dom.nodeName == \"TD\" || dom.nodeName == \"TH\") { return dom } }\n}\n\nfunction cellUnderMouse(view, event) {\n var mousePos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (!mousePos) { return null }\n return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null\n}\n\n// This file defines helpers for normalizing tables, making sure no\n\nvar fixTablesKey = new PluginKey(\"fix-tables\");\n\n// Helper for iterating through the nodes in a document that changed\n// compared to the given previous document. Useful for avoiding\n// duplicate work on each transaction.\nfunction changedDescendants(old, cur, offset, f) {\n var oldSize = old.childCount, curSize = cur.childCount;\n outer: for (var i = 0, j = 0; i < curSize; i++) {\n var child = cur.child(i);\n for (var scan = j, e = Math.min(oldSize, i + 3); scan < e; scan++) {\n if (old.child(scan) == child) {\n j = scan + 1;\n offset += child.nodeSize;\n continue outer\n }\n }\n f(child, offset);\n if (j < oldSize && old.child(j).sameMarkup(child))\n { changedDescendants(old.child(j), child, offset + 1, f); }\n else\n { child.nodesBetween(0, child.content.size, f, offset + 1); }\n offset += child.nodeSize;\n }\n}\n\n// :: (EditorState, ?EditorState) → ?Transaction\n// Inspect all tables in the given state's document and return a\n// transaction that fixes them, if necessary. If `oldState` was\n// provided, that is assumed to hold a previous, known-good state,\n// which will be used to avoid re-scanning unchanged parts of the\n// document.\nfunction fixTables(state, oldState) {\n var tr, check = function (node, pos) {\n if (node.type.spec.tableRole == \"table\") { tr = fixTable(state, node, pos, tr); }\n };\n if (!oldState) { state.doc.descendants(check); }\n else if (oldState.doc != state.doc) { changedDescendants(oldState.doc, state.doc, 0, check); }\n return tr\n}\n\n// : (EditorState, Node, number, ?Transaction) → ?Transaction\n// Fix the given table, if necessary. Will append to the transaction\n// it was given, if non-null, or create a new one if necessary.\nfunction fixTable(state, table, tablePos, tr) {\n var map = TableMap.get(table);\n if (!map.problems) { return tr }\n if (!tr) { tr = state.tr; }\n\n // Track which rows we must add cells to, so that we can adjust that\n // when fixing collisions.\n var mustAdd = [];\n for (var i = 0; i < map.height; i++) { mustAdd.push(0); }\n for (var i$1 = 0; i$1 < map.problems.length; i$1++) {\n var prob = map.problems[i$1];\n if (prob.type == \"collision\") {\n var cell = table.nodeAt(prob.pos);\n for (var j = 0; j < cell.attrs.rowspan; j++) { mustAdd[prob.row + j] += prob.n; }\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, removeColSpan(cell.attrs, cell.attrs.colspan - prob.n, prob.n));\n } else if (prob.type == \"missing\") {\n mustAdd[prob.row] += prob.n;\n } else if (prob.type == \"overlong_rowspan\") {\n var cell$1 = table.nodeAt(prob.pos);\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, setAttr(cell$1.attrs, \"rowspan\", cell$1.attrs.rowspan - prob.n));\n } else if (prob.type == \"colwidth mismatch\") {\n var cell$2 = table.nodeAt(prob.pos);\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, setAttr(cell$2.attrs, \"colwidth\", prob.colwidth));\n }\n }\n var first, last;\n for (var i$2 = 0; i$2 < mustAdd.length; i$2++) { if (mustAdd[i$2]) {\n if (first == null) { first = i$2; }\n last = i$2;\n } }\n // Add the necessary cells, using a heuristic for whether to add the\n // cells at the start or end of the rows (if it looks like a 'bite'\n // was taken out of the table, add cells at the start of the row\n // after the bite. Otherwise add them at the end).\n for (var i$3 = 0, pos = tablePos + 1; i$3 < map.height; i$3++) {\n var row = table.child(i$3);\n var end = pos + row.nodeSize;\n var add = mustAdd[i$3];\n if (add > 0) {\n var tableNodeType = 'cell';\n if (row.firstChild) {\n tableNodeType = row.firstChild.type.spec.tableRole;\n }\n var nodes = [];\n for (var j$1 = 0; j$1 < add; j$1++)\n { nodes.push(tableNodeTypes(state.schema)[tableNodeType].createAndFill()); }\n var side = (i$3 == 0 || first == i$3 - 1) && last == i$3 ? pos + 1 : end - 1;\n tr.insert(tr.mapping.map(side), nodes);\n }\n pos = end;\n }\n return tr.setMeta(fixTablesKey, { fixTables: true })\n}\n\n// This file defines a number of table-related commands.\n\n// Helper to get the selected rectangle in a table, if any. Adds table\n// map, table node, and table start offset to the object for\n// convenience.\nfunction selectedRect(state) {\n var sel = state.selection, $pos = selectionCell(state);\n var table = $pos.node(-1), tableStart = $pos.start(-1), map = TableMap.get(table);\n var rect;\n if (sel instanceof CellSelection)\n { rect = map.rectBetween(sel.$anchorCell.pos - tableStart, sel.$headCell.pos - tableStart); }\n else\n { rect = map.findCell($pos.pos - tableStart); }\n rect.tableStart = tableStart;\n rect.map = map;\n rect.table = table;\n return rect\n}\n\n// Add a column at the given position in a table.\nfunction addColumn(tr, ref, col) {\n var map = ref.map;\n var tableStart = ref.tableStart;\n var table = ref.table;\n\n var refColumn = col > 0 ? -1 : 0;\n if (columnIsHeader(map, table, col + refColumn))\n { refColumn = col == 0 || col == map.width ? null : 0; }\n\n for (var row = 0; row < map.height; row++) {\n var index = row * map.width + col;\n // If this position falls inside a col-spanning cell\n if (col > 0 && col < map.width && map.map[index - 1] == map.map[index]) {\n var pos = map.map[index], cell = table.nodeAt(pos);\n tr.setNodeMarkup(tr.mapping.map(tableStart + pos), null,\n addColSpan(cell.attrs, col - map.colCount(pos)));\n // Skip ahead if rowspan > 1\n row += cell.attrs.rowspan - 1;\n } else {\n var type = refColumn == null ? tableNodeTypes(table.type.schema).cell\n : table.nodeAt(map.map[index + refColumn]).type;\n var pos$1 = map.positionAt(row, col, table);\n tr.insert(tr.mapping.map(tableStart + pos$1), type.createAndFill());\n }\n }\n return tr\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command to add a column before the column with the selection.\nfunction addColumnBefore(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addColumn(state.tr, rect, rect.left));\n }\n return true\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command to add a column after the column with the selection.\nfunction addColumnAfter(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addColumn(state.tr, rect, rect.right));\n }\n return true\n}\n\nfunction removeColumn(tr, ref, col) {\n var map = ref.map;\n var table = ref.table;\n var tableStart = ref.tableStart;\n\n var mapStart = tr.mapping.maps.length;\n for (var row = 0; row < map.height;) {\n var index = row * map.width + col, pos = map.map[index], cell = table.nodeAt(pos);\n // If this is part of a col-spanning cell\n if ((col > 0 && map.map[index - 1] == pos) || (col < map.width - 1 && map.map[index + 1] == pos)) {\n tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + pos), null,\n removeColSpan(cell.attrs, col - map.colCount(pos)));\n } else {\n var start = tr.mapping.slice(mapStart).map(tableStart + pos);\n tr.delete(start, start + cell.nodeSize);\n }\n row += cell.attrs.rowspan;\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command function that removes the selected columns from a table.\nfunction deleteColumn(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state), tr = state.tr;\n if (rect.left == 0 && rect.right == rect.map.width) { return false }\n for (var i = rect.right - 1;; i--) {\n removeColumn(tr, rect, i);\n if (i == rect.left) { break }\n rect.table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n rect.map = TableMap.get(rect.table);\n }\n dispatch(tr);\n }\n return true\n}\n\nfunction rowIsHeader(map, table, row) {\n var headerCell = tableNodeTypes(table.type.schema).header_cell;\n for (var col = 0; col < map.width; col++)\n { if (table.nodeAt(map.map[col + row * map.width]).type != headerCell)\n { return false } }\n return true\n}\n\nfunction addRow(tr, ref, row) {\n var map = ref.map;\n var tableStart = ref.tableStart;\n var table = ref.table;\n\n var rowPos = tableStart;\n for (var i = 0; i < row; i++) { rowPos += table.child(i).nodeSize; }\n var cells = [], refRow = row > 0 ? -1 : 0;\n if (rowIsHeader(map, table, row + refRow))\n { refRow = row == 0 || row == map.height ? null : 0; }\n for (var col = 0, index = map.width * row; col < map.width; col++, index++) {\n // Covered by a rowspan cell\n if (row > 0 && row < map.height && map.map[index] == map.map[index - map.width]) {\n var pos = map.map[index], attrs = table.nodeAt(pos).attrs;\n tr.setNodeMarkup(tableStart + pos, null, setAttr(attrs, \"rowspan\", attrs.rowspan + 1));\n col += attrs.colspan - 1;\n } else {\n var type = refRow == null ? tableNodeTypes(table.type.schema).cell\n : table.nodeAt(map.map[index + refRow * map.width]).type;\n cells.push(type.createAndFill());\n }\n }\n tr.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));\n return tr\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Add a table row before the selection.\nfunction addRowBefore(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addRow(state.tr, rect, rect.top));\n }\n return true\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Add a table row after the selection.\nfunction addRowAfter(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addRow(state.tr, rect, rect.bottom));\n }\n return true\n}\n\nfunction removeRow(tr, ref, row) {\n var map = ref.map;\n var table = ref.table;\n var tableStart = ref.tableStart;\n\n var rowPos = 0;\n for (var i = 0; i < row; i++) { rowPos += table.child(i).nodeSize; }\n var nextRow = rowPos + table.child(row).nodeSize;\n\n var mapFrom = tr.mapping.maps.length;\n tr.delete(rowPos + tableStart, nextRow + tableStart);\n\n for (var col = 0, index = row * map.width; col < map.width; col++, index++) {\n var pos = map.map[index];\n if (row > 0 && pos == map.map[index - map.width]) {\n // If this cell starts in the row above, simply reduce its rowspan\n var attrs = table.nodeAt(pos).attrs;\n tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + tableStart), null, setAttr(attrs, \"rowspan\", attrs.rowspan - 1));\n col += attrs.colspan - 1;\n } else if (row < map.width && pos == map.map[index + map.width]) {\n // Else, if it continues in the row below, it has to be moved down\n var cell = table.nodeAt(pos);\n var copy = cell.type.create(setAttr(cell.attrs, \"rowspan\", cell.attrs.rowspan - 1), cell.content);\n var newPos = map.positionAt(row + 1, col, table);\n tr.insert(tr.mapping.slice(mapFrom).map(tableStart + newPos), copy);\n col += cell.attrs.colspan - 1;\n }\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Remove the selected rows from a table.\nfunction deleteRow(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state), tr = state.tr;\n if (rect.top == 0 && rect.bottom == rect.map.height) { return false }\n for (var i = rect.bottom - 1;; i--) {\n removeRow(tr, rect, i);\n if (i == rect.top) { break }\n rect.table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n rect.map = TableMap.get(rect.table);\n }\n dispatch(tr);\n }\n return true\n}\n\nfunction isEmpty(cell) {\n var c = cell.content;\n return c.childCount == 1 && c.firstChild.isTextblock && c.firstChild.childCount == 0\n}\n\nfunction cellsOverlapRectangle(ref, rect) {\n var width = ref.width;\n var height = ref.height;\n var map = ref.map;\n\n var indexTop = rect.top * width + rect.left, indexLeft = indexTop;\n var indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);\n for (var i = rect.top; i < rect.bottom; i++) {\n if (rect.left > 0 && map[indexLeft] == map[indexLeft - 1] ||\n rect.right < width && map[indexRight] == map[indexRight + 1]) { return true }\n indexLeft += width; indexRight += width;\n }\n for (var i$1 = rect.left; i$1 < rect.right; i$1++) {\n if (rect.top > 0 && map[indexTop] == map[indexTop - width] ||\n rect.bottom < height && map[indexBottom] == map[indexBottom + width]) { return true }\n indexTop++; indexBottom++;\n }\n return false\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Merge the selected cells into a single cell. Only available when\n// the selected cells' outline forms a rectangle.\nfunction mergeCells(state, dispatch) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos) { return false }\n var rect = selectedRect(state);\n var map = rect.map;\n if (cellsOverlapRectangle(map, rect)) { return false }\n if (dispatch) {\n var tr = state.tr, seen = {}, content = Fragment.empty, mergedPos, mergedCell;\n for (var row = rect.top; row < rect.bottom; row++) {\n for (var col = rect.left; col < rect.right; col++) {\n var cellPos = map.map[row * map.width + col], cell = rect.table.nodeAt(cellPos);\n if (seen[cellPos]) { continue }\n seen[cellPos] = true;\n if (mergedPos == null) {\n mergedPos = cellPos;\n mergedCell = cell;\n } else {\n if (!isEmpty(cell)) { content = content.append(cell.content); }\n var mapped = tr.mapping.map(cellPos + rect.tableStart);\n tr.delete(mapped, mapped + cell.nodeSize);\n }\n }\n }\n tr.setNodeMarkup(mergedPos + rect.tableStart, null,\n setAttr(addColSpan(mergedCell.attrs, mergedCell.attrs.colspan, (rect.right - rect.left) - mergedCell.attrs.colspan),\n \"rowspan\", rect.bottom - rect.top));\n if (content.size) {\n var end = mergedPos + 1 + mergedCell.content.size;\n var start = isEmpty(mergedCell) ? mergedPos + 1 : end;\n tr.replaceWith(start + rect.tableStart, end + rect.tableStart, content);\n }\n tr.setSelection(new CellSelection(tr.doc.resolve(mergedPos + rect.tableStart)));\n dispatch(tr);\n }\n return true\n}\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Split a selected cell, whose rowpan or colspan is greater than one,\n// into smaller cells. Use the first cell type for the new cells.\nfunction splitCell(state, dispatch) {\n var nodeTypes = tableNodeTypes(state.schema);\n return splitCellWithType(function (ref) {\n var node = ref.node;\n\n return nodeTypes[node.type.spec.tableRole]\n })(state, dispatch)\n}\n\n// :: (getCellType: ({ row: number, col: number, node: Node}) → NodeType) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Split a selected cell, whose rowpan or colspan is greater than one,\n// into smaller cells with the cell type (th, td) returned by getType function.\nfunction splitCellWithType(getCellType) {\n return function (state, dispatch) {\n var sel = state.selection;\n var cellNode, cellPos;\n if (!(sel instanceof CellSelection)) {\n cellNode = cellWrapping(sel.$from);\n if (!cellNode) { return false }\n cellPos = cellAround(sel.$from).pos;\n } else {\n if (sel.$anchorCell.pos != sel.$headCell.pos) { return false }\n cellNode = sel.$anchorCell.nodeAfter;\n cellPos = sel.$anchorCell.pos;\n }\n if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {return false}\n if (dispatch) {\n var baseAttrs = cellNode.attrs, attrs = [], colwidth = baseAttrs.colwidth;\n if (baseAttrs.rowspan > 1) { baseAttrs = setAttr(baseAttrs, \"rowspan\", 1); }\n if (baseAttrs.colspan > 1) { baseAttrs = setAttr(baseAttrs, \"colspan\", 1); }\n var rect = selectedRect(state), tr = state.tr;\n for (var i = 0; i < rect.right - rect.left; i++)\n { attrs.push(colwidth ? setAttr(baseAttrs, \"colwidth\", colwidth && colwidth[i] ? [colwidth[i]] : null) : baseAttrs); }\n var lastCell;\n for (var row = rect.top; row < rect.bottom; row++) {\n var pos = rect.map.positionAt(row, rect.left, rect.table);\n if (row == rect.top) { pos += cellNode.nodeSize; }\n for (var col = rect.left, i$1 = 0; col < rect.right; col++, i$1++) {\n if (col == rect.left && row == rect.top) { continue }\n tr.insert(lastCell = tr.mapping.map(pos + rect.tableStart, 1), getCellType({ node: cellNode, row: row, col: col}).createAndFill(attrs[i$1]));\n }\n }\n tr.setNodeMarkup(cellPos, getCellType({ node: cellNode, row: rect.top, col: rect.left}), attrs[0]);\n if (sel instanceof CellSelection)\n { tr.setSelection(new CellSelection(tr.doc.resolve(sel.$anchorCell.pos),\n lastCell && tr.doc.resolve(lastCell))); }\n dispatch(tr);\n }\n return true\n }\n}\n\n// :: (string, any) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command that sets the given attribute to the given value,\n// and is only available when the currently selected cell doesn't\n// already have that attribute set to that value.\nfunction setCellAttr(name, value) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n var $cell = selectionCell(state);\n if ($cell.nodeAfter.attrs[name] === value) { return false }\n if (dispatch) {\n var tr = state.tr;\n if (state.selection instanceof CellSelection)\n { state.selection.forEachCell(function (node, pos) {\n if (node.attrs[name] !== value)\n { tr.setNodeMarkup(pos, null, setAttr(node.attrs, name, value)); }\n }); }\n else\n { tr.setNodeMarkup($cell.pos, null, setAttr($cell.nodeAfter.attrs, name, value)); }\n dispatch(tr);\n }\n return true\n }\n}\n\nfunction deprecated_toggleHeader(type) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var types = tableNodeTypes(state.schema);\n var rect = selectedRect(state), tr = state.tr;\n var cells = rect.map.cellsInRect(type == \"column\" ? new Rect(rect.left, 0, rect.right, rect.map.height) :\n type == \"row\" ? new Rect(0, rect.top, rect.map.width, rect.bottom) : rect);\n var nodes = cells.map(function (pos) { return rect.table.nodeAt(pos); });\n for (var i = 0; i < cells.length; i++) // Remove headers, if any\n { if (nodes[i].type == types.header_cell)\n { tr.setNodeMarkup(rect.tableStart + cells[i], types.cell, nodes[i].attrs); } }\n if (tr.steps.length == 0) { for (var i$1 = 0; i$1 < cells.length; i$1++) // No headers removed, add instead\n { tr.setNodeMarkup(rect.tableStart + cells[i$1], types.header_cell, nodes[i$1].attrs); } }\n dispatch(tr);\n }\n return true\n }\n}\n\nfunction isHeaderEnabledByType(type, rect, types) {\n // Get cell positions for first row or first column\n var cellPositions = rect.map.cellsInRect({\n left: 0,\n top: 0,\n right: type == \"row\" ? rect.map.width : 1,\n bottom: type == \"column\" ? rect.map.height : 1,\n });\n\n for (var i = 0; i < cellPositions.length; i++) {\n var cell = rect.table.nodeAt(cellPositions[i]);\n if (cell && cell.type !== types.header_cell) {\n return false\n }\n }\n\n return true\n}\n\n// :: (string, ?{ useDeprecatedLogic: bool }) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles between row/column header and normal cells (Only applies to first row/column).\n// For deprecated behavior pass `useDeprecatedLogic` in options with true.\nfunction toggleHeader(type, options) {\n options = options || { useDeprecatedLogic: false };\n\n if (options.useDeprecatedLogic)\n { return deprecated_toggleHeader(type) }\n\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var types = tableNodeTypes(state.schema);\n var rect = selectedRect(state), tr = state.tr;\n\n var isHeaderRowEnabled = isHeaderEnabledByType(\"row\", rect, types);\n var isHeaderColumnEnabled = isHeaderEnabledByType(\"column\", rect, types);\n\n var isHeaderEnabled = type === \"column\" ? isHeaderRowEnabled :\n type === \"row\" ? isHeaderColumnEnabled : false;\n\n var selectionStartsAt = isHeaderEnabled ? 1 : 0;\n\n var cellsRect = type == \"column\" ? new Rect(0, selectionStartsAt, 1, rect.map.height) :\n type == \"row\" ? new Rect(selectionStartsAt, 0, rect.map.width, 1) : rect;\n\n var newType = type == \"column\" ? isHeaderColumnEnabled ? types.cell : types.header_cell :\n type == \"row\" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;\n\n rect.map.cellsInRect(cellsRect).forEach(function (relativeCellPos) {\n var cellPos = relativeCellPos + rect.tableStart;\n var cell = tr.doc.nodeAt(cellPos);\n\n if (cell) {\n tr.setNodeMarkup(cellPos, newType, cell.attrs);\n }\n });\n\n dispatch(tr);\n }\n return true\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected row contains header cells.\nvar toggleHeaderRow = toggleHeader(\"row\", { useDeprecatedLogic: true });\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected column contains header cells.\nvar toggleHeaderColumn = toggleHeader(\"column\", { useDeprecatedLogic: true });\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected cells are header cells.\nvar toggleHeaderCell = toggleHeader(\"cell\", { useDeprecatedLogic: true });\n\nfunction findNextCell($cell, dir) {\n if (dir < 0) {\n var before = $cell.nodeBefore;\n if (before) { return $cell.pos - before.nodeSize }\n for (var row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {\n var rowNode = $cell.node(-1).child(row);\n if (rowNode.childCount) { return rowEnd - 1 - rowNode.lastChild.nodeSize }\n rowEnd -= rowNode.nodeSize;\n }\n } else {\n if ($cell.index() < $cell.parent.childCount - 1) { return $cell.pos + $cell.nodeAfter.nodeSize }\n var table = $cell.node(-1);\n for (var row$1 = $cell.indexAfter(-1), rowStart = $cell.after(); row$1 < table.childCount; row$1++) {\n var rowNode$1 = table.child(row$1);\n if (rowNode$1.childCount) { return rowStart + 1 }\n rowStart += rowNode$1.nodeSize;\n }\n }\n}\n\n// :: (number) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command for selecting the next (direction=1) or previous\n// (direction=-1) cell in a table.\nfunction goToNextCell(direction) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n var cell = findNextCell(selectionCell(state), direction);\n if (cell == null) { return }\n if (dispatch) {\n var $cell = state.doc.resolve(cell);\n dispatch(state.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView());\n }\n return true\n }\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Deletes the table around the selection, if any.\nfunction deleteTable(state, dispatch) {\n var $pos = state.selection.$anchor;\n for (var d = $pos.depth; d > 0; d--) {\n var node = $pos.node(d);\n if (node.type.spec.tableRole == \"table\") {\n if (dispatch) { dispatch(state.tr.delete($pos.before(d), $pos.after(d)).scrollIntoView()); }\n return true\n }\n }\n return false\n}\n\nvar TableView = function TableView(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"tableWrapper\";\n this.table = this.dom.appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n};\n\nTableView.prototype.update = function update (node) {\n if (node.type != this.node.type) { return false }\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n return true\n};\n\nTableView.prototype.ignoreMutation = function ignoreMutation (record) {\n return record.type == \"attributes\" && (record.target == this.table || this.colgroup.contains(record.target))\n};\n\nfunction updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {\n var totalWidth = 0, fixedWidth = true;\n var nextDOM = colgroup.firstChild, row = node.firstChild;\n for (var i = 0, col = 0; i < row.childCount; i++) {\n var ref = row.child(i).attrs;\n var colspan = ref.colspan;\n var colwidth = ref.colwidth;\n for (var j = 0; j < colspan; j++, col++) {\n var hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j];\n var cssWidth = hasWidth ? hasWidth + \"px\" : \"\";\n totalWidth += hasWidth || cellMinWidth;\n if (!hasWidth) { fixedWidth = false; }\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width = cssWidth;\n } else {\n if (nextDOM.style.width != cssWidth) { nextDOM.style.width = cssWidth; }\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n var after = nextDOM.nextSibling;\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n if (fixedWidth) {\n table.style.width = totalWidth + \"px\";\n table.style.minWidth = \"\";\n } else {\n table.style.width = \"\";\n table.style.minWidth = totalWidth + \"px\";\n }\n}\n\nvar key$1 = new PluginKey(\"tableColumnResizing\");\n\nfunction columnResizing(ref) {\n if ( ref === void 0 ) ref = {};\n var handleWidth = ref.handleWidth; if ( handleWidth === void 0 ) handleWidth = 5;\n var cellMinWidth = ref.cellMinWidth; if ( cellMinWidth === void 0 ) cellMinWidth = 25;\n var View = ref.View; if ( View === void 0 ) View = TableView;\n var lastColumnResizable = ref.lastColumnResizable; if ( lastColumnResizable === void 0 ) lastColumnResizable = true;\n\n var plugin = new Plugin({\n key: key$1,\n state: {\n init: function init(_, state) {\n this.spec.props.nodeViews[tableNodeTypes(state.schema).table.name] =\n function (node, view) { return new View(node, cellMinWidth, view); };\n return new ResizeState(-1, false)\n },\n apply: function apply(tr, prev) {\n return prev.apply(tr)\n }\n },\n props: {\n attributes: function attributes(state) {\n var pluginState = key$1.getState(state);\n return pluginState.activeHandle > -1 ? {class: \"resize-cursor\"} : null\n },\n\n handleDOMEvents: {\n mousemove: function mousemove(view, event) { handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable); },\n mouseleave: function mouseleave(view) { handleMouseLeave(view); },\n mousedown: function mousedown(view, event) { handleMouseDown$1(view, event, cellMinWidth); }\n },\n\n decorations: function decorations(state) {\n var pluginState = key$1.getState(state);\n if (pluginState.activeHandle > -1) { return handleDecorations(state, pluginState.activeHandle) }\n },\n\n nodeViews: {}\n }\n });\n return plugin\n}\n\nvar ResizeState = function ResizeState(activeHandle, dragging) {\n this.activeHandle = activeHandle;\n this.dragging = dragging;\n};\n\nResizeState.prototype.apply = function apply (tr) {\n var state = this, action = tr.getMeta(key$1);\n if (action && action.setHandle != null)\n { return new ResizeState(action.setHandle, null) }\n if (action && action.setDragging !== undefined)\n { return new ResizeState(state.activeHandle, action.setDragging) }\n if (state.activeHandle > -1 && tr.docChanged) {\n var handle = tr.mapping.map(state.activeHandle, -1);\n if (!pointsAtCell(tr.doc.resolve(handle))) { handle = null; }\n state = new ResizeState(handle, state.dragging);\n }\n return state\n};\n\nfunction handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {\n var pluginState = key$1.getState(view.state);\n\n if (!pluginState.dragging) {\n var target = domCellAround(event.target), cell = -1;\n if (target) {\n var ref = target.getBoundingClientRect();\n var left = ref.left;\n var right = ref.right;\n if (event.clientX - left <= handleWidth)\n { cell = edgeCell(view, event, \"left\"); }\n else if (right - event.clientX <= handleWidth)\n { cell = edgeCell(view, event, \"right\"); }\n }\n\n if (cell != pluginState.activeHandle) {\n if (!lastColumnResizable && cell !== -1) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n\n if (col == map.width - 1) {\n return\n }\n }\n\n updateHandle(view, cell);\n }\n }\n}\n\nfunction handleMouseLeave(view) {\n var pluginState = key$1.getState(view.state);\n if (pluginState.activeHandle > -1 && !pluginState.dragging) { updateHandle(view, -1); }\n}\n\nfunction handleMouseDown$1(view, event, cellMinWidth) {\n var pluginState = key$1.getState(view.state);\n if (pluginState.activeHandle == -1 || pluginState.dragging) { return false }\n\n var cell = view.state.doc.nodeAt(pluginState.activeHandle);\n var width = currentColWidth(view, pluginState.activeHandle, cell.attrs);\n view.dispatch(view.state.tr.setMeta(key$1, {setDragging: {startX: event.clientX, startWidth: width}}));\n\n function finish(event) {\n window.removeEventListener(\"mouseup\", finish);\n window.removeEventListener(\"mousemove\", move);\n var pluginState = key$1.getState(view.state);\n if (pluginState.dragging) {\n updateColumnWidth(view, pluginState.activeHandle, draggedWidth(pluginState.dragging, event, cellMinWidth));\n view.dispatch(view.state.tr.setMeta(key$1, {setDragging: null}));\n }\n }\n function move(event) {\n if (!event.which) { return finish(event) }\n var pluginState = key$1.getState(view.state);\n var dragged = draggedWidth(pluginState.dragging, event, cellMinWidth);\n displayColumnWidth(view, pluginState.activeHandle, dragged, cellMinWidth);\n }\n\n window.addEventListener(\"mouseup\", finish);\n window.addEventListener(\"mousemove\", move);\n event.preventDefault();\n return true\n}\n\nfunction currentColWidth(view, cellPos, ref) {\n var colspan = ref.colspan;\n var colwidth = ref.colwidth;\n\n var width = colwidth && colwidth[colwidth.length - 1];\n if (width) { return width }\n var dom = view.domAtPos(cellPos);\n var node = dom.node.childNodes[dom.offset];\n var domWidth = node.offsetWidth, parts = colspan;\n if (colwidth) { for (var i = 0; i < colspan; i++) { if (colwidth[i]) {\n domWidth -= colwidth[i];\n parts--;\n } } }\n return domWidth / parts\n}\n\nfunction domCellAround(target) {\n while (target && target.nodeName != \"TD\" && target.nodeName != \"TH\")\n { target = target.classList.contains(\"ProseMirror\") ? null : target.parentNode; }\n return target\n}\n\nfunction edgeCell(view, event, side) {\n var found = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (!found) { return -1 }\n var pos = found.pos;\n var $cell = cellAround(view.state.doc.resolve(pos));\n if (!$cell) { return -1 }\n if (side == \"right\") { return $cell.pos }\n var map = TableMap.get($cell.node(-1)), start = $cell.start(-1);\n var index = map.map.indexOf($cell.pos - start);\n return index % map.width == 0 ? -1 : start + map.map[index - 1]\n}\n\nfunction draggedWidth(dragging, event, cellMinWidth) {\n var offset = event.clientX - dragging.startX;\n return Math.max(cellMinWidth, dragging.startWidth + offset)\n}\n\nfunction updateHandle(view, value) {\n view.dispatch(view.state.tr.setMeta(key$1, {setHandle: value}));\n}\n\nfunction updateColumnWidth(view, cell, width) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n var tr = view.state.tr;\n for (var row = 0; row < map.height; row++) {\n var mapIndex = row * map.width + col;\n // Rowspanning cell that has already been handled\n if (row && map.map[mapIndex] == map.map[mapIndex - map.width]) { continue }\n var pos = map.map[mapIndex];\n var ref = table.nodeAt(pos);\n var attrs = ref.attrs;\n var index = attrs.colspan == 1 ? 0 : col - map.colCount(pos);\n if (attrs.colwidth && attrs.colwidth[index] == width) { continue }\n var colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);\n colwidth[index] = width;\n tr.setNodeMarkup(start + pos, null, setAttr(attrs, \"colwidth\", colwidth));\n }\n if (tr.docChanged) { view.dispatch(tr); }\n}\n\nfunction displayColumnWidth(view, cell, width, cellMinWidth) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), start = $cell.start(-1);\n var col = TableMap.get(table).colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n var dom = view.domAtPos($cell.start(-1)).node;\n while (dom.nodeName != \"TABLE\") { dom = dom.parentNode; }\n updateColumns(table, dom.firstChild, dom, cellMinWidth, col, width);\n}\n\nfunction zeroes(n) {\n var result = [];\n for (var i = 0; i < n; i++) { result.push(0); }\n return result\n}\n\nfunction handleDecorations(state, cell) {\n var decorations = [];\n var $cell = state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan;\n for (var row = 0; row < map.height; row++) {\n var index = col + row * map.width - 1;\n // For positions that are have either a different cell or the end\n // of the table to their right, and either the top of the table or\n // a different cell above them, add a decoration\n if ((col == map.width || map.map[index] != map.map[index + 1]) &&\n (row == 0 || map.map[index - 1] != map.map[index - 1 - map.width])) {\n var cellPos = map.map[index];\n var pos = start + cellPos + table.nodeAt(cellPos).nodeSize - 1;\n var dom = document.createElement(\"div\");\n dom.className = \"column-resize-handle\";\n decorations.push(Decoration.widget(pos, dom));\n }\n }\n return DecorationSet.create(state.doc, decorations)\n}\n\n// This file defines a plugin that handles the drawing of cell\n\n// :: () → Plugin\n//\n// Creates a [plugin](http://prosemirror.net/docs/ref/#state.Plugin)\n// that, when added to an editor, enables cell-selection, handles\n// cell-based copy/paste, and makes sure tables stay well-formed (each\n// row has the same width, and cells don't overlap).\n//\n// You should probably put this plugin near the end of your array of\n// plugins, since it handles mouse and arrow key events in tables\n// rather broadly, and other plugins, like the gap cursor or the\n// column-width dragging plugin, might want to get a turn first to\n// perform more specific behavior.\nfunction tableEditing(ref) {\n if ( ref === void 0 ) ref = {};\n var allowTableNodeSelection = ref.allowTableNodeSelection; if ( allowTableNodeSelection === void 0 ) allowTableNodeSelection = false;\n\n return new Plugin({\n key: key,\n\n // This piece of state is used to remember when a mouse-drag\n // cell-selection is happening, so that it can continue even as\n // transactions (which might move its anchor cell) come in.\n state: {\n init: function init() { return null },\n apply: function apply(tr, cur) {\n var set = tr.getMeta(key);\n if (set != null) { return set == -1 ? null : set }\n if (cur == null || !tr.docChanged) { return cur }\n var ref = tr.mapping.mapResult(cur);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? null : pos\n }\n },\n\n props: {\n decorations: drawCellSelection,\n\n handleDOMEvents: {\n mousedown: handleMouseDown\n },\n\n createSelectionBetween: function createSelectionBetween(view) {\n if (key.getState(view.state) != null) { return view.state.selection }\n },\n\n handleTripleClick: handleTripleClick,\n\n handleKeyDown: handleKeyDown,\n\n handlePaste: handlePaste\n },\n\n appendTransaction: function appendTransaction(_, oldState, state) {\n return normalizeSelection(state, fixTables(state, oldState), allowTableNodeSelection)\n }\n })\n}\n\nexport { CellSelection, TableMap, TableView, clipCells as __clipCells, insertCells as __insertCells, pastedCells as __pastedCells, addColSpan, addColumn, addColumnAfter, addColumnBefore, addRow, addRowAfter, addRowBefore, cellAround, colCount, columnIsHeader, columnResizing, key$1 as columnResizingPluginKey, deleteColumn, deleteRow, deleteTable, findCell, fixTables, fixTablesKey, goToNextCell, handlePaste, inSameTable, isInTable, mergeCells, moveCellForward, nextCell, pointsAtCell, removeColSpan, removeColumn, removeRow, rowIsHeader, selectedRect, selectionCell, setAttr, setCellAttr, splitCell, splitCellWithType, tableEditing, key as tableEditingKey, tableNodeTypes, tableNodes, toggleHeader, toggleHeaderCell, toggleHeaderColumn, toggleHeaderRow, updateColumns as updateColumnsOnResize };\n//# sourceMappingURL=index.es.js.map\n","import { findParentNodeClosestToPos, Node as Node$1, mergeAttributes, callOrReturn, getExtensionField } from '@tiptap/core';\nimport { CellSelection, addColumnBefore, addColumnAfter, deleteColumn, addRowBefore, addRowAfter, deleteRow, deleteTable, mergeCells, splitCell, toggleHeaderColumn, toggleHeaderRow, toggleHeaderCell, setCellAttr, goToNextCell, fixTables, columnResizing, tableEditing } from 'prosemirror-tables';\n\nfunction findDiffStart(a, b, pos) {\n for (var i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n { return a.childCount == b.childCount ? null : pos }\n\n var childA = a.child(i), childB = b.child(i);\n if (childA == childB) { pos += childA.nodeSize; continue }\n\n if (!childA.sameMarkup(childB)) { return pos }\n\n if (childA.isText && childA.text != childB.text) {\n for (var j = 0; childA.text[j] == childB.text[j]; j++)\n { pos++; }\n return pos\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null) { return inner }\n }\n pos += childA.nodeSize;\n }\n}\n\nfunction findDiffEnd(a, b, posA, posB) {\n for (var iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n { return iA == iB ? null : {a: posA, b: posB} }\n\n var childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size; posB -= size;\n continue\n }\n\n if (!childA.sameMarkup(childB)) { return {a: posA, b: posB} }\n\n if (childA.isText && childA.text != childB.text) {\n var same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++; posA--; posB--;\n }\n return {a: posA, b: posB}\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner) { return inner }\n }\n posA -= size; posB -= size;\n }\n}\n\n// ::- A fragment represents a node's collection of child nodes.\n//\n// Like nodes, fragments are persistent data structures, and you\n// should not mutate them or their content. Rather, you create new\n// instances whenever needed. The API tries to make this easy.\nvar Fragment = function Fragment(content, size) {\n this.content = content;\n // :: number\n // The size of the fragment, which is the total of the size of its\n // content nodes.\n this.size = size || 0;\n if (size == null) { for (var i = 0; i < content.length; i++)\n { this.size += content[i].nodeSize; } }\n};\n\nvar prototypeAccessors$3 = { firstChild: { configurable: true },lastChild: { configurable: true },childCount: { configurable: true } };\n\n// :: (number, number, (node: Node, start: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes between the given two\n// positions (relative to start of this fragment). Doesn't descend\n// into a node when the callback returns `false`.\nFragment.prototype.nodesBetween = function nodesBetween (from, to, f, nodeStart, parent) {\n if ( nodeStart === void 0 ) nodeStart = 0;\n\n for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent, i) !== false && child.content.size) {\n var start = pos + 1;\n child.nodesBetween(Math.max(0, from - start),\n Math.min(child.content.size, to - start),\n f, nodeStart + start);\n }\n pos = end;\n }\n};\n\n// :: ((node: Node, pos: number, parent: Node) → ?bool)\n// Call the given callback for every descendant node. The callback\n// may return `false` to prevent traversal of a given node's children.\nFragment.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.size, f);\n};\n\n// :: (number, number, ?string, ?union) → string\n// Extract the text between `from` and `to`. See the same method on\n// [`Node`](#model.Node.textBetween).\nFragment.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n var text = \"\", separated = true;\n this.nodesBetween(from, to, function (node, pos) {\n if (node.isText) {\n text += node.text.slice(Math.max(from, pos) - pos, to - pos);\n separated = !blockSeparator;\n } else if (node.isLeaf && leafText) {\n text += typeof leafText === 'function' ? leafText(node): leafText;\n separated = !blockSeparator;\n } else if (!separated && node.isBlock) {\n text += blockSeparator;\n separated = true;\n }\n }, 0);\n return text\n};\n\n// :: (Fragment) → Fragment\n// Create a new fragment containing the combined content of this\n// fragment and the other.\nFragment.prototype.append = function append (other) {\n if (!other.size) { return this }\n if (!this.size) { return other }\n var last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++) { content.push(other.content[i]); }\n return new Fragment(content, this.size + other.size)\n};\n\n// :: (number, ?number) → Fragment\n// Cut out the sub-fragment between the two given positions.\nFragment.prototype.cut = function cut (from, to) {\n if (to == null) { to = this.size; }\n if (from == 0 && to == this.size) { return this }\n var result = [], size = 0;\n if (to > from) { for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n { child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos)); }\n else\n { child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1)); }\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n } }\n return new Fragment(result, size)\n};\n\nFragment.prototype.cutByIndex = function cutByIndex (from, to) {\n if (from == to) { return Fragment.empty }\n if (from == 0 && to == this.content.length) { return this }\n return new Fragment(this.content.slice(from, to))\n};\n\n// :: (number, Node) → Fragment\n// Create a new fragment in which the node at the given index is\n// replaced by the given node.\nFragment.prototype.replaceChild = function replaceChild (index, node) {\n var current = this.content[index];\n if (current == node) { return this }\n var copy = this.content.slice();\n var size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by prepending the given node to this\n// fragment.\nFragment.prototype.addToStart = function addToStart (node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by appending the given node to this\n// fragment.\nFragment.prototype.addToEnd = function addToEnd (node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize)\n};\n\n// :: (Fragment) → bool\n// Compare this fragment to another one.\nFragment.prototype.eq = function eq (other) {\n if (this.content.length != other.content.length) { return false }\n for (var i = 0; i < this.content.length; i++)\n { if (!this.content[i].eq(other.content[i])) { return false } }\n return true\n};\n\n// :: ?Node\n// The first child of the fragment, or `null` if it is empty.\nprototypeAccessors$3.firstChild.get = function () { return this.content.length ? this.content[0] : null };\n\n// :: ?Node\n// The last child of the fragment, or `null` if it is empty.\nprototypeAccessors$3.lastChild.get = function () { return this.content.length ? this.content[this.content.length - 1] : null };\n\n// :: number\n// The number of child nodes in this fragment.\nprototypeAccessors$3.childCount.get = function () { return this.content.length };\n\n// :: (number) → Node\n// Get the child node at the given index. Raise an error when the\n// index is out of range.\nFragment.prototype.child = function child (index) {\n var found = this.content[index];\n if (!found) { throw new RangeError(\"Index \" + index + \" out of range for \" + this) }\n return found\n};\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nFragment.prototype.maybeChild = function maybeChild (index) {\n return this.content[index]\n};\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nFragment.prototype.forEach = function forEach (f) {\n for (var i = 0, p = 0; i < this.content.length; i++) {\n var child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n};\n\n// :: (Fragment) → ?number\n// Find the first position at which this fragment and another\n// fragment differ, or `null` if they are the same.\nFragment.prototype.findDiffStart = function findDiffStart$1 (other, pos) {\n if ( pos === void 0 ) pos = 0;\n\n return findDiffStart(this, other, pos)\n};\n\n// :: (Fragment) → ?{a: number, b: number}\n// Find the first position, searching from the end, at which this\n// fragment and the given fragment differ, or `null` if they are the\n// same. Since this position will not be the same in both nodes, an\n// object with two separate positions is returned.\nFragment.prototype.findDiffEnd = function findDiffEnd$1 (other, pos, otherPos) {\n if ( pos === void 0 ) pos = this.size;\n if ( otherPos === void 0 ) otherPos = other.size;\n\n return findDiffEnd(this, other, pos, otherPos)\n};\n\n// : (number, ?number) → {index: number, offset: number}\n// Find the index and inner offset corresponding to a given relative\n// position in this fragment. The result object will be reused\n// (overwritten) the next time the function is called. (Not public.)\nFragment.prototype.findIndex = function findIndex (pos, round) {\n if ( round === void 0 ) round = -1;\n\n if (pos == 0) { return retIndex(0, pos) }\n if (pos == this.size) { return retIndex(this.content.length, pos) }\n if (pos > this.size || pos < 0) { throw new RangeError((\"Position \" + pos + \" outside of fragment (\" + (this) + \")\")) }\n for (var i = 0, curPos = 0;; i++) {\n var cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0) { return retIndex(i + 1, end) }\n return retIndex(i, curPos)\n }\n curPos = end;\n }\n};\n\n// :: () → string\n// Return a debugging string that describes this fragment.\nFragment.prototype.toString = function toString () { return \"<\" + this.toStringInner() + \">\" };\n\nFragment.prototype.toStringInner = function toStringInner () { return this.content.join(\", \") };\n\n// :: () → ?Object\n// Create a JSON-serializeable representation of this fragment.\nFragment.prototype.toJSON = function toJSON () {\n return this.content.length ? this.content.map(function (n) { return n.toJSON(); }) : null\n};\n\n// :: (Schema, ?Object) → Fragment\n// Deserialize a fragment from its JSON representation.\nFragment.fromJSON = function fromJSON (schema, value) {\n if (!value) { return Fragment.empty }\n if (!Array.isArray(value)) { throw new RangeError(\"Invalid input for Fragment.fromJSON\") }\n return new Fragment(value.map(schema.nodeFromJSON))\n};\n\n// :: ([Node]) → Fragment\n// Build a fragment from an array of nodes. Ensures that adjacent\n// text nodes with the same marks are joined together.\nFragment.fromArray = function fromArray (array) {\n if (!array.length) { return Fragment.empty }\n var joined, size = 0;\n for (var i = 0; i < array.length; i++) {\n var node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined) { joined = array.slice(0, i); }\n joined[joined.length - 1] = node.withText(joined[joined.length - 1].text + node.text);\n } else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size)\n};\n\n// :: (?union) → Fragment\n// Create a fragment from something that can be interpreted as a set\n// of nodes. For `null`, it returns the empty fragment. For a\n// fragment, the fragment itself. For a node or array of nodes, a\n// fragment containing those nodes.\nFragment.from = function from (nodes) {\n if (!nodes) { return Fragment.empty }\n if (nodes instanceof Fragment) { return nodes }\n if (Array.isArray(nodes)) { return this.fromArray(nodes) }\n if (nodes.attrs) { return new Fragment([nodes], nodes.nodeSize) }\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"))\n};\n\nObject.defineProperties( Fragment.prototype, prototypeAccessors$3 );\n\nvar found = {index: 0, offset: 0};\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found\n}\n\n// :: Fragment\n// An empty fragment. Intended to be reused whenever a node doesn't\n// contain anything (rather than allocating a new empty fragment for\n// each leaf node).\nFragment.empty = new Fragment([], 0);\n\nfunction compareDeep(a, b) {\n if (a === b) { return true }\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\")) { return false }\n var array = Array.isArray(a);\n if (Array.isArray(b) != array) { return false }\n if (array) {\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++) { if (!compareDeep(a[i], b[i])) { return false } }\n } else {\n for (var p in a) { if (!(p in b) || !compareDeep(a[p], b[p])) { return false } }\n for (var p$1 in b) { if (!(p$1 in a)) { return false } }\n }\n return true\n}\n\n// ::- A mark is a piece of information that can be attached to a node,\n// such as it being emphasized, in code font, or a link. It has a type\n// and optionally a set of attributes that provide further information\n// (such as the target of the link). Marks are created through a\n// `Schema`, which controls which types exist and which\n// attributes they have.\nvar Mark = function Mark(type, attrs) {\n // :: MarkType\n // The type of this mark.\n this.type = type;\n // :: Object\n // The attributes associated with this mark.\n this.attrs = attrs;\n};\n\n// :: ([Mark]) → [Mark]\n// Given a set of marks, create a new set which contains this one as\n// well, in the right position. If this mark is already in the set,\n// the set itself is returned. If any marks that are set to be\n// [exclusive](#model.MarkSpec.excludes) with this mark are present,\n// those are replaced by this one.\nMark.prototype.addToSet = function addToSet (set) {\n var copy, placed = false;\n for (var i = 0; i < set.length; i++) {\n var other = set[i];\n if (this.eq(other)) { return set }\n if (this.type.excludes(other.type)) {\n if (!copy) { copy = set.slice(0, i); }\n } else if (other.type.excludes(this.type)) {\n return set\n } else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy) { copy = set.slice(0, i); }\n copy.push(this);\n placed = true;\n }\n if (copy) { copy.push(other); }\n }\n }\n if (!copy) { copy = set.slice(); }\n if (!placed) { copy.push(this); }\n return copy\n};\n\n// :: ([Mark]) → [Mark]\n// Remove this mark from the given set, returning a new set. If this\n// mark is not in the set, the set itself is returned.\nMark.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i]))\n { return set.slice(0, i).concat(set.slice(i + 1)) } }\n return set\n};\n\n// :: ([Mark]) → bool\n// Test whether this mark is in the given set of marks.\nMark.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i])) { return true } }\n return false\n};\n\n// :: (Mark) → bool\n// Test whether this mark has the same type and attributes as\n// another mark.\nMark.prototype.eq = function eq (other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs))\n};\n\n// :: () → Object\n// Convert this mark to a JSON-serializeable representation.\nMark.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n return obj\n};\n\n// :: (Schema, Object) → Mark\nMark.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Mark.fromJSON\") }\n var type = schema.marks[json.type];\n if (!type) { throw new RangeError((\"There is no mark type \" + (json.type) + \" in this schema\")) }\n return type.create(json.attrs)\n};\n\n// :: ([Mark], [Mark]) → bool\n// Test whether two sets of marks are identical.\nMark.sameSet = function sameSet (a, b) {\n if (a == b) { return true }\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++)\n { if (!a[i].eq(b[i])) { return false } }\n return true\n};\n\n// :: (?union) → [Mark]\n// Create a properly sorted mark set from null, a single mark, or an\n// unsorted array of marks.\nMark.setFrom = function setFrom (marks) {\n if (!marks || marks.length == 0) { return Mark.none }\n if (marks instanceof Mark) { return [marks] }\n var copy = marks.slice();\n copy.sort(function (a, b) { return a.type.rank - b.type.rank; });\n return copy\n};\n\n// :: [Mark] The empty set of marks.\nMark.none = [];\n\n// ReplaceError:: class extends Error\n// Error type raised by [`Node.replace`](#model.Node.replace) when\n// given an invalid replacement.\n\nfunction ReplaceError(message) {\n var err = Error.call(this, message);\n err.__proto__ = ReplaceError.prototype;\n return err\n}\n\nReplaceError.prototype = Object.create(Error.prototype);\nReplaceError.prototype.constructor = ReplaceError;\nReplaceError.prototype.name = \"ReplaceError\";\n\n// ::- A slice represents a piece cut out of a larger document. It\n// stores not only a fragment, but also the depth up to which nodes on\n// both side are ‘open’ (cut through).\nvar Slice = function Slice(content, openStart, openEnd) {\n // :: Fragment The slice's content.\n this.content = content;\n // :: number The open depth at the start.\n this.openStart = openStart;\n // :: number The open depth at the end.\n this.openEnd = openEnd;\n};\n\nvar prototypeAccessors$1$2 = { size: { configurable: true } };\n\n// :: number\n// The size this slice would add when inserted into a document.\nprototypeAccessors$1$2.size.get = function () {\n return this.content.size - this.openStart - this.openEnd\n};\n\nSlice.prototype.insertAt = function insertAt (pos, fragment) {\n var content = insertInto(this.content, pos + this.openStart, fragment, null);\n return content && new Slice(content, this.openStart, this.openEnd)\n};\n\nSlice.prototype.removeBetween = function removeBetween (from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd)\n};\n\n// :: (Slice) → bool\n// Tests whether this slice is equal to another slice.\nSlice.prototype.eq = function eq (other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd\n};\n\nSlice.prototype.toString = function toString () {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\"\n};\n\n// :: () → ?Object\n// Convert a slice to a JSON-serializable representation.\nSlice.prototype.toJSON = function toJSON () {\n if (!this.content.size) { return null }\n var json = {content: this.content.toJSON()};\n if (this.openStart > 0) { json.openStart = this.openStart; }\n if (this.openEnd > 0) { json.openEnd = this.openEnd; }\n return json\n};\n\n// :: (Schema, ?Object) → Slice\n// Deserialize a slice from its JSON representation.\nSlice.fromJSON = function fromJSON (schema, json) {\n if (!json) { return Slice.empty }\n var openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n { throw new RangeError(\"Invalid input for Slice.fromJSON\") }\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd)\n};\n\n// :: (Fragment, ?bool) → Slice\n// Create a slice from a fragment by taking the maximum possible\n// open value on both side of the fragment.\nSlice.maxOpen = function maxOpen (fragment, openIsolating) {\n if ( openIsolating === void 0 ) openIsolating=true;\n\n var openStart = 0, openEnd = 0;\n for (var n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild) { openStart++; }\n for (var n$1 = fragment.lastChild; n$1 && !n$1.isLeaf && (openIsolating || !n$1.type.spec.isolating); n$1 = n$1.lastChild) { openEnd++; }\n return new Slice(fragment, openStart, openEnd)\n};\n\nObject.defineProperties( Slice.prototype, prototypeAccessors$1$2 );\n\nfunction removeRange(content, from, to) {\n var ref = content.findIndex(from);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n var ref$1 = content.findIndex(to);\n var indexTo = ref$1.index;\n var offsetTo = ref$1.offset;\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText) { throw new RangeError(\"Removing non-flat range\") }\n return content.cut(0, from).append(content.cut(to))\n }\n if (index != indexTo) { throw new RangeError(\"Removing non-flat range\") }\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)))\n}\n\nfunction insertInto(content, dist, insert, parent) {\n var ref = content.findIndex(dist);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert)) { return null }\n return content.cut(0, dist).append(insert).append(content.cut(dist))\n }\n var inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner))\n}\n\n// :: Slice\n// The empty slice.\nSlice.empty = new Slice(Fragment.empty, 0, 0);\n\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n { throw new ReplaceError(\"Inserted content deeper than insertion position\") }\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n { throw new ReplaceError(\"Inconsistent open depths\") }\n return replaceOuter($from, $to, slice, 0)\n}\n\nfunction replaceOuter($from, $to, slice, depth) {\n var index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n var inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner))\n } else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth))\n } else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n var parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)))\n } else {\n var ref = prepareSliceForReplace(slice, $from);\n var start = ref.start;\n var end = ref.end;\n return close(node, replaceThreeWay($from, start, end, $to, depth))\n }\n}\n\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n { throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name) }\n}\n\nfunction joinable($before, $after, depth) {\n var node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node\n}\n\nfunction addNode(child, target) {\n var last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n { target[last] = child.withText(target[last].text + child.text); }\n else\n { target.push(child); }\n}\n\nfunction addRange($start, $end, depth, target) {\n var node = ($end || $start).node(depth);\n var startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n } else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (var i = startIndex; i < endIndex; i++) { addNode(node.child(i), target); }\n if ($end && $end.depth == depth && $end.textOffset)\n { addNode($end.nodeBefore, target); }\n}\n\nfunction close(node, content) {\n if (!node.type.validContent(content))\n { throw new ReplaceError(\"Invalid content for node \" + node.type.name) }\n return node.copy(content)\n}\n\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n var openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n var openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n\n var content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n } else {\n if (openStart)\n { addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content); }\n addRange($start, $end, depth, content);\n if (openEnd)\n { addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content); }\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction replaceTwoWay($from, $to, depth) {\n var content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n var type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction prepareSliceForReplace(slice, $along) {\n var extra = $along.depth - slice.openStart, parent = $along.node(extra);\n var node = parent.copy(slice.content);\n for (var i = extra - 1; i >= 0; i--)\n { node = $along.node(i).copy(Fragment.from(node)); }\n return {start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra)}\n}\n\n// ::- You can [_resolve_](#model.Node.resolve) a position to get more\n// information about it. Objects of this class represent such a\n// resolved position, providing various pieces of context information,\n// and some helper methods.\n//\n// Throughout this interface, methods that take an optional `depth`\n// parameter will interpret undefined as `this.depth` and negative\n// numbers as `this.depth + value`.\nvar ResolvedPos = function ResolvedPos(pos, path, parentOffset) {\n // :: number The position that was resolved.\n this.pos = pos;\n this.path = path;\n // :: number\n // The number of levels the parent node is from the root. If this\n // position points directly into the root node, it is 0. If it\n // points into a top-level paragraph, 1, and so on.\n this.depth = path.length / 3 - 1;\n // :: number The offset this position has into its parent node.\n this.parentOffset = parentOffset;\n};\n\nvar prototypeAccessors$2$1 = { parent: { configurable: true },doc: { configurable: true },textOffset: { configurable: true },nodeAfter: { configurable: true },nodeBefore: { configurable: true } };\n\nResolvedPos.prototype.resolveDepth = function resolveDepth (val) {\n if (val == null) { return this.depth }\n if (val < 0) { return this.depth + val }\n return val\n};\n\n// :: Node\n// The parent node that the position points into. Note that even if\n// a position points into a text node, that node is not considered\n// the parent—text nodes are ‘flat’ in this model, and have no content.\nprototypeAccessors$2$1.parent.get = function () { return this.node(this.depth) };\n\n// :: Node\n// The root node in which the position was resolved.\nprototypeAccessors$2$1.doc.get = function () { return this.node(0) };\n\n// :: (?number) → Node\n// The ancestor node at the given level. `p.node(p.depth)` is the\n// same as `p.parent`.\nResolvedPos.prototype.node = function node (depth) { return this.path[this.resolveDepth(depth) * 3] };\n\n// :: (?number) → number\n// The index into the ancestor at the given level. If this points at\n// the 3rd node in the 2nd paragraph on the top level, for example,\n// `p.index(0)` is 1 and `p.index(1)` is 2.\nResolvedPos.prototype.index = function index (depth) { return this.path[this.resolveDepth(depth) * 3 + 1] };\n\n// :: (?number) → number\n// The index pointing after this position into the ancestor at the\n// given level.\nResolvedPos.prototype.indexAfter = function indexAfter (depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1)\n};\n\n// :: (?number) → number\n// The (absolute) position at the start of the node at the given\n// level.\nResolvedPos.prototype.start = function start (depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1\n};\n\n// :: (?number) → number\n// The (absolute) position at the end of the node at the given\n// level.\nResolvedPos.prototype.end = function end (depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size\n};\n\n// :: (?number) → number\n// The (absolute) position directly before the wrapping node at the\n// given level, or, when `depth` is `this.depth + 1`, the original\n// position.\nResolvedPos.prototype.before = function before (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position before the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1]\n};\n\n// :: (?number) → number\n// The (absolute) position directly after the wrapping node at the\n// given level, or the original position when `depth` is `this.depth + 1`.\nResolvedPos.prototype.after = function after (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position after the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize\n};\n\n// :: number\n// When this position points into a text node, this returns the\n// distance between the position and the start of the text node.\n// Will be zero for positions that point between nodes.\nprototypeAccessors$2$1.textOffset.get = function () { return this.pos - this.path[this.path.length - 1] };\n\n// :: ?Node\n// Get the node directly after the position, if any. If the position\n// points into a text node, only the part of that node after the\n// position is returned.\nprototypeAccessors$2$1.nodeAfter.get = function () {\n var parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount) { return null }\n var dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child\n};\n\n// :: ?Node\n// Get the node directly before the position, if any. If the\n// position points into a text node, only the part of that node\n// before the position is returned.\nprototypeAccessors$2$1.nodeBefore.get = function () {\n var index = this.index(this.depth);\n var dOff = this.pos - this.path[this.path.length - 1];\n if (dOff) { return this.parent.child(index).cut(0, dOff) }\n return index == 0 ? null : this.parent.child(index - 1)\n};\n\n// :: (number, ?number) → number\n// Get the position at the given index in the parent node at the\n// given depth (which defaults to `this.depth`).\nResolvedPos.prototype.posAtIndex = function posAtIndex (index, depth) {\n depth = this.resolveDepth(depth);\n var node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (var i = 0; i < index; i++) { pos += node.child(i).nodeSize; }\n return pos\n};\n\n// :: () → [Mark]\n// Get the marks at this position, factoring in the surrounding\n// marks' [`inclusive`](#model.MarkSpec.inclusive) property. If the\n// position is at the start of a non-empty node, the marks of the\n// node after it (if any) are returned.\nResolvedPos.prototype.marks = function marks () {\n var parent = this.parent, index = this.index();\n\n // In an empty parent, return the empty array\n if (parent.content.size == 0) { return Mark.none }\n\n // When inside a text node, just return the text node's marks\n if (this.textOffset) { return parent.child(index).marks }\n\n var main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) { var tmp = main; main = other; other = tmp; }\n\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n var marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n\n return marks\n};\n\n// :: (ResolvedPos) → ?[Mark]\n// Get the marks after the current position, if any, except those\n// that are non-inclusive and not present at position `$end`. This\n// is mostly useful for getting the set of marks to preserve after a\n// deletion. Will return `null` if this position is at the end of\n// its parent node or its parent node isn't a textblock (in which\n// case no marks should be preserved).\nResolvedPos.prototype.marksAcross = function marksAcross ($end) {\n var after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline) { return null }\n\n var marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n return marks\n};\n\n// :: (number) → number\n// The depth up to which this position and the given (non-resolved)\n// position share the same parent nodes.\nResolvedPos.prototype.sharedDepth = function sharedDepth (pos) {\n for (var depth = this.depth; depth > 0; depth--)\n { if (this.start(depth) <= pos && this.end(depth) >= pos) { return depth } }\n return 0\n};\n\n// :: (?ResolvedPos, ?(Node) → bool) → ?NodeRange\n// Returns a range based on the place where this position and the\n// given position diverge around block content. If both point into\n// the same textblock, for example, a range around that textblock\n// will be returned. If they point into different blocks, the range\n// around those blocks in their shared ancestor is returned. You can\n// pass in an optional predicate that will be called with a parent\n// node to see if a range into that parent is acceptable.\nResolvedPos.prototype.blockRange = function blockRange (other, pred) {\n if ( other === void 0 ) other = this;\n\n if (other.pos < this.pos) { return other.blockRange(this) }\n for (var d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n { if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n { return new NodeRange(this, other, d) } }\n};\n\n// :: (ResolvedPos) → bool\n// Query whether the given position shares the same parent node.\nResolvedPos.prototype.sameParent = function sameParent (other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the greater of this and the given position.\nResolvedPos.prototype.max = function max (other) {\n return other.pos > this.pos ? other : this\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the smaller of this and the given position.\nResolvedPos.prototype.min = function min (other) {\n return other.pos < this.pos ? other : this\n};\n\nResolvedPos.prototype.toString = function toString () {\n var str = \"\";\n for (var i = 1; i <= this.depth; i++)\n { str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1); }\n return str + \":\" + this.parentOffset\n};\n\nResolvedPos.resolve = function resolve (doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size)) { throw new RangeError(\"Position \" + pos + \" out of range\") }\n var path = [];\n var start = 0, parentOffset = pos;\n for (var node = doc;;) {\n var ref = node.content.findIndex(parentOffset);\n var index = ref.index;\n var offset = ref.offset;\n var rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem) { break }\n node = node.child(index);\n if (node.isText) { break }\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset)\n};\n\nResolvedPos.resolveCached = function resolveCached (doc, pos) {\n for (var i = 0; i < resolveCache.length; i++) {\n var cached = resolveCache[i];\n if (cached.pos == pos && cached.doc == doc) { return cached }\n }\n var result = resolveCache[resolveCachePos] = ResolvedPos.resolve(doc, pos);\n resolveCachePos = (resolveCachePos + 1) % resolveCacheSize;\n return result\n};\n\nObject.defineProperties( ResolvedPos.prototype, prototypeAccessors$2$1 );\n\nvar resolveCache = [], resolveCachePos = 0, resolveCacheSize = 12;\n\n// ::- Represents a flat range of content, i.e. one that starts and\n// ends in the same node.\nvar NodeRange = function NodeRange($from, $to, depth) {\n // :: ResolvedPos A resolved position along the start of the\n // content. May have a `depth` greater than this object's `depth`\n // property, since these are the positions that were used to\n // compute the range, not re-resolved positions directly at its\n // boundaries.\n this.$from = $from;\n // :: ResolvedPos A position along the end of the content. See\n // caveat for [`$from`](#model.NodeRange.$from).\n this.$to = $to;\n // :: number The depth of the node that this range points into.\n this.depth = depth;\n};\n\nvar prototypeAccessors$1$1$1 = { start: { configurable: true },end: { configurable: true },parent: { configurable: true },startIndex: { configurable: true },endIndex: { configurable: true } };\n\n// :: number The position at the start of the range.\nprototypeAccessors$1$1$1.start.get = function () { return this.$from.before(this.depth + 1) };\n// :: number The position at the end of the range.\nprototypeAccessors$1$1$1.end.get = function () { return this.$to.after(this.depth + 1) };\n\n// :: Node The parent node that the range points into.\nprototypeAccessors$1$1$1.parent.get = function () { return this.$from.node(this.depth) };\n// :: number The start index of the range in the parent node.\nprototypeAccessors$1$1$1.startIndex.get = function () { return this.$from.index(this.depth) };\n// :: number The end index of the range in the parent node.\nprototypeAccessors$1$1$1.endIndex.get = function () { return this.$to.indexAfter(this.depth) };\n\nObject.defineProperties( NodeRange.prototype, prototypeAccessors$1$1$1 );\n\nvar emptyAttrs = Object.create(null);\n\n// ::- This class represents a node in the tree that makes up a\n// ProseMirror document. So a document is an instance of `Node`, with\n// children that are also instances of `Node`.\n//\n// Nodes are persistent data structures. Instead of changing them, you\n// create new ones with the content you want. Old ones keep pointing\n// at the old document shape. This is made cheaper by sharing\n// structure between the old and new data as much as possible, which a\n// tree shape like this (without back pointers) makes easy.\n//\n// **Do not** directly mutate the properties of a `Node` object. See\n// [the guide](/docs/guide/#doc) for more information.\nvar Node = function Node(type, attrs, content, marks) {\n // :: NodeType\n // The type of node that this is.\n this.type = type;\n\n // :: Object\n // An object mapping attribute names to values. The kind of\n // attributes allowed and required are\n // [determined](#model.NodeSpec.attrs) by the node type.\n this.attrs = attrs;\n\n // :: Fragment\n // A container holding the node's children.\n this.content = content || Fragment.empty;\n\n // :: [Mark]\n // The marks (things like whether it is emphasized or part of a\n // link) applied to this node.\n this.marks = marks || Mark.none;\n};\n\nvar prototypeAccessors$3$1 = { nodeSize: { configurable: true },childCount: { configurable: true },textContent: { configurable: true },firstChild: { configurable: true },lastChild: { configurable: true },isBlock: { configurable: true },isTextblock: { configurable: true },inlineContent: { configurable: true },isInline: { configurable: true },isText: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true } };\n\n// text:: ?string\n// For text nodes, this contains the node's text content.\n\n// :: number\n// The size of this node, as defined by the integer-based [indexing\n// scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n// amount of characters. For other leaf nodes, it is one. For\n// non-leaf nodes, it is the size of the content plus two (the start\n// and end token).\nprototypeAccessors$3$1.nodeSize.get = function () { return this.isLeaf ? 1 : 2 + this.content.size };\n\n// :: number\n// The number of children that the node has.\nprototypeAccessors$3$1.childCount.get = function () { return this.content.childCount };\n\n// :: (number) → Node\n// Get the child node at the given index. Raises an error when the\n// index is out of range.\nNode.prototype.child = function child (index) { return this.content.child(index) };\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nNode.prototype.maybeChild = function maybeChild (index) { return this.content.maybeChild(index) };\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nNode.prototype.forEach = function forEach (f) { this.content.forEach(f); };\n\n// :: (number, number, (node: Node, pos: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes recursively between\n// the given two positions that are relative to start of this node's\n// content. The callback is invoked with the node, its\n// parent-relative position, its parent node, and its child index.\n// When the callback returns false for a given node, that node's\n// children will not be recursed over. The last parameter can be\n// used to specify a starting position to count from.\nNode.prototype.nodesBetween = function nodesBetween (from, to, f, startPos) {\n if ( startPos === void 0 ) startPos = 0;\n\n this.content.nodesBetween(from, to, f, startPos, this);\n};\n\n// :: ((node: Node, pos: number, parent: Node, index: number) → ?bool)\n// Call the given callback for every descendant node. Doesn't\n// descend into a node when the callback returns `false`.\nNode.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.content.size, f);\n};\n\n// :: string\n// Concatenates all the text nodes found in this fragment and its\n// children.\nprototypeAccessors$3$1.textContent.get = function () { return this.textBetween(0, this.content.size, \"\") };\n\n// :: (number, number, ?string, ?union string>) → string\n// Get all text between positions `from` and `to`. When\n// `blockSeparator` is given, it will be inserted to separate text\n// from different block nodes. When `leafText` is given, it'll be\n// inserted for every non-text leaf node encountered.\nNode.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText)\n};\n\n// :: ?Node\n// Returns this node's first child, or `null` if there are no\n// children.\nprototypeAccessors$3$1.firstChild.get = function () { return this.content.firstChild };\n\n// :: ?Node\n// Returns this node's last child, or `null` if there are no\n// children.\nprototypeAccessors$3$1.lastChild.get = function () { return this.content.lastChild };\n\n// :: (Node) → bool\n// Test whether two nodes represent the same piece of document.\nNode.prototype.eq = function eq (other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content))\n};\n\n// :: (Node) → bool\n// Compare the markup (type, attributes, and marks) of this node to\n// those of another. Returns `true` if both have the same markup.\nNode.prototype.sameMarkup = function sameMarkup (other) {\n return this.hasMarkup(other.type, other.attrs, other.marks)\n};\n\n// :: (NodeType, ?Object, ?[Mark]) → bool\n// Check whether this node's markup correspond to the given type,\n// attributes, and marks.\nNode.prototype.hasMarkup = function hasMarkup (type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none)\n};\n\n// :: (?Fragment) → Node\n// Create a new node with the same markup as this node, containing\n// the given content (or empty, if no content is given).\nNode.prototype.copy = function copy (content) {\n if ( content === void 0 ) content = null;\n\n if (content == this.content) { return this }\n return new this.constructor(this.type, this.attrs, content, this.marks)\n};\n\n// :: ([Mark]) → Node\n// Create a copy of this node, with the given set of marks instead\n// of the node's own marks.\nNode.prototype.mark = function mark (marks) {\n return marks == this.marks ? this : new this.constructor(this.type, this.attrs, this.content, marks)\n};\n\n// :: (number, ?number) → Node\n// Create a copy of this node with only the content between the\n// given positions. If `to` is not given, it defaults to the end of\n// the node.\nNode.prototype.cut = function cut (from, to) {\n if (from == 0 && to == this.content.size) { return this }\n return this.copy(this.content.cut(from, to))\n};\n\n// :: (number, ?number) → Slice\n// Cut out the part of the document between the given positions, and\n// return it as a `Slice` object.\nNode.prototype.slice = function slice (from, to, includeParents) {\n if ( to === void 0 ) to = this.content.size;\n if ( includeParents === void 0 ) includeParents = false;\n\n if (from == to) { return Slice.empty }\n\n var $from = this.resolve(from), $to = this.resolve(to);\n var depth = includeParents ? 0 : $from.sharedDepth(to);\n var start = $from.start(depth), node = $from.node(depth);\n var content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth)\n};\n\n// :: (number, number, Slice) → Node\n// Replace the part of the document between the given positions with\n// the given slice. The slice must 'fit', meaning its open sides\n// must be able to connect to the surrounding content, and its\n// content nodes must be valid children for the node they are placed\n// into. If any of this is violated, an error of type\n// [`ReplaceError`](#model.ReplaceError) is thrown.\nNode.prototype.replace = function replace$1 (from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice)\n};\n\n// :: (number) → ?Node\n// Find the node directly after the given position.\nNode.prototype.nodeAt = function nodeAt (pos) {\n for (var node = this;;) {\n var ref = node.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n node = node.maybeChild(index);\n if (!node) { return null }\n if (offset == pos || node.isText) { return node }\n pos -= offset + 1;\n }\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node after the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childAfter = function childAfter (pos) {\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n return {node: this.content.maybeChild(index), index: index, offset: offset}\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node before the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childBefore = function childBefore (pos) {\n if (pos == 0) { return {node: null, index: 0, offset: 0} }\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n if (offset < pos) { return {node: this.content.child(index), index: index, offset: offset} }\n var node = this.content.child(index - 1);\n return {node: node, index: index - 1, offset: offset - node.nodeSize}\n};\n\n// :: (number) → ResolvedPos\n// Resolve the given position in the document, returning an\n// [object](#model.ResolvedPos) with information about its context.\nNode.prototype.resolve = function resolve (pos) { return ResolvedPos.resolveCached(this, pos) };\n\nNode.prototype.resolveNoCache = function resolveNoCache (pos) { return ResolvedPos.resolve(this, pos) };\n\n// :: (number, number, union) → bool\n// Test whether a given mark or mark type occurs in this document\n// between the two given positions.\nNode.prototype.rangeHasMark = function rangeHasMark (from, to, type) {\n var found = false;\n if (to > from) { this.nodesBetween(from, to, function (node) {\n if (type.isInSet(node.marks)) { found = true; }\n return !found\n }); }\n return found\n};\n\n// :: bool\n// True when this is a block (non-inline node)\nprototypeAccessors$3$1.isBlock.get = function () { return this.type.isBlock };\n\n// :: bool\n// True when this is a textblock node, a block node with inline\n// content.\nprototypeAccessors$3$1.isTextblock.get = function () { return this.type.isTextblock };\n\n// :: bool\n// True when this node allows inline content.\nprototypeAccessors$3$1.inlineContent.get = function () { return this.type.inlineContent };\n\n// :: bool\n// True when this is an inline node (a text node or a node that can\n// appear among text).\nprototypeAccessors$3$1.isInline.get = function () { return this.type.isInline };\n\n// :: bool\n// True when this is a text node.\nprototypeAccessors$3$1.isText.get = function () { return this.type.isText };\n\n// :: bool\n// True when this is a leaf node.\nprototypeAccessors$3$1.isLeaf.get = function () { return this.type.isLeaf };\n\n// :: bool\n// True when this is an atom, i.e. when it does not have directly\n// editable content. This is usually the same as `isLeaf`, but can\n// be configured with the [`atom` property](#model.NodeSpec.atom) on\n// a node's spec (typically used when the node is displayed as an\n// uneditable [node view](#view.NodeView)).\nprototypeAccessors$3$1.isAtom.get = function () { return this.type.isAtom };\n\n// :: () → string\n// Return a string representation of this node for debugging\n// purposes.\nNode.prototype.toString = function toString () {\n if (this.type.spec.toDebugString) { return this.type.spec.toDebugString(this) }\n var name = this.type.name;\n if (this.content.size)\n { name += \"(\" + this.content.toStringInner() + \")\"; }\n return wrapMarks(this.marks, name)\n};\n\n// :: (number) → ContentMatch\n// Get the content match in this node at the given index.\nNode.prototype.contentMatchAt = function contentMatchAt (index) {\n var match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match) { throw new Error(\"Called contentMatchAt on a node with invalid content\") }\n return match\n};\n\n// :: (number, number, ?Fragment, ?number, ?number) → bool\n// Test whether replacing the range between `from` and `to` (by\n// child index) with the given replacement fragment (which defaults\n// to the empty fragment) would leave the node's content valid. You\n// can optionally pass `start` and `end` indices into the\n// replacement fragment.\nNode.prototype.canReplace = function canReplace (from, to, replacement, start, end) {\n if ( replacement === void 0 ) replacement = Fragment.empty;\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = replacement.childCount;\n\n var one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n var two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd) { return false }\n for (var i = start; i < end; i++) { if (!this.type.allowsMarks(replacement.child(i).marks)) { return false } }\n return true\n};\n\n// :: (number, number, NodeType, ?[Mark]) → bool\n// Test whether replacing the range `from` to `to` (by index) with a\n// node of the given type would leave the node's content valid.\nNode.prototype.canReplaceWith = function canReplaceWith (from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks)) { return false }\n var start = this.contentMatchAt(from).matchType(type);\n var end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false\n};\n\n// :: (Node) → bool\n// Test whether the given node's content could be appended to this\n// node. If that node is empty, this will only return true if there\n// is at least one node type that can appear in both nodes (to avoid\n// merging completely incompatible nodes).\nNode.prototype.canAppend = function canAppend (other) {\n if (other.content.size) { return this.canReplace(this.childCount, this.childCount, other.content) }\n else { return this.type.compatibleContent(other.type) }\n};\n\n// :: ()\n// Check whether this node and its descendants conform to the\n// schema, and raise error when they do not.\nNode.prototype.check = function check () {\n if (!this.type.validContent(this.content))\n { throw new RangeError((\"Invalid content for node \" + (this.type.name) + \": \" + (this.content.toString().slice(0, 50)))) }\n var copy = Mark.none;\n for (var i = 0; i < this.marks.length; i++) { copy = this.marks[i].addToSet(copy); }\n if (!Mark.sameSet(copy, this.marks))\n { throw new RangeError((\"Invalid collection of marks for node \" + (this.type.name) + \": \" + (this.marks.map(function (m) { return m.type.name; })))) }\n this.content.forEach(function (node) { return node.check(); });\n};\n\n// :: () → Object\n// Return a JSON-serializeable representation of this node.\nNode.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n if (this.content.size)\n { obj.content = this.content.toJSON(); }\n if (this.marks.length)\n { obj.marks = this.marks.map(function (n) { return n.toJSON(); }); }\n return obj\n};\n\n// :: (Schema, Object) → Node\n// Deserialize a node from its JSON representation.\nNode.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Node.fromJSON\") }\n var marks = null;\n if (json.marks) {\n if (!Array.isArray(json.marks)) { throw new RangeError(\"Invalid mark data for Node.fromJSON\") }\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\") { throw new RangeError(\"Invalid text node in JSON\") }\n return schema.text(json.text, marks)\n }\n var content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks)\n};\n\nObject.defineProperties( Node.prototype, prototypeAccessors$3$1 );\n\nfunction wrapMarks(marks, str) {\n for (var i = marks.length - 1; i >= 0; i--)\n { str = marks[i].type.name + \"(\" + str + \")\"; }\n return str\n}\n\n// ::- Instances of this class represent a match state of a node\n// type's [content expression](#model.NodeSpec.content), and can be\n// used to find out whether further content matches here, and whether\n// a given position is a valid end of the node.\nvar ContentMatch = function ContentMatch(validEnd) {\n // :: bool\n // True when this match state represents a valid end of the node.\n this.validEnd = validEnd;\n this.next = [];\n this.wrapCache = [];\n};\n\nvar prototypeAccessors$4 = { inlineContent: { configurable: true },defaultType: { configurable: true },edgeCount: { configurable: true } };\n\nContentMatch.parse = function parse (string, nodeTypes) {\n var stream = new TokenStream(string, nodeTypes);\n if (stream.next == null) { return ContentMatch.empty }\n var expr = parseExpr(stream);\n if (stream.next) { stream.err(\"Unexpected trailing text\"); }\n var match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match\n};\n\n// :: (NodeType) → ?ContentMatch\n// Match a node type, returning a match after that node if\n// successful.\nContentMatch.prototype.matchType = function matchType (type) {\n for (var i = 0; i < this.next.length; i += 2)\n { if (this.next[i] == type) { return this.next[i + 1] } }\n return null\n};\n\n// :: (Fragment, ?number, ?number) → ?ContentMatch\n// Try to match a fragment. Returns the resulting match when\n// successful.\nContentMatch.prototype.matchFragment = function matchFragment (frag, start, end) {\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = frag.childCount;\n\n var cur = this;\n for (var i = start; cur && i < end; i++)\n { cur = cur.matchType(frag.child(i).type); }\n return cur\n};\n\nprototypeAccessors$4.inlineContent.get = function () {\n var first = this.next[0];\n return first ? first.isInline : false\n};\n\n// :: ?NodeType\n// Get the first matching node type at this match position that can\n// be generated.\nprototypeAccessors$4.defaultType.get = function () {\n for (var i = 0; i < this.next.length; i += 2) {\n var type = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs())) { return type }\n }\n};\n\nContentMatch.prototype.compatible = function compatible (other) {\n for (var i = 0; i < this.next.length; i += 2)\n { for (var j = 0; j < other.next.length; j += 2)\n { if (this.next[i] == other.next[j]) { return true } } }\n return false\n};\n\n// :: (Fragment, bool, ?number) → ?Fragment\n// Try to match the given fragment, and if that fails, see if it can\n// be made to match by inserting nodes in front of it. When\n// successful, return a fragment of inserted nodes (which may be\n// empty if nothing had to be inserted). When `toEnd` is true, only\n// return a fragment if the resulting match goes to the end of the\n// content expression.\nContentMatch.prototype.fillBefore = function fillBefore (after, toEnd, startIndex) {\n if ( toEnd === void 0 ) toEnd = false;\n if ( startIndex === void 0 ) startIndex = 0;\n\n var seen = [this];\n function search(match, types) {\n var finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n { return Fragment.from(types.map(function (tp) { return tp.createAndFill(); })) }\n\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i], next = match.next[i + 1];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n var found = search(next, types.concat(type));\n if (found) { return found }\n }\n }\n }\n\n return search(this, [])\n};\n\n// :: (NodeType) → ?[NodeType]\n// Find a set of wrapping node types that would allow a node of the\n// given type to appear at this position. The result may be empty\n// (when it fits directly) and will be null when no such wrapping\n// exists.\nContentMatch.prototype.findWrapping = function findWrapping (target) {\n for (var i = 0; i < this.wrapCache.length; i += 2)\n { if (this.wrapCache[i] == target) { return this.wrapCache[i + 1] } }\n var computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed\n};\n\nContentMatch.prototype.computeWrapping = function computeWrapping (target) {\n var seen = Object.create(null), active = [{match: this, type: null, via: null}];\n while (active.length) {\n var current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n var result = [];\n for (var obj = current; obj.type; obj = obj.via)\n { result.push(obj.type); }\n return result.reverse()\n }\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || match.next[i + 1].validEnd)) {\n active.push({match: type.contentMatch, type: type, via: current});\n seen[type.name] = true;\n }\n }\n }\n};\n\n// :: number\n// The number of outgoing edges this node has in the finite\n// automaton that describes the content expression.\nprototypeAccessors$4.edgeCount.get = function () {\n return this.next.length >> 1\n};\n\n// :: (number) → {type: NodeType, next: ContentMatch}\n// Get the _n_​th outgoing edge from this node in the finite\n// automaton that describes the content expression.\nContentMatch.prototype.edge = function edge (n) {\n var i = n << 1;\n if (i >= this.next.length) { throw new RangeError((\"There's no \" + n + \"th edge in this content match\")) }\n return {type: this.next[i], next: this.next[i + 1]}\n};\n\nContentMatch.prototype.toString = function toString () {\n var seen = [];\n function scan(m) {\n seen.push(m);\n for (var i = 1; i < m.next.length; i += 2)\n { if (seen.indexOf(m.next[i]) == -1) { scan(m.next[i]); } }\n }\n scan(this);\n return seen.map(function (m, i) {\n var out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (var i$1 = 0; i$1 < m.next.length; i$1 += 2)\n { out += (i$1 ? \", \" : \"\") + m.next[i$1].name + \"->\" + seen.indexOf(m.next[i$1 + 1]); }\n return out\n }).join(\"\\n\")\n};\n\nObject.defineProperties( ContentMatch.prototype, prototypeAccessors$4 );\n\nContentMatch.empty = new ContentMatch(true);\n\nvar TokenStream = function TokenStream(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\") { this.tokens.pop(); }\n if (this.tokens[0] == \"\") { this.tokens.shift(); }\n};\n\nvar prototypeAccessors$1$2$1 = { next: { configurable: true } };\n\nprototypeAccessors$1$2$1.next.get = function () { return this.tokens[this.pos] };\n\nTokenStream.prototype.eat = function eat (tok) { return this.next == tok && (this.pos++ || true) };\n\nTokenStream.prototype.err = function err (str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\") };\n\nObject.defineProperties( TokenStream.prototype, prototypeAccessors$1$2$1 );\n\nfunction parseExpr(stream) {\n var exprs = [];\n do { exprs.push(parseExprSeq(stream)); }\n while (stream.eat(\"|\"))\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n}\n\nfunction parseExprSeq(stream) {\n var exprs = [];\n do { exprs.push(parseExprSubscript(stream)); }\n while (stream.next && stream.next != \")\" && stream.next != \"|\")\n return exprs.length == 1 ? exprs[0] : {type: \"seq\", exprs: exprs}\n}\n\nfunction parseExprSubscript(stream) {\n var expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n { expr = {type: \"plus\", expr: expr}; }\n else if (stream.eat(\"*\"))\n { expr = {type: \"star\", expr: expr}; }\n else if (stream.eat(\"?\"))\n { expr = {type: \"opt\", expr: expr}; }\n else if (stream.eat(\"{\"))\n { expr = parseExprRange(stream, expr); }\n else { break }\n }\n return expr\n}\n\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next)) { stream.err(\"Expected number, got '\" + stream.next + \"'\"); }\n var result = Number(stream.next);\n stream.pos++;\n return result\n}\n\nfunction parseExprRange(stream, expr) {\n var min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\") { max = parseNum(stream); }\n else { max = -1; }\n }\n if (!stream.eat(\"}\")) { stream.err(\"Unclosed braced range\"); }\n return {type: \"range\", min: min, max: max, expr: expr}\n}\n\nfunction resolveName(stream, name) {\n var types = stream.nodeTypes, type = types[name];\n if (type) { return [type] }\n var result = [];\n for (var typeName in types) {\n var type$1 = types[typeName];\n if (type$1.groups.indexOf(name) > -1) { result.push(type$1); }\n }\n if (result.length == 0) { stream.err(\"No node type or group '\" + name + \"' found\"); }\n return result\n}\n\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n var expr = parseExpr(stream);\n if (!stream.eat(\")\")) { stream.err(\"Missing closing paren\"); }\n return expr\n } else if (!/\\W/.test(stream.next)) {\n var exprs = resolveName(stream, stream.next).map(function (type) {\n if (stream.inline == null) { stream.inline = type.isInline; }\n else if (stream.inline != type.isInline) { stream.err(\"Mixing inline and block content\"); }\n return {type: \"name\", value: type}\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n } else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n\n// The code below helps compile a regular-expression-like language\n// into a deterministic finite automaton. For a good introduction to\n// these concepts, see https://swtch.com/~rsc/regexp/regexp1.html\n\n// : (Object) → [[{term: ?any, to: number}]]\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n var nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa\n\n function node() { return nfa.push([]) - 1 }\n function edge(from, to, term) {\n var edge = {term: term, to: to};\n nfa[from].push(edge);\n return edge\n }\n function connect(edges, to) { edges.forEach(function (edge) { return edge.to = to; }); }\n\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce(function (out, expr) { return out.concat(compile(expr, from)); }, [])\n } else if (expr.type == \"seq\") {\n for (var i = 0;; i++) {\n var next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1) { return next }\n connect(next, from = node());\n }\n } else if (expr.type == \"star\") {\n var loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)]\n } else if (expr.type == \"plus\") {\n var loop$1 = node();\n connect(compile(expr.expr, from), loop$1);\n connect(compile(expr.expr, loop$1), loop$1);\n return [edge(loop$1)]\n } else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from))\n } else if (expr.type == \"range\") {\n var cur = from;\n for (var i$1 = 0; i$1 < expr.min; i$1++) {\n var next$1 = node();\n connect(compile(expr.expr, cur), next$1);\n cur = next$1;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n } else {\n for (var i$2 = expr.min; i$2 < expr.max; i$2++) {\n var next$2 = node();\n edge(cur, next$2);\n connect(compile(expr.expr, cur), next$2);\n cur = next$2;\n }\n }\n return [edge(cur)]\n } else if (expr.type == \"name\") {\n return [edge(from, null, expr.value)]\n }\n }\n}\n\nfunction cmp(a, b) { return b - a }\n\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n var result = [];\n scan(node);\n return result.sort(cmp)\n\n function scan(node) {\n var edges = nfa[node];\n if (edges.length == 1 && !edges[0].term) { return scan(edges[0].to) }\n result.push(node);\n for (var i = 0; i < edges.length; i++) {\n var ref = edges[i];\n var term = ref.term;\n var to = ref.to;\n if (!term && result.indexOf(to) == -1) { scan(to); }\n }\n }\n}\n\n// : ([[{term: ?any, to: number}]]) → ContentMatch\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n var labeled = Object.create(null);\n return explore(nullFrom(nfa, 0))\n\n function explore(states) {\n var out = [];\n states.forEach(function (node) {\n nfa[node].forEach(function (ref) {\n var term = ref.term;\n var to = ref.to;\n\n if (!term) { return }\n var known = out.indexOf(term), set = known > -1 && out[known + 1];\n nullFrom(nfa, to).forEach(function (node) {\n if (!set) { out.push(term, set = []); }\n if (set.indexOf(node) == -1) { set.push(node); }\n });\n });\n });\n var state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (var i = 0; i < out.length; i += 2) {\n var states$1 = out[i + 1].sort(cmp);\n state.next.push(out[i], labeled[states$1.join(\",\")] || explore(states$1));\n }\n return state\n }\n}\n\nfunction checkForDeadEnds(match, stream) {\n for (var i = 0, work = [match]; i < work.length; i++) {\n var state = work[i], dead = !state.validEnd, nodes = [];\n for (var j = 0; j < state.next.length; j += 2) {\n var node = state.next[j], next = state.next[j + 1];\n nodes.push(node.name);\n if (dead && !(node.isText || node.hasRequiredAttrs())) { dead = false; }\n if (work.indexOf(next) == -1) { work.push(next); }\n }\n if (dead) { stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\"); }\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n var defaults = Object.create(null);\n for (var attrName in attrs) {\n var attr = attrs[attrName];\n if (!attr.hasDefault) { return null }\n defaults[attrName] = attr.default;\n }\n return defaults\n}\n\nfunction computeAttrs(attrs, value) {\n var built = Object.create(null);\n for (var name in attrs) {\n var given = value && value[name];\n if (given === undefined) {\n var attr = attrs[name];\n if (attr.hasDefault) { given = attr.default; }\n else { throw new RangeError(\"No value supplied for attribute \" + name) }\n }\n built[name] = given;\n }\n return built\n}\n\nfunction initAttrs(attrs) {\n var result = Object.create(null);\n if (attrs) { for (var name in attrs) { result[name] = new Attribute(attrs[name]); } }\n return result\n}\n\n// ::- Node types are objects allocated once per `Schema` and used to\n// [tag](#model.Node.type) `Node` instances. They contain information\n// about the node type, such as its name and what kind of node it\n// represents.\nvar NodeType = function NodeType(name, schema, spec) {\n // :: string\n // The name the node type has in this schema.\n this.name = name;\n\n // :: Schema\n // A link back to the `Schema` the node type belongs to.\n this.schema = schema;\n\n // :: NodeSpec\n // The spec that this type is based on\n this.spec = spec;\n\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n\n this.defaultAttrs = defaultAttrs(this.attrs);\n\n // :: ContentMatch\n // The starting match of the node type's content expression.\n this.contentMatch = null;\n\n // : ?[MarkType]\n // The set of marks allowed in this node. `null` means all marks\n // are allowed.\n this.markSet = null;\n\n // :: bool\n // True if this node type has inline content.\n this.inlineContent = null;\n\n // :: bool\n // True if this is a block type\n this.isBlock = !(spec.inline || name == \"text\");\n\n // :: bool\n // True if this is the text node type.\n this.isText = name == \"text\";\n};\n\nvar prototypeAccessors$5 = { isInline: { configurable: true },isTextblock: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true },whitespace: { configurable: true } };\n\n// :: bool\n// True if this is an inline type.\nprototypeAccessors$5.isInline.get = function () { return !this.isBlock };\n\n// :: bool\n// True if this is a textblock type, a block that contains inline\n// content.\nprototypeAccessors$5.isTextblock.get = function () { return this.isBlock && this.inlineContent };\n\n// :: bool\n// True for node types that allow no content.\nprototypeAccessors$5.isLeaf.get = function () { return this.contentMatch == ContentMatch.empty };\n\n// :: bool\n// True when this node is an atom, i.e. when it does not have\n// directly editable content.\nprototypeAccessors$5.isAtom.get = function () { return this.isLeaf || this.spec.atom };\n\n// :: union<\"pre\", \"normal\">\n// The node type's [whitespace](#view.NodeSpec.whitespace) option.\nprototypeAccessors$5.whitespace.get = function () { return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\") };\n\n// :: () → bool\n// Tells you whether this node type has any required attributes.\nNodeType.prototype.hasRequiredAttrs = function hasRequiredAttrs () {\n for (var n in this.attrs) { if (this.attrs[n].isRequired) { return true } }\n return false\n};\n\nNodeType.prototype.compatibleContent = function compatibleContent (other) {\n return this == other || this.contentMatch.compatible(other.contentMatch)\n};\n\nNodeType.prototype.computeAttrs = function computeAttrs$1 (attrs) {\n if (!attrs && this.defaultAttrs) { return this.defaultAttrs }\n else { return computeAttrs(this.attrs, attrs) }\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Create a `Node` of this type. The given attributes are\n// checked and defaulted (you can pass `null` to use the type's\n// defaults entirely, if no required attributes exist). `content`\n// may be a `Fragment`, a node, an array of nodes, or\n// `null`. Similarly `marks` may be `null` to default to the empty\n// set of marks.\nNodeType.prototype.create = function create (attrs, content, marks) {\n if (this.isText) { throw new Error(\"NodeType.create can't construct text nodes\") }\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Like [`create`](#model.NodeType.create), but check the given content\n// against the node type's content restrictions, and throw an error\n// if it doesn't match.\nNodeType.prototype.createChecked = function createChecked (attrs, content, marks) {\n content = Fragment.from(content);\n if (!this.validContent(content))\n { throw new RangeError(\"Invalid content for node \" + this.name) }\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → ?Node\n// Like [`create`](#model.NodeType.create), but see if it is necessary to\n// add nodes to the start or end of the given fragment to make it\n// fit the node. If no fitting wrapping can be found, return null.\n// Note that, due to the fact that required nodes can always be\n// created, this will always succeed if you pass null or\n// `Fragment.empty` as content.\nNodeType.prototype.createAndFill = function createAndFill (attrs, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n var before = this.contentMatch.fillBefore(content);\n if (!before) { return null }\n content = before.append(content);\n }\n var after = this.contentMatch.matchFragment(content).fillBefore(Fragment.empty, true);\n if (!after) { return null }\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks))\n};\n\n// :: (Fragment) → bool\n// Returns true if the given fragment is valid content for this node\n// type with the given attributes.\nNodeType.prototype.validContent = function validContent (content) {\n var result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd) { return false }\n for (var i = 0; i < content.childCount; i++)\n { if (!this.allowsMarks(content.child(i).marks)) { return false } }\n return true\n};\n\n// :: (MarkType) → bool\n// Check whether the given mark type is allowed in this node.\nNodeType.prototype.allowsMarkType = function allowsMarkType (markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1\n};\n\n// :: ([Mark]) → bool\n// Test whether the given set of marks are allowed in this node.\nNodeType.prototype.allowsMarks = function allowsMarks (marks) {\n if (this.markSet == null) { return true }\n for (var i = 0; i < marks.length; i++) { if (!this.allowsMarkType(marks[i].type)) { return false } }\n return true\n};\n\n// :: ([Mark]) → [Mark]\n// Removes the marks that are not allowed in this node from the given set.\nNodeType.prototype.allowedMarks = function allowedMarks (marks) {\n if (this.markSet == null) { return marks }\n var copy;\n for (var i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy) { copy = marks.slice(0, i); }\n } else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.empty\n};\n\nNodeType.compile = function compile (nodes, schema) {\n var result = Object.create(null);\n nodes.forEach(function (name, spec) { return result[name] = new NodeType(name, schema, spec); });\n\n var topType = schema.spec.topNode || \"doc\";\n if (!result[topType]) { throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\") }\n if (!result.text) { throw new RangeError(\"Every schema needs a 'text' type\") }\n for (var _ in result.text.attrs) { throw new RangeError(\"The text node type should not have attributes\") }\n\n return result\n};\n\nObject.defineProperties( NodeType.prototype, prototypeAccessors$5 );\n\n// Attribute descriptors\n\nvar Attribute = function Attribute(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n};\n\nvar prototypeAccessors$1$3 = { isRequired: { configurable: true } };\n\nprototypeAccessors$1$3.isRequired.get = function () {\n return !this.hasDefault\n};\n\nObject.defineProperties( Attribute.prototype, prototypeAccessors$1$3 );\n\n// Marks\n\n// ::- Like nodes, marks (which are associated with nodes to signify\n// things like emphasis or being part of a link) are\n// [tagged](#model.Mark.type) with type objects, which are\n// instantiated once per `Schema`.\nvar MarkType = function MarkType(name, rank, schema, spec) {\n // :: string\n // The name of the mark type.\n this.name = name;\n\n // :: Schema\n // The schema that this mark type instance is part of.\n this.schema = schema;\n\n // :: MarkSpec\n // The spec on which the type is based.\n this.spec = spec;\n\n this.attrs = initAttrs(spec.attrs);\n\n this.rank = rank;\n this.excluded = null;\n var defaults = defaultAttrs(this.attrs);\n this.instance = defaults && new Mark(this, defaults);\n};\n\n// :: (?Object) → Mark\n// Create a mark of this type. `attrs` may be `null` or an object\n// containing only some of the mark's attributes. The others, if\n// they have defaults, will be added.\nMarkType.prototype.create = function create (attrs) {\n if (!attrs && this.instance) { return this.instance }\n return new Mark(this, computeAttrs(this.attrs, attrs))\n};\n\nMarkType.compile = function compile (marks, schema) {\n var result = Object.create(null), rank = 0;\n marks.forEach(function (name, spec) { return result[name] = new MarkType(name, rank++, schema, spec); });\n return result\n};\n\n// :: ([Mark]) → [Mark]\n// When there is a mark of this type in the given set, a new set\n// without it is returned. Otherwise, the input set is returned.\nMarkType.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++) { if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n } }\n return set\n};\n\n// :: ([Mark]) → ?Mark\n// Tests whether there is a mark of this type in the given set.\nMarkType.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (set[i].type == this) { return set[i] } }\n};\n\n// :: (MarkType) → bool\n// Queries whether a given mark type is\n// [excluded](#model.MarkSpec.excludes) by this one.\nMarkType.prototype.excludes = function excludes (other) {\n return this.excluded.indexOf(other) > -1\n};\n\n// : Object The block-level tags in HTML5\nvar blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\n\n// : Object The tags that we normally ignore.\nvar ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\n\n// : Object List tags.\nvar listTags = {ol: true, ul: true};\n\n// Using a bitfield for node context options\nvar OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\n\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null) { return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0) }\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT\n}\n\nvar NodeContext = function NodeContext(type, attrs, marks, pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.solid = solid;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n this.options = options;\n this.content = [];\n // Marks applied to this node itself\n this.marks = marks;\n // Marks applied to its children\n this.activeMarks = Mark.none;\n // Marks that can't apply here, but will be used in children if possible\n this.pendingMarks = pendingMarks;\n // Nested Marks with same type\n this.stashMarks = [];\n};\n\nNodeContext.prototype.findWrapping = function findWrapping (node) {\n if (!this.match) {\n if (!this.type) { return [] }\n var fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n } else {\n var start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap\n } else {\n return null\n }\n }\n }\n return this.match.findWrapping(node.type)\n};\n\nNodeContext.prototype.finish = function finish (openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n var last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n if (last.text.length == m[0].length) { this.content.pop(); }\n else { this.content[this.content.length - 1] = last.withText(last.text.slice(0, last.text.length - m[0].length)); }\n }\n }\n var content = Fragment.from(this.content);\n if (!openEnd && this.match)\n { content = content.append(this.match.fillBefore(Fragment.empty, true)); }\n return this.type ? this.type.create(this.attrs, content, this.marks) : content\n};\n\nNodeContext.prototype.popFromStashMark = function popFromStashMark (mark) {\n for (var i = this.stashMarks.length - 1; i >= 0; i--)\n { if (mark.eq(this.stashMarks[i])) { return this.stashMarks.splice(i, 1)[0] } }\n};\n\nNodeContext.prototype.applyPending = function applyPending (nextType) {\n for (var i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n var mark = pending[i];\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) &&\n !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n};\n\nNodeContext.prototype.inlineContext = function inlineContext (node) {\n if (this.type) { return this.type.inlineContent }\n if (this.content.length) { return this.content[0].isInline }\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase())\n};\n\nvar ParseContext = function ParseContext(parser, options, open) {\n // : DOMParser The parser we are using.\n this.parser = parser;\n // : Object The options passed to this parse.\n this.options = options;\n this.isOpen = open;\n var topNode = options.topNode, topContext;\n var topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (open ? OPT_OPEN_LEFT : 0);\n if (topNode)\n { topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, Mark.none, true,\n options.topMatch || topNode.type.contentMatch, topOptions); }\n else if (open)\n { topContext = new NodeContext(null, null, Mark.none, Mark.none, true, null, topOptions); }\n else\n { topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, Mark.none, true, null, topOptions); }\n this.nodes = [topContext];\n // : [Mark] The current set of marks\n this.open = 0;\n this.find = options.findPositions;\n this.needsBlock = false;\n};\n\nvar prototypeAccessors$6 = { top: { configurable: true },currentPos: { configurable: true } };\n\nprototypeAccessors$6.top.get = function () {\n return this.nodes[this.open]\n};\n\n// : (dom.Node)\n// Add a DOM node to the content. Text is inserted as text node,\n// otherwise, the node is passed to `addElement` or, if it has a\n// `style` attribute, `addElementWithStyles`.\nParseContext.prototype.addDOM = function addDOM (dom) {\n if (dom.nodeType == 3) {\n this.addTextNode(dom);\n } else if (dom.nodeType == 1) {\n var style = dom.getAttribute(\"style\");\n var marks = style ? this.readStyles(parseStyles(style)) : null, top = this.top;\n if (marks != null) { for (var i = 0; i < marks.length; i++) { this.addPendingMark(marks[i]); } }\n this.addElement(dom);\n if (marks != null) { for (var i$1 = 0; i$1 < marks.length; i$1++) { this.removePendingMark(marks[i$1], top); } }\n }\n};\n\nParseContext.prototype.addTextNode = function addTextNode (dom) {\n var value = dom.nodeValue;\n var top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n var nodeBefore = top.content[top.content.length - 1];\n var domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n { value = value.slice(1); }\n }\n } else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n } else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value) { this.insertNode(this.parser.schema.text(value)); }\n this.findInText(dom);\n } else {\n this.findInside(dom);\n }\n};\n\n// : (dom.Element, ?ParseRule)\n// Try to find a handler for the given tag and use that to parse. If\n// none is found, the element's content nodes are added directly.\nParseContext.prototype.addElement = function addElement (dom, matchAfter) {\n var name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists) { normalizeList(dom); }\n var rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom);\n } else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent) { this.open = Math.max(0, this.open - 1); }\n else if (rule && rule.skip.nodeType) { dom = rule.skip; }\n var sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n sync = true;\n if (!top.type) { this.needsBlock = true; }\n } else if (!dom.firstChild) {\n this.leafFallback(dom);\n return\n }\n this.addAll(dom);\n if (sync) { this.sync(top); }\n this.needsBlock = oldNeedsBlock;\n } else {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : null);\n }\n};\n\n// Called for leaf DOM nodes that would otherwise be ignored\nParseContext.prototype.leafFallback = function leafFallback (dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n { this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\")); }\n};\n\n// Called for ignored nodes\nParseContext.prototype.ignoreFallback = function ignoreFallback (dom) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n { this.findPlace(this.parser.schema.text(\"-\")); }\n};\n\n// Run any style parser associated with the node's styles. Either\n// return an array of marks, or null to indicate some of the styles\n// had a rule with `ignore` set.\nParseContext.prototype.readStyles = function readStyles (styles) {\n var marks = Mark.none;\n style: for (var i = 0; i < styles.length; i += 2) {\n for (var after = null;;) {\n var rule = this.parser.matchStyle(styles[i], styles[i + 1], this, after);\n if (!rule) { continue style }\n if (rule.ignore) { return null }\n marks = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(marks);\n if (rule.consuming === false) { after = rule; }\n else { break }\n }\n }\n return marks\n};\n\n// : (dom.Element, ParseRule) → bool\n// Look up a handler for the given node. If none are found, return\n// false. Otherwise, apply it, use its return value to drive the way\n// the node's content is wrapped, and return true.\nParseContext.prototype.addElementByRule = function addElementByRule (dom, rule, continueAfter) {\n var this$1$1 = this;\n\n var sync, nodeType, markType, mark;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs, rule.preserveWhitespace);\n } else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n } else {\n markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n var startIn = this.top;\n\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n } else if (continueAfter) {\n this.addElement(dom, continueAfter);\n } else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(function (node) { return this$1$1.insertNode(node); });\n } else {\n var contentDOM = rule.contentElement;\n if (typeof contentDOM == \"string\") { contentDOM = dom.querySelector(contentDOM); }\n else if (typeof contentDOM == \"function\") { contentDOM = contentDOM(dom); }\n if (!contentDOM) { contentDOM = dom; }\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, sync);\n }\n if (sync) { this.sync(startIn); this.open--; }\n if (mark) { this.removePendingMark(mark, startIn); }\n};\n\n// : (dom.Node, ?NodeBuilder, ?number, ?number)\n// Add all child nodes between `startIndex` and `endIndex` (or the\n// whole node, if not given). If `sync` is passed, use it to\n// synchronize after every block element.\nParseContext.prototype.addAll = function addAll (parent, sync, startIndex, endIndex) {\n var index = startIndex || 0;\n for (var dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild,\n end = endIndex == null ? null : parent.childNodes[endIndex];\n dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n if (sync && blockTags.hasOwnProperty(dom.nodeName.toLowerCase()))\n { this.sync(sync); }\n }\n this.findAtPoint(parent, index);\n};\n\n// Try to find a way to fit the given node type into the current\n// context. May add intermediate wrappers and/or leave non-solid\n// nodes that we're in.\nParseContext.prototype.findPlace = function findPlace (node) {\n var route, sync;\n for (var depth = this.open; depth >= 0; depth--) {\n var cx = this.nodes[depth];\n var found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length) { break }\n }\n if (cx.solid) { break }\n }\n if (!route) { return false }\n this.sync(sync);\n for (var i = 0; i < route.length; i++)\n { this.enterInner(route[i], null, false); }\n return true\n};\n\n// : (Node) → ?Node\n// Try to insert the given node, adjusting the context when needed.\nParseContext.prototype.insertNode = function insertNode (node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n var block = this.textblockFromContext();\n if (block) { this.enterInner(block); }\n }\n if (this.findPlace(node)) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(node.type);\n if (top.match) { top.match = top.match.matchType(node.type); }\n var marks = top.activeMarks;\n for (var i = 0; i < node.marks.length; i++)\n { if (!top.type || top.type.allowsMarkType(node.marks[i].type))\n { marks = node.marks[i].addToSet(marks); } }\n top.content.push(node.mark(marks));\n return true\n }\n return false\n};\n\n// : (NodeType, ?Object) → bool\n// Try to start a node of the given type, adjusting the context when\n// necessary.\nParseContext.prototype.enter = function enter (type, attrs, preserveWS) {\n var ok = this.findPlace(type.create(attrs));\n if (ok) { this.enterInner(type, attrs, true, preserveWS); }\n return ok\n};\n\n// Open a node of the given type\nParseContext.prototype.enterInner = function enterInner (type, attrs, solid, preserveWS) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type, attrs);\n var options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0) { options |= OPT_OPEN_LEFT; }\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n};\n\n// Make sure all nodes above this.open are finished and added to\n// their parents\nParseContext.prototype.closeExtra = function closeExtra (openEnd) {\n var i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--) { this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd)); }\n this.nodes.length = this.open + 1;\n }\n};\n\nParseContext.prototype.finish = function finish () {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen)\n};\n\nParseContext.prototype.sync = function sync (to) {\n for (var i = this.open; i >= 0; i--) { if (this.nodes[i] == to) {\n this.open = i;\n return\n } }\n};\n\nprototypeAccessors$6.currentPos.get = function () {\n this.closeExtra();\n var pos = 0;\n for (var i = this.open; i >= 0; i--) {\n var content = this.nodes[i].content;\n for (var j = content.length - 1; j >= 0; j--)\n { pos += content[j].nodeSize; }\n if (i) { pos++; }\n }\n return pos\n};\n\nParseContext.prototype.findAtPoint = function findAtPoint (parent, offset) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findInside = function findInside (parent) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findAround = function findAround (parent, content, before) {\n if (parent != content && this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n var pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n { this.find[i].pos = this.currentPos; }\n }\n } }\n};\n\nParseContext.prototype.findInText = function findInText (textNode) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n { this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset); }\n } }\n};\n\n// : (string) → bool\n// Determines whether the given [context\n// string](#ParseRule.context) matches this context.\nParseContext.prototype.matchesContext = function matchesContext (context) {\n var this$1$1 = this;\n\n if (context.indexOf(\"|\") > -1)\n { return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this) }\n\n var parts = context.split(\"/\");\n var option = this.options.context;\n var useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n var minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n var match = function (i, depth) {\n for (; i >= 0; i--) {\n var part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0) { continue }\n for (; depth >= minDepth; depth--)\n { if (match(i - 1, depth)) { return true } }\n return false\n } else {\n var next = depth > 0 || (depth == 0 && useRoot) ? this$1$1.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n { return false }\n depth--;\n }\n }\n return true\n };\n return match(parts.length - 1, this.open)\n};\n\nParseContext.prototype.textblockFromContext = function textblockFromContext () {\n var $context = this.options.context;\n if ($context) { for (var d = $context.depth; d >= 0; d--) {\n var deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs) { return deflt }\n } }\n for (var name in this.parser.schema.nodes) {\n var type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs) { return type }\n }\n};\n\nParseContext.prototype.addPendingMark = function addPendingMark (mark) {\n var found = findSameMarkInSet(mark, this.top.pendingMarks);\n if (found) { this.top.stashMarks.push(found); }\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n};\n\nParseContext.prototype.removePendingMark = function removePendingMark (mark, upto) {\n for (var depth = this.open; depth >= 0; depth--) {\n var level = this.nodes[depth];\n var found = level.pendingMarks.lastIndexOf(mark);\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n } else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n var stashMark = level.popFromStashMark(mark);\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type))\n { level.activeMarks = stashMark.addToSet(level.activeMarks); }\n }\n if (level == upto) { break }\n }\n};\n\nObject.defineProperties( ParseContext.prototype, prototypeAccessors$6 );\n\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (var child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n var name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n } else if (name == \"li\") {\n prevItem = child;\n } else if (name) {\n prevItem = null;\n }\n }\n}\n\n// : (string) → [string]\n// Tokenize a style attribute into property/value pairs.\nfunction parseStyles(style) {\n var re = /\\s*([\\w-]+)\\s*:\\s*([^;]+)/g, m, result = [];\n while (m = re.exec(style)) { result.push(m[1], m[2].trim()); }\n return result\n}\n\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n var nodes = nodeType.schema.nodes;\n var loop = function ( name ) {\n var parent = nodes[name];\n if (!parent.allowsMarkType(markType)) { return }\n var seen = [], scan = function (match) {\n seen.push(match);\n for (var i = 0; i < match.edgeCount; i++) {\n var ref = match.edge(i);\n var type = ref.type;\n var next = ref.next;\n if (type == nodeType) { return true }\n if (seen.indexOf(next) < 0 && scan(next)) { return true }\n }\n };\n if (scan(parent.contentMatch)) { return { v: true } }\n };\n\n for (var name in nodes) {\n var returned = loop( name );\n\n if ( returned ) return returned.v;\n }\n}\n\nfunction findSameMarkInSet(mark, set) {\n for (var i = 0; i < set.length; i++) {\n if (mark.eq(set[i])) { return set[i] }\n }\n}\n\n// Mappable:: interface\n// There are several things that positions can be mapped through.\n// Such objects conform to this interface.\n//\n// map:: (pos: number, assoc: ?number) → number\n// Map a position through this object. When given, `assoc` (should\n// be -1 or 1, defaults to 1) determines with which side the\n// position is associated, which determines in which direction to\n// move when a chunk of content is inserted at the mapped position.\n//\n// mapResult:: (pos: number, assoc: ?number) → MapResult\n// Map a position, and return an object containing additional\n// information about the mapping. The result's `deleted` field tells\n// you whether the position was deleted (completely enclosed in a\n// replaced range) during the mapping. When content on only one side\n// is deleted, the position itself is only considered deleted when\n// `assoc` points in the direction of the deleted content.\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\n\nvar lower16 = 0xffff;\nvar factor16 = Math.pow(2, 16);\n\nfunction makeRecover(index, offset) { return index + offset * factor16 }\nfunction recoverIndex(value) { return value & lower16 }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16 }\n\n// ::- An object representing a mapped position with extra\n// information.\nvar MapResult = function MapResult(pos, deleted, recover) {\n if ( deleted === void 0 ) deleted = false;\n if ( recover === void 0 ) recover = null;\n\n // :: number The mapped version of the position.\n this.pos = pos;\n // :: bool Tells you whether the position was deleted, that is,\n // whether the step removed its surroundings from the document.\n this.deleted = deleted;\n this.recover = recover;\n};\n\n// :: class extends Mappable\n// A map describing the deletions and insertions made by a step, which\n// can be used to find the correspondence between positions in the\n// pre-step version of a document and the same position in the\n// post-step version.\nvar StepMap = function StepMap(ranges, inverted) {\n if ( inverted === void 0 ) inverted = false;\n\n this.ranges = ranges;\n this.inverted = inverted;\n};\n\nStepMap.prototype.recover = function recover (value) {\n var diff = 0, index = recoverIndex(value);\n if (!this.inverted) { for (var i = 0; i < index; i++)\n { diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1]; } }\n return this.ranges[index * 3] + diff + recoverOffset(value)\n};\n\n// : (number, ?number) → MapResult\nStepMap.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\n// : (number, ?number) → number\nStepMap.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, true) };\n\nStepMap.prototype._map = function _map (pos, assoc, simple) {\n var diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n var side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n var result = start + diff + (side < 0 ? 0 : newSize);\n if (simple) { return result }\n var recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n return new MapResult(result, assoc < 0 ? pos != start : pos != end, recover)\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff)\n};\n\nStepMap.prototype.touches = function touches (pos, recover) {\n var diff = 0, index = recoverIndex(recover);\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3) { return true }\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false\n};\n\n// :: ((oldStart: number, oldEnd: number, newStart: number, newEnd: number))\n// Calls the given function on each of the changed ranges included in\n// this map.\nStepMap.prototype.forEach = function forEach (f) {\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0, diff = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n};\n\n// :: () → StepMap\n// Create an inverted version of this map. The result can be used to\n// map positions in the post-step document to the pre-step document.\nStepMap.prototype.invert = function invert () {\n return new StepMap(this.ranges, !this.inverted)\n};\n\nStepMap.prototype.toString = function toString () {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges)\n};\n\n// :: (n: number) → StepMap\n// Create a map that moves all positions by offset `n` (which may be\n// negative). This can be useful when applying steps meant for a\n// sub-document to a larger document, or vice-versa.\nStepMap.offset = function offset (n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n])\n};\n\nStepMap.empty = new StepMap([]);\n\n// :: class extends Mappable\n// A mapping represents a pipeline of zero or more [step\n// maps](#transform.StepMap). It has special provisions for losslessly\n// handling mapping positions through a series of steps in which some\n// steps are inverted versions of earlier steps. (This comes up when\n// ‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\n// collaboration or history management.)\nvar Mapping = function Mapping(maps, mirror, from, to) {\n // :: [StepMap]\n // The step maps in this mapping.\n this.maps = maps || [];\n // :: number\n // The starting position in the `maps` array, used when `map` or\n // `mapResult` is called.\n this.from = from || 0;\n // :: number\n // The end position in the `maps` array.\n this.to = to == null ? this.maps.length : to;\n this.mirror = mirror;\n};\n\n// :: (?number, ?number) → Mapping\n// Create a mapping that maps only through a part of this one.\nMapping.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.maps.length;\n\n return new Mapping(this.maps, this.mirror, from, to)\n};\n\nMapping.prototype.copy = function copy () {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to)\n};\n\n// :: (StepMap, ?number)\n// Add a step map to the end of this mapping. If `mirrors` is\n// given, it should be the index of the step map that is the mirror\n// image of this one.\nMapping.prototype.appendMap = function appendMap (map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null) { this.setMirror(this.maps.length - 1, mirrors); }\n};\n\n// :: (Mapping)\n// Add all the step maps in a given mapping to this one (preserving\n// mirroring information).\nMapping.prototype.appendMapping = function appendMapping (mapping) {\n for (var i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : null);\n }\n};\n\n// :: (number) → ?number\n// Finds the offset of the step map that mirrors the map at the\n// given offset, in this mapping (as per the second argument to\n// `appendMap`).\nMapping.prototype.getMirror = function getMirror (n) {\n if (this.mirror) { for (var i = 0; i < this.mirror.length; i++)\n { if (this.mirror[i] == n) { return this.mirror[i + (i % 2 ? -1 : 1)] } } }\n};\n\nMapping.prototype.setMirror = function setMirror (n, m) {\n if (!this.mirror) { this.mirror = []; }\n this.mirror.push(n, m);\n};\n\n// :: (Mapping)\n// Append the inverse of the given mapping to this one.\nMapping.prototype.appendMappingInverted = function appendMappingInverted (mapping) {\n for (var i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : null);\n }\n};\n\n// :: () → Mapping\n// Create an inverted version of this mapping.\nMapping.prototype.invert = function invert () {\n var inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse\n};\n\n// : (number, ?number) → number\n// Map a position through this mapping.\nMapping.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n\n if (this.mirror) { return this._map(pos, assoc, true) }\n for (var i = this.from; i < this.to; i++)\n { pos = this.maps[i].map(pos, assoc); }\n return pos\n};\n\n// : (number, ?number) → MapResult\n// Map a position through this mapping, returning a mapping\n// result.\nMapping.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\nMapping.prototype._map = function _map (pos, assoc, simple) {\n var deleted = false;\n\n for (var i = this.from; i < this.to; i++) {\n var map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n var corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue\n }\n }\n\n if (result.deleted) { deleted = true; }\n pos = result.pos;\n }\n\n return simple ? pos : new MapResult(pos, deleted)\n};\n\nfunction TransformError(message) {\n var err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err\n}\n\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n\n// ::- Abstraction to build up and track an array of\n// [steps](#transform.Step) representing a document transformation.\n//\n// Most transforming methods return the `Transform` object itself, so\n// that they can be chained.\nvar Transform = function Transform(doc) {\n // :: Node\n // The current document (the result of applying the steps in the\n // transform).\n this.doc = doc;\n // :: [Step]\n // The steps in this transform.\n this.steps = [];\n // :: [Node]\n // The documents before each of the steps.\n this.docs = [];\n // :: Mapping\n // A mapping with the maps for each of the steps in this transform.\n this.mapping = new Mapping;\n};\n\nvar prototypeAccessors$2 = { before: { configurable: true },docChanged: { configurable: true } };\n\n// :: Node The starting document.\nprototypeAccessors$2.before.get = function () { return this.docs.length ? this.docs[0] : this.doc };\n\n// :: (step: Step) → this\n// Apply a new step in this transform, saving the result. Throws an\n// error when the step fails.\nTransform.prototype.step = function step (object) {\n var result = this.maybeStep(object);\n if (result.failed) { throw new TransformError(result.failed) }\n return this\n};\n\n// :: (Step) → StepResult\n// Try to apply a step in this transformation, ignoring it if it\n// fails. Returns the step result.\nTransform.prototype.maybeStep = function maybeStep (step) {\n var result = step.apply(this.doc);\n if (!result.failed) { this.addStep(step, result.doc); }\n return result\n};\n\n// :: bool\n// True when the document has been changed (when there are any\n// steps).\nprototypeAccessors$2.docChanged.get = function () {\n return this.steps.length > 0\n};\n\nTransform.prototype.addStep = function addStep (step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n};\n\nObject.defineProperties( Transform.prototype, prototypeAccessors$2 );\n\nfunction mustOverride() { throw new Error(\"Override me\") }\n\nvar stepsByID = Object.create(null);\n\n// ::- A step object represents an atomic change. It generally applies\n// only to the document it was created for, since the positions\n// stored in it will only make sense for that document.\n//\n// New steps are defined by creating classes that extend `Step`,\n// overriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\n// methods, and registering your class with a unique\n// JSON-serialization identifier using\n// [`Step.jsonID`](#transform.Step^jsonID).\nvar Step = function Step () {};\n\nStep.prototype.apply = function apply (_doc) { return mustOverride() };\n\n// :: () → StepMap\n// Get the step map that represents the changes made by this step,\n// and which can be used to transform between positions in the old\n// and the new document.\nStep.prototype.getMap = function getMap () { return StepMap.empty };\n\n// :: (doc: Node) → Step\n// Create an inverted version of this step. Needs the document as it\n// was before the step as argument.\nStep.prototype.invert = function invert (_doc) { return mustOverride() };\n\n// :: (mapping: Mappable) → ?Step\n// Map this step through a mappable thing, returning either a\n// version of that step with its positions adjusted, or `null` if\n// the step was entirely deleted by the mapping.\nStep.prototype.map = function map (_mapping) { return mustOverride() };\n\n// :: (other: Step) → ?Step\n// Try to merge this step with another one, to be applied directly\n// after it. Returns the merged step when possible, null if the\n// steps can't be merged.\nStep.prototype.merge = function merge (_other) { return null };\n\n// :: () → Object\n// Create a JSON-serializeable representation of this step. When\n// defining this for a custom subclass, make sure the result object\n// includes the step type's [JSON id](#transform.Step^jsonID) under\n// the `stepType` property.\nStep.prototype.toJSON = function toJSON () { return mustOverride() };\n\n// :: (Schema, Object) → Step\n// Deserialize a step from its JSON representation. Will call\n// through to the step class' own implementation of this method.\nStep.fromJSON = function fromJSON (schema, json) {\n if (!json || !json.stepType) { throw new RangeError(\"Invalid input for Step.fromJSON\") }\n var type = stepsByID[json.stepType];\n if (!type) { throw new RangeError((\"No step type \" + (json.stepType) + \" defined\")) }\n return type.fromJSON(schema, json)\n};\n\n// :: (string, constructor)\n// To be able to serialize steps to JSON, each step needs a string\n// ID to attach to its JSON representation. Use this method to\n// register an ID for your step classes. Try to pick something\n// that's unlikely to clash with steps from other modules.\nStep.jsonID = function jsonID (id, stepClass) {\n if (id in stepsByID) { throw new RangeError(\"Duplicate use of step JSON ID \" + id) }\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass\n};\n\n// ::- The result of [applying](#transform.Step.apply) a step. Contains either a\n// new document or a failure value.\nvar StepResult = function StepResult(doc, failed) {\n // :: ?Node The transformed document.\n this.doc = doc;\n // :: ?string Text providing information about a failed step.\n this.failed = failed;\n};\n\n// :: (Node) → StepResult\n// Create a successful step result.\nStepResult.ok = function ok (doc) { return new StepResult(doc, null) };\n\n// :: (string) → StepResult\n// Create a failed step result.\nStepResult.fail = function fail (message) { return new StepResult(null, message) };\n\n// :: (Node, number, number, Slice) → StepResult\n// Call [`Node.replace`](#model.Node.replace) with the given\n// arguments. Create a successful result if it succeeds, and a\n// failed one if it throws a `ReplaceError`.\nStepResult.fromReplace = function fromReplace (doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice))\n } catch (e) {\n if (e instanceof ReplaceError) { return StepResult.fail(e.message) }\n throw e\n }\n};\n\n// ::- Replace a part of the document with a slice of new content.\nvar ReplaceStep = /*@__PURE__*/(function (Step) {\n function ReplaceStep(from, to, slice, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceStep.__proto__ = Step;\n ReplaceStep.prototype = Object.create( Step && Step.prototype );\n ReplaceStep.prototype.constructor = ReplaceStep;\n\n ReplaceStep.prototype.apply = function apply (doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n { return StepResult.fail(\"Structure replace would overwrite content\") }\n return StepResult.fromReplace(doc, this.from, this.to, this.slice)\n };\n\n ReplaceStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.to - this.from, this.slice.size])\n };\n\n ReplaceStep.prototype.invert = function invert (doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to))\n };\n\n ReplaceStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted) { return null }\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice)\n };\n\n ReplaceStep.prototype.merge = function merge (other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure) { return null }\n\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n var slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure)\n } else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n var slice$1 = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice$1, this.structure)\n } else {\n return null\n }\n };\n\n ReplaceStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replace\", from: this.from, to: this.to};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\") }\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure)\n };\n\n return ReplaceStep;\n}(Step));\n\nStep.jsonID(\"replace\", ReplaceStep);\n\n// ::- Replace a part of the document with a slice of content, but\n// preserve a range of the replaced content by moving it into the\n// slice.\nvar ReplaceAroundStep = /*@__PURE__*/(function (Step) {\n function ReplaceAroundStep(from, to, gapFrom, gapTo, slice, insert, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: number\n // The start of preserved range.\n this.gapFrom = gapFrom;\n // :: number\n // The end of preserved range.\n this.gapTo = gapTo;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n // :: number\n // The position in the slice where the preserved range should be\n // inserted.\n this.insert = insert;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceAroundStep.__proto__ = Step;\n ReplaceAroundStep.prototype = Object.create( Step && Step.prototype );\n ReplaceAroundStep.prototype.constructor = ReplaceAroundStep;\n\n ReplaceAroundStep.prototype.apply = function apply (doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n { return StepResult.fail(\"Structure gap-replace would overwrite content\") }\n\n var gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n { return StepResult.fail(\"Gap is not a flat range\") }\n var inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted) { return StepResult.fail(\"Content does not fit in gap\") }\n return StepResult.fromReplace(doc, this.from, this.to, inserted)\n };\n\n ReplaceAroundStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert])\n };\n\n ReplaceAroundStep.prototype.invert = function invert (doc) {\n var gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap,\n this.from + this.insert, this.from + this.insert + gap,\n doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from),\n this.gapFrom - this.from, this.structure)\n };\n\n ReplaceAroundStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n var gapFrom = mapping.map(this.gapFrom, -1), gapTo = mapping.map(this.gapTo, 1);\n if ((from.deleted && to.deleted) || gapFrom < from.pos || gapTo > to.pos) { return null }\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure)\n };\n\n ReplaceAroundStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceAroundStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\") }\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo,\n Slice.fromJSON(schema, json.slice), json.insert, !!json.structure)\n };\n\n return ReplaceAroundStep;\n}(Step));\n\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\n\nfunction contentBetween(doc, from, to) {\n var $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n var next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf) { return true }\n next = next.firstChild;\n dist--;\n }\n }\n return false\n}\n\n// :: (NodeRange, number) → this\n// Split the content in the given range off from its parent, if there\n// is sibling content before or after it, and move it up the tree to\n// the depth specified by `target`. You'll probably want to use\n// [`liftTarget`](#transform.liftTarget) to compute `target`, to make\n// sure the lift is valid.\nTransform.prototype.lift = function(range, target) {\n var $from = range.$from;\n var $to = range.$to;\n var depth = range.depth;\n\n var gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n var start = gapStart, end = gapEnd;\n\n var before = Fragment.empty, openStart = 0;\n for (var d = depth, splitting = false; d > target; d--)\n { if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n } else {\n start--;\n } }\n var after = Fragment.empty, openEnd = 0;\n for (var d$1 = depth, splitting$1 = false; d$1 > target; d$1--)\n { if (splitting$1 || $to.after(d$1 + 1) < $to.end(d$1)) {\n splitting$1 = true;\n after = Fragment.from($to.node(d$1).copy(after));\n openEnd++;\n } else {\n end++;\n } }\n\n return this.step(new ReplaceAroundStep(start, end, gapStart, gapEnd,\n new Slice(before.append(after), openStart, openEnd),\n before.size - openStart, true))\n};\n\n// :: (NodeRange, [{type: NodeType, attrs: ?Object}]) → this\n// Wrap the given [range](#model.NodeRange) in the given set of wrappers.\n// The wrappers are assumed to be valid in this position, and should\n// probably be computed with [`findWrapping`](#transform.findWrapping).\nTransform.prototype.wrap = function(range, wrappers) {\n var content = Fragment.empty;\n for (var i = wrappers.length - 1; i >= 0; i--)\n { content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content)); }\n\n var start = range.start, end = range.end;\n return this.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true))\n};\n\n// :: (number, ?number, NodeType, ?Object) → this\n// Set the type of all textblocks (partly) between `from` and `to` to\n// the given node type with the given attributes.\nTransform.prototype.setBlockType = function(from, to, type, attrs) {\n var this$1$1 = this;\n if ( to === void 0 ) to = from;\n\n if (!type.isTextblock) { throw new RangeError(\"Type given to setBlockType should be a textblock\") }\n var mapFrom = this.steps.length;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(this$1$1.doc, this$1$1.mapping.slice(mapFrom).map(pos), type)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n this$1$1.clearIncompatible(this$1$1.mapping.slice(mapFrom).map(pos, 1), type);\n var mapping = this$1$1.mapping.slice(mapFrom);\n var startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n this$1$1.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1,\n new Slice(Fragment.from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n return false\n }\n });\n return this\n};\n\nfunction canChangeType(doc, pos, type) {\n var $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type)\n}\n\n// :: (number, ?NodeType, ?Object, ?[Mark]) → this\n// Change the type, attributes, and/or marks of the node at `pos`.\n// When `type` isn't given, the existing node type is preserved,\nTransform.prototype.setNodeMarkup = function(pos, type, attrs, marks) {\n var node = this.doc.nodeAt(pos);\n if (!node) { throw new RangeError(\"No node at given position\") }\n if (!type) { type = node.type; }\n var newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n { return this.replaceWith(pos, pos + node.nodeSize, newNode) }\n\n if (!type.validContent(node.content))\n { throw new RangeError(\"Invalid content for node type \" + type.name) }\n\n return this.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1,\n new Slice(Fragment.from(newNode), 0, 0), 1, true))\n};\n\n// :: (number, ?number, ?[?{type: NodeType, attrs: ?Object}]) → this\n// Split the node at the given position, and optionally, if `depth` is\n// greater than one, any number of nodes above that. By default, the\n// parts split off will inherit the node type of the original node.\n// This can be changed by passing an array of types and attributes to\n// use after the split.\nTransform.prototype.split = function(pos, depth, typesAfter) {\n if ( depth === void 0 ) depth = 1;\n\n var $pos = this.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (var d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n var typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n return this.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true))\n};\n\n// :: (number, ?number) → this\n// Join the blocks around the given position. If depth is 2, their\n// last and first siblings are also joined, and so on.\nTransform.prototype.join = function(pos, depth) {\n if ( depth === void 0 ) depth = 1;\n\n var step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n return this.step(step)\n};\n\n// :: (Node, number, NodeType) → ?number\n// Try to find a point where a node of the given type can be inserted\n// near `pos`, by searching up the node hierarchy when `pos` itself\n// isn't a valid place but is at the start or end of a node. Return\n// null if no position was found.\nfunction insertPoint(doc, pos, nodeType) {\n var $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType)) { return pos }\n\n if ($pos.parentOffset == 0)\n { for (var d = $pos.depth - 1; d >= 0; d--) {\n var index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType)) { return $pos.before(d + 1) }\n if (index > 0) { return null }\n } }\n if ($pos.parentOffset == $pos.parent.content.size)\n { for (var d$1 = $pos.depth - 1; d$1 >= 0; d$1--) {\n var index$1 = $pos.indexAfter(d$1);\n if ($pos.node(d$1).canReplaceWith(index$1, index$1, nodeType)) { return $pos.after(d$1 + 1) }\n if (index$1 < $pos.node(d$1).childCount) { return null }\n } }\n}\n\nfunction mapFragment(fragment, f, parent) {\n var mapped = [];\n for (var i = 0; i < fragment.childCount; i++) {\n var child = fragment.child(i);\n if (child.content.size) { child = child.copy(mapFragment(child.content, f, child)); }\n if (child.isInline) { child = f(child, parent, i); }\n mapped.push(child);\n }\n return Fragment.fromArray(mapped)\n}\n\n// ::- Add a mark to all inline content between two positions.\nvar AddMarkStep = /*@__PURE__*/(function (Step) {\n function AddMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the marked range.\n this.from = from;\n // :: number\n // The end of the marked range.\n this.to = to;\n // :: Mark\n // The mark to add.\n this.mark = mark;\n }\n\n if ( Step ) AddMarkStep.__proto__ = Step;\n AddMarkStep.prototype = Object.create( Step && Step.prototype );\n AddMarkStep.prototype.constructor = AddMarkStep;\n\n AddMarkStep.prototype.apply = function apply (doc) {\n var this$1$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n var parent = $from.node($from.sharedDepth(this.to));\n var slice = new Slice(mapFragment(oldSlice.content, function (node, parent) {\n if (!node.isAtom || !parent.type.allowsMarkType(this$1$1.mark.type)) { return node }\n return node.mark(this$1$1.mark.addToSet(node.marks))\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n AddMarkStep.prototype.invert = function invert () {\n return new RemoveMarkStep(this.from, this.to, this.mark)\n };\n\n AddMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new AddMarkStep(from.pos, to.pos, this.mark)\n };\n\n AddMarkStep.prototype.merge = function merge (other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new AddMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n AddMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n AddMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\") }\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return AddMarkStep;\n}(Step));\n\nStep.jsonID(\"addMark\", AddMarkStep);\n\n// ::- Remove a mark from all inline content between two positions.\nvar RemoveMarkStep = /*@__PURE__*/(function (Step) {\n function RemoveMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the unmarked range.\n this.from = from;\n // :: number\n // The end of the unmarked range.\n this.to = to;\n // :: Mark\n // The mark to remove.\n this.mark = mark;\n }\n\n if ( Step ) RemoveMarkStep.__proto__ = Step;\n RemoveMarkStep.prototype = Object.create( Step && Step.prototype );\n RemoveMarkStep.prototype.constructor = RemoveMarkStep;\n\n RemoveMarkStep.prototype.apply = function apply (doc) {\n var this$1$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to);\n var slice = new Slice(mapFragment(oldSlice.content, function (node) {\n return node.mark(this$1$1.mark.removeFromSet(node.marks))\n }), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n RemoveMarkStep.prototype.invert = function invert () {\n return new AddMarkStep(this.from, this.to, this.mark)\n };\n\n RemoveMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new RemoveMarkStep(from.pos, to.pos, this.mark)\n };\n\n RemoveMarkStep.prototype.merge = function merge (other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new RemoveMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n RemoveMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n RemoveMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\") }\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return RemoveMarkStep;\n}(Step));\n\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n\n// :: (number, number, Mark) → this\n// Add the given mark to the inline content between `from` and `to`.\nTransform.prototype.addMark = function(from, to, mark) {\n var this$1$1 = this;\n\n var removed = [], added = [], removing = null, adding = null;\n this.doc.nodesBetween(from, to, function (node, pos, parent) {\n if (!node.isInline) { return }\n var marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n var start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n var newSet = mark.addToSet(marks);\n\n for (var i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n { removing.to = end; }\n else\n { removed.push(removing = new RemoveMarkStep(start, end, marks[i])); }\n }\n }\n\n if (adding && adding.to == start)\n { adding.to = end; }\n else\n { added.push(adding = new AddMarkStep(start, end, mark)); }\n }\n });\n\n removed.forEach(function (s) { return this$1$1.step(s); });\n added.forEach(function (s) { return this$1$1.step(s); });\n return this\n};\n\n// :: (number, number, ?union) → this\n// Remove marks from inline nodes between `from` and `to`. When `mark`\n// is a single mark, remove precisely that mark. When it is a mark type,\n// remove all marks of that type. When it is null, remove all marks of\n// any type.\nTransform.prototype.removeMark = function(from, to, mark) {\n var this$1$1 = this;\n if ( mark === void 0 ) mark = null;\n\n var matched = [], step = 0;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (!node.isInline) { return }\n step++;\n var toRemove = null;\n if (mark instanceof MarkType) {\n var set = node.marks, found;\n while (found = mark.isInSet(set)) {\n(toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n } else if (mark) {\n if (mark.isInSet(node.marks)) { toRemove = [mark]; }\n } else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n var end = Math.min(pos + node.nodeSize, to);\n for (var i = 0; i < toRemove.length; i++) {\n var style = toRemove[i], found$1 = (void 0);\n for (var j = 0; j < matched.length; j++) {\n var m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style)) { found$1 = m; }\n }\n if (found$1) {\n found$1.to = end;\n found$1.step = step;\n } else {\n matched.push({style: style, from: Math.max(pos, from), to: end, step: step});\n }\n }\n }\n });\n matched.forEach(function (m) { return this$1$1.step(new RemoveMarkStep(m.from, m.to, m.style)); });\n return this\n};\n\n// :: (number, NodeType, ?ContentMatch) → this\n// Removes all marks and nodes from the content of the node at `pos`\n// that don't match the given new parent node type. Accepts an\n// optional starting [content match](#model.ContentMatch) as third\n// argument.\nTransform.prototype.clearIncompatible = function(pos, parentType, match) {\n if ( match === void 0 ) match = parentType.contentMatch;\n\n var node = this.doc.nodeAt(pos);\n var delSteps = [], cur = pos + 1;\n for (var i = 0; i < node.childCount; i++) {\n var child = node.child(i), end = cur + child.nodeSize;\n var allowed = match.matchType(child.type, child.attrs);\n if (!allowed) {\n delSteps.push(new ReplaceStep(cur, end, Slice.empty));\n } else {\n match = allowed;\n for (var j = 0; j < child.marks.length; j++) { if (!parentType.allowsMarkType(child.marks[j].type))\n { this.step(new RemoveMarkStep(cur, end, child.marks[j])); } }\n }\n cur = end;\n }\n if (!match.validEnd) {\n var fill = match.fillBefore(Fragment.empty, true);\n this.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (var i$1 = delSteps.length - 1; i$1 >= 0; i$1--) { this.step(delSteps[i$1]); }\n return this\n};\n\n// :: (Node, number, ?number, ?Slice) → ?Step\n// ‘Fit’ a slice into a given position in the document, producing a\n// [step](#transform.Step) that inserts it. Will return null if\n// there's no meaningful way to insert the slice here, or inserting it\n// would be a no-op (an empty slice over an empty range).\nfunction replaceStep(doc, from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n if (from == to && !slice.size) { return null }\n\n var $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice)) { return new ReplaceStep(from, to, slice) }\n return new Fitter($from, $to, slice).fit()\n}\n\n// :: (number, ?number, ?Slice) → this\n// Replace the part of the document between `from` and `to` with the\n// given `slice`.\nTransform.prototype.replace = function(from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n var step = replaceStep(this.doc, from, to, slice);\n if (step) { this.step(step); }\n return this\n};\n\n// :: (number, number, union) → this\n// Replace the given range with the given content, which may be a\n// fragment, node, or array of nodes.\nTransform.prototype.replaceWith = function(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the content between the given positions.\nTransform.prototype.delete = function(from, to) {\n return this.replace(from, to, Slice.empty)\n};\n\n// :: (number, union) → this\n// Insert the given content at the given position.\nTransform.prototype.insert = function(pos, content) {\n return this.replaceWith(pos, pos, content)\n};\n\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content)\n}\n\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nvar Fitter = function Fitter($from, $to, slice) {\n this.$to = $to;\n this.$from = $from;\n this.unplaced = slice;\n\n this.frontier = [];\n for (var i = 0; i <= $from.depth; i++) {\n var node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n\n this.placed = Fragment.empty;\n for (var i$1 = $from.depth; i$1 > 0; i$1--)\n { this.placed = Fragment.from($from.node(i$1).copy(this.placed)); }\n};\n\nvar prototypeAccessors$1$1 = { depth: { configurable: true } };\n\nprototypeAccessors$1$1.depth.get = function () { return this.frontier.length - 1 };\n\nFitter.prototype.fit = function fit () {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n var fit = this.findFittable();\n if (fit) { this.placeNodes(fit); }\n else { this.openMore() || this.dropNode(); }\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n var moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n var $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to) { return null }\n\n // If closing to `$to` succeeded, create a step\n var content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--; openEnd--;\n }\n var slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n { return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize) }\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n { return new ReplaceStep($from.pos, $to.pos, slice) }\n};\n\n// Find a position on the start spine of `this.unplaced` that has\n// content that can be moved somewhere on the frontier. Returns two\n// depths, one for the slice and one for the frontier.\nFitter.prototype.findFittable = function findFittable () {\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (var pass = 1; pass <= 2; pass++) {\n for (var sliceDepth = this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n var fragment = (void 0), parent = (void 0);\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n } else {\n fragment = this.unplaced.content;\n }\n var first = fragment.firstChild;\n for (var frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n var ref = this.frontier[frontierDepth];\n var type = ref.type;\n var match = ref.match;\n var wrap = (void 0), inject = (void 0);\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : type.compatibleContent(parent.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, inject: inject} }\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, wrap: wrap} }\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type)) { break }\n }\n }\n }\n};\n\nFitter.prototype.openMore = function openMore () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf) { return false }\n this.unplaced = new Slice(content, openStart + 1,\n Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true\n};\n\nFitter.prototype.dropNode = function dropNode () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n var openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1,\n openAtEnd ? openStart - 1 : openEnd);\n } else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n};\n\n// : ({sliceDepth: number, frontierDepth: number, parent: ?Node, wrap: ?[NodeType], inject: ?Fragment})\n// Move content from the unplaced slice at `sliceDepth` to the\n// frontier node at `frontierDepth`. Close that frontier node when\n// applicable.\nFitter.prototype.placeNodes = function placeNodes (ref) {\n var sliceDepth = ref.sliceDepth;\n var frontierDepth = ref.frontierDepth;\n var parent = ref.parent;\n var inject = ref.inject;\n var wrap = ref.wrap;\n\n while (this.depth > frontierDepth) { this.closeFrontierNode(); }\n if (wrap) { for (var i = 0; i < wrap.length; i++) { this.openFrontierNode(wrap[i]); } }\n\n var slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n var openStart = slice.openStart - sliceDepth;\n var taken = 0, add = [];\n var ref$1 = this.frontier[frontierDepth];\n var match = ref$1.match;\n var type = ref$1.type;\n if (inject) {\n for (var i$1 = 0; i$1 < inject.childCount; i$1++) { add.push(inject.child(i$1)); }\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n var openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n var next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches) { break }\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0,\n taken == fragment.childCount ? openEndCount : -1));\n }\n }\n var toEnd = taken == fragment.childCount;\n if (!toEnd) { openEndCount = -1; }\n\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n { this.closeFrontierNode(); }\n\n // Add new frontier nodes for any open nodes at the end.\n for (var i$2 = 0, cur = fragment; i$2 < openEndCount; i$2++) {\n var node = cur.lastChild;\n this.frontier.push({type: node.type, match: node.contentMatchAt(node.childCount)});\n cur = node.content;\n }\n\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1),\n sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n};\n\nFitter.prototype.mustMoveInline = function mustMoveInline () {\n if (!this.$to.parent.isTextblock || this.$to.end() == this.$to.pos) { return -1 }\n var top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth)) { return -1 }\n\n var ref = this.$to;\n var depth = ref.depth;\n var after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth)) { ++after; }\n return after\n};\n\nFitter.prototype.findCloseLevel = function findCloseLevel ($to) {\n scan: for (var i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n var ref = this.frontier[i];\n var match = ref.match;\n var type = ref.type;\n var dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n var fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit) { continue }\n for (var d = i - 1; d >= 0; d--) {\n var ref$1 = this.frontier[d];\n var match$1 = ref$1.match;\n var type$1 = ref$1.type;\n var matches = contentAfterFits($to, d, type$1, match$1, true);\n if (!matches || matches.childCount) { continue scan }\n }\n return {depth: i, fit: fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to}\n }\n};\n\nFitter.prototype.close = function close ($to) {\n var close = this.findCloseLevel($to);\n if (!close) { return null }\n\n while (this.depth > close.depth) { this.closeFrontierNode(); }\n if (close.fit.childCount) { this.placed = addToFragment(this.placed, close.depth, close.fit); }\n $to = close.move;\n for (var d = close.depth + 1; d <= $to.depth; d++) {\n var node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to\n};\n\nFitter.prototype.openFrontierNode = function openFrontierNode (type, attrs, content) {\n var top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({type: type, match: type.contentMatch});\n};\n\nFitter.prototype.closeFrontierNode = function closeFrontierNode () {\n var open = this.frontier.pop();\n var add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount) { this.placed = addToFragment(this.placed, this.frontier.length, add); }\n};\n\nObject.defineProperties( Fitter.prototype, prototypeAccessors$1$1 );\n\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0) { return fragment.cutByIndex(count) }\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)))\n}\n\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0) { return fragment.append(content) }\n return fragment.replaceChild(fragment.childCount - 1,\n fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)))\n}\n\nfunction contentAt(fragment, depth) {\n for (var i = 0; i < depth; i++) { fragment = fragment.firstChild.content; }\n return fragment\n}\n\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0) { return node }\n var frag = node.content;\n if (openStart > 1)\n { frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0)); }\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0) { frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true)); }\n }\n return node.copy(frag)\n}\n\nfunction contentAfterFits($to, depth, type, match, open) {\n var node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type)) { return null }\n var fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null\n}\n\nfunction invalidMarks(type, fragment, start) {\n for (var i = start; i < fragment.childCount; i++)\n { if (!type.allowsMarks(fragment.child(i).marks)) { return true } }\n return false\n}\n\n// :: (number, number, Slice) → this\n// Replace a range of the document with a given slice, using `from`,\n// `to`, and the slice's [`openStart`](#model.Slice.openStart) property\n// as hints, rather than fixed start and end points. This method may\n// grow the replaced area or close open nodes in the slice in order to\n// get a fit that is more in line with WYSIWYG expectations, by\n// dropping fully covered parent nodes of the replaced region when\n// they are marked [non-defining](#model.NodeSpec.defining), or\n// including an open parent node from the slice that _is_ marked as\n// [defining](#model.NodeSpec.defining).\n//\n// This is the method, for example, to handle paste. The similar\n// [`replace`](#transform.Transform.replace) method is a more\n// primitive tool which will _not_ move the start and end of its given\n// range, and is useful in situations where you need more precise\n// control over what happens.\nTransform.prototype.replaceRange = function(from, to, slice) {\n if (!slice.size) { return this.deleteRange(from, to) }\n\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n { return this.step(new ReplaceStep(from, to, slice)) }\n\n var targetDepths = coveredDepths($from, this.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0) { targetDepths.pop(); }\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n var preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (var d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n var spec = $from.node(d).type.spec;\n if (spec.defining || spec.isolating) { break }\n if (targetDepths.indexOf(d) > -1) { preferredTarget = d; }\n else if ($from.before(d) == pos) { targetDepths.splice(1, 0, -d); }\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n var preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n\n var leftNodes = [], preferredDepth = slice.openStart;\n for (var content = slice.content, i = 0;; i++) {\n var node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart) { break }\n content = node.content;\n }\n // Back up if the node directly above openStart, or the node above\n // that separated only by a non-defining textblock node, is defining.\n if (preferredDepth > 0 && leftNodes[preferredDepth - 1].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 1].type)\n { preferredDepth -= 1; }\n else if (preferredDepth >= 2 && leftNodes[preferredDepth - 1].isTextblock && leftNodes[preferredDepth - 2].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 2].type)\n { preferredDepth -= 2; }\n\n for (var j = slice.openStart; j >= 0; j--) {\n var openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n var insert = leftNodes[openDepth];\n if (!insert) { continue }\n for (var i$1 = 0; i$1 < targetDepths.length; i$1++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n var targetDepth = targetDepths[(i$1 + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) { expand = false; targetDepth = -targetDepth; }\n var parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n { return this.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to,\n new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth),\n openDepth, slice.openEnd)) }\n }\n }\n\n var startSteps = this.steps.length;\n for (var i$2 = targetDepths.length - 1; i$2 >= 0; i$2--) {\n this.replace(from, to, slice);\n if (this.steps.length > startSteps) { break }\n var depth = targetDepths[i$2];\n if (depth < 0) { continue }\n from = $from.before(depth); to = $to.after(depth);\n }\n return this\n};\n\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n var first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n var match = parent.contentMatchAt(0);\n var start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment\n}\n\n// :: (number, number, Node) → this\n// Replace the given range with a node, but use `from` and `to` as\n// hints, rather than precise positions. When from and to are the same\n// and are at the start or end of a parent node in which the given\n// node doesn't fit, this method may _move_ them out towards a parent\n// that does allow the given node to be placed. When the given range\n// completely covers a parent node, this method may completely replace\n// that parent node.\nTransform.prototype.replaceRangeWith = function(from, to, node) {\n if (!node.isInline && from == to && this.doc.resolve(from).parent.content.size) {\n var point = insertPoint(this.doc, from, node.type);\n if (point != null) { from = to = point; }\n }\n return this.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the given range, expanding it to cover fully covered\n// parent nodes until a valid replace is found.\nTransform.prototype.deleteRange = function(from, to) {\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n var covered = coveredDepths($from, $to);\n for (var i = 0; i < covered.length; i++) {\n var depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n { return this.delete($from.start(depth), $to.end(depth)) }\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n { return this.delete($from.before(depth), $to.after(depth)) }\n }\n for (var d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n { return this.delete($from.before(d), to) }\n }\n return this.delete(from, to)\n};\n\n// : (ResolvedPos, ResolvedPos) → [number]\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n var result = [], minDepth = Math.min($from.depth, $to.depth);\n for (var d = minDepth; d >= 0; d--) {\n var start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating) { break }\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n { result.push(d); }\n }\n return result\n}\n\nvar classesById = Object.create(null);\n\n// ::- Superclass for editor selections. Every selection type should\n// extend this. Should not be instantiated directly.\nvar Selection = function Selection($anchor, $head, ranges) {\n // :: [SelectionRange]\n // The ranges covered by the selection.\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n // :: ResolvedPos\n // The resolved anchor of the selection (the side that stays in\n // place when the selection is modified).\n this.$anchor = $anchor;\n // :: ResolvedPos\n // The resolved head of the selection (the side that moves when\n // the selection is modified).\n this.$head = $head;\n};\n\nvar prototypeAccessors = { anchor: { configurable: true },head: { configurable: true },from: { configurable: true },to: { configurable: true },$from: { configurable: true },$to: { configurable: true },empty: { configurable: true } };\n\n// :: number\n// The selection's anchor, as an unresolved position.\nprototypeAccessors.anchor.get = function () { return this.$anchor.pos };\n\n// :: number\n// The selection's head.\nprototypeAccessors.head.get = function () { return this.$head.pos };\n\n// :: number\n// The lower bound of the selection's main range.\nprototypeAccessors.from.get = function () { return this.$from.pos };\n\n// :: number\n// The upper bound of the selection's main range.\nprototypeAccessors.to.get = function () { return this.$to.pos };\n\n// :: ResolvedPos\n// The resolved lowerbound of the selection's main range.\nprototypeAccessors.$from.get = function () {\n return this.ranges[0].$from\n};\n\n// :: ResolvedPos\n// The resolved upper bound of the selection's main range.\nprototypeAccessors.$to.get = function () {\n return this.ranges[0].$to\n};\n\n// :: bool\n// Indicates whether the selection contains any content.\nprototypeAccessors.empty.get = function () {\n var ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++)\n { if (ranges[i].$from.pos != ranges[i].$to.pos) { return false } }\n return true\n};\n\n// eq:: (Selection) → bool\n// Test whether the selection is the same as another selection.\n\n// map:: (doc: Node, mapping: Mappable) → Selection\n// Map this selection through a [mappable](#transform.Mappable) thing. `doc`\n// should be the new document to which we are mapping.\n\n// :: () → Slice\n// Get the content of this selection as a slice.\nSelection.prototype.content = function content () {\n return this.$from.node(0).slice(this.from, this.to, true)\n};\n\n// :: (Transaction, ?Slice)\n// Replace the selection with a slice or, if no slice is given,\n// delete the selection. Will append to the given transaction.\nSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n var lastNode = content.content.lastChild, lastParent = null;\n for (var i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i$1 = 0; i$1 < ranges.length; i$1++) {\n var ref = ranges[i$1];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i$1 ? Slice.empty : content);\n if (i$1 == 0)\n { selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1); }\n }\n};\n\n// :: (Transaction, Node)\n// Replace the selection with the given node, appending the changes\n// to the given transaction.\nSelection.prototype.replaceWith = function replaceWith (tr, node) {\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n var from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n } else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n};\n\n// toJSON:: () → Object\n// Convert the selection to a JSON representation. When implementing\n// this for a custom selection class, make sure to give the object a\n// `type` property whose value matches the ID under which you\n// [registered](#state.Selection^jsonID) your class.\n\n// :: (ResolvedPos, number, ?bool) → ?Selection\n// Find a valid cursor or leaf node selection starting at the given\n// position and searching back if `dir` is negative, and forward if\n// positive. When `textOnly` is true, only consider cursor\n// selections. Will return null when no valid selection position is\n// found.\nSelection.findFrom = function findFrom ($pos, dir, textOnly) {\n var inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner) { return inner }\n\n for (var depth = $pos.depth - 1; depth >= 0; depth--) {\n var found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found) { return found }\n }\n};\n\n// :: (ResolvedPos, ?number) → Selection\n// Find a valid cursor or leaf node selection near the given\n// position. Searches forward first by default, but if `bias` is\n// negative, it will search backwards first.\nSelection.near = function near ($pos, bias) {\n if ( bias === void 0 ) bias = 1;\n\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0))\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the start of\n// the given document. Will return an\n// [`AllSelection`](#state.AllSelection) if no valid position\n// exists.\nSelection.atStart = function atStart (doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc)\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the end of the\n// given document.\nSelection.atEnd = function atEnd (doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc)\n};\n\n// :: (Node, Object) → Selection\n// Deserialize the JSON representation of a selection. Must be\n// implemented for custom classes (as a static class method).\nSelection.fromJSON = function fromJSON (doc, json) {\n if (!json || !json.type) { throw new RangeError(\"Invalid input for Selection.fromJSON\") }\n var cls = classesById[json.type];\n if (!cls) { throw new RangeError((\"No selection type \" + (json.type) + \" defined\")) }\n return cls.fromJSON(doc, json)\n};\n\n// :: (string, constructor)\n// To be able to deserialize selections from JSON, custom selection\n// classes must register themselves with an ID string, so that they\n// can be disambiguated. Try to pick something that's unlikely to\n// clash with classes from other modules.\nSelection.jsonID = function jsonID (id, selectionClass) {\n if (id in classesById) { throw new RangeError(\"Duplicate use of selection JSON ID \" + id) }\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass\n};\n\n// :: () → SelectionBookmark\n// Get a [bookmark](#state.SelectionBookmark) for this selection,\n// which is a value that can be mapped without having access to a\n// current document, and later resolved to a real selection for a\n// given document again. (This is used mostly by the history to\n// track and restore old selections.) The default implementation of\n// this method just converts the selection to a text selection and\n// returns the bookmark for that.\nSelection.prototype.getBookmark = function getBookmark () {\n return TextSelection.between(this.$anchor, this.$head).getBookmark()\n};\n\nObject.defineProperties( Selection.prototype, prototypeAccessors );\n\n// :: bool\n// Controls whether, when a selection of this type is active in the\n// browser, the selected range should be visible to the user. Defaults\n// to `true`.\nSelection.prototype.visible = true;\n\n// SelectionBookmark:: interface\n// A lightweight, document-independent representation of a selection.\n// You can define a custom bookmark type for a custom selection class\n// to make the history handle it well.\n//\n// map:: (mapping: Mapping) → SelectionBookmark\n// Map the bookmark through a set of changes.\n//\n// resolve:: (doc: Node) → Selection\n// Resolve the bookmark to a real selection again. This may need to\n// do some error checking and may fall back to a default (usually\n// [`TextSelection.between`](#state.TextSelection^between)) if\n// mapping made the bookmark invalid.\n\n// ::- Represents a selected range in a document.\nvar SelectionRange = function SelectionRange($from, $to) {\n // :: ResolvedPos\n // The lower bound of the range.\n this.$from = $from;\n // :: ResolvedPos\n // The upper bound of the range.\n this.$to = $to;\n};\n\n// ::- A text selection represents a classical editor selection, with\n// a head (the moving side) and anchor (immobile side), both of which\n// point into textblock nodes. It can be empty (a regular cursor\n// position).\nvar TextSelection = /*@__PURE__*/(function (Selection) {\n function TextSelection($anchor, $head) {\n if ( $head === void 0 ) $head = $anchor;\n\n Selection.call(this, $anchor, $head);\n }\n\n if ( Selection ) TextSelection.__proto__ = Selection;\n TextSelection.prototype = Object.create( Selection && Selection.prototype );\n TextSelection.prototype.constructor = TextSelection;\n\n var prototypeAccessors$1 = { $cursor: { configurable: true } };\n\n // :: ?ResolvedPos\n // Returns a resolved position if this is a cursor selection (an\n // empty text selection), and null otherwise.\n prototypeAccessors$1.$cursor.get = function () { return this.$anchor.pos == this.$head.pos ? this.$head : null };\n\n TextSelection.prototype.map = function map (doc, mapping) {\n var $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent) { return Selection.near($head) }\n var $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head)\n };\n\n TextSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n Selection.prototype.replace.call(this, tr, content);\n if (content == Slice.empty) {\n var marks = this.$from.marksAcross(this.$to);\n if (marks) { tr.ensureMarks(marks); }\n }\n };\n\n TextSelection.prototype.eq = function eq (other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head\n };\n\n TextSelection.prototype.getBookmark = function getBookmark () {\n return new TextBookmark(this.anchor, this.head)\n };\n\n TextSelection.prototype.toJSON = function toJSON () {\n return {type: \"text\", anchor: this.anchor, head: this.head}\n };\n\n TextSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n { throw new RangeError(\"Invalid input for TextSelection.fromJSON\") }\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head))\n };\n\n // :: (Node, number, ?number) → TextSelection\n // Create a text selection from non-resolved positions.\n TextSelection.create = function create (doc, anchor, head) {\n if ( head === void 0 ) head = anchor;\n\n var $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head))\n };\n\n // :: (ResolvedPos, ResolvedPos, ?number) → Selection\n // Return a text selection that spans the given positions or, if\n // they aren't text positions, find a text selection near them.\n // `bias` determines whether the method searches forward (default)\n // or backwards (negative number) first. Will fall back to calling\n // [`Selection.near`](#state.Selection^near) when the document\n // doesn't contain a valid text position.\n TextSelection.between = function between ($anchor, $head, bias) {\n var dPos = $anchor.pos - $head.pos;\n if (!bias || dPos) { bias = dPos >= 0 ? 1 : -1; }\n if (!$head.parent.inlineContent) {\n var found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found) { $head = found.$head; }\n else { return Selection.near($head, bias) }\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n } else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0)) { $anchor = $head; }\n }\n }\n return new TextSelection($anchor, $head)\n };\n\n Object.defineProperties( TextSelection.prototype, prototypeAccessors$1 );\n\n return TextSelection;\n}(Selection));\n\nSelection.jsonID(\"text\", TextSelection);\n\nvar TextBookmark = function TextBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\nTextBookmark.prototype.map = function map (mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head))\n};\nTextBookmark.prototype.resolve = function resolve (doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head))\n};\n\n// ::- A node selection is a selection that points at a single node.\n// All nodes marked [selectable](#model.NodeSpec.selectable) can be\n// the target of a node selection. In such a selection, `from` and\n// `to` point directly before and after the selected node, `anchor`\n// equals `from`, and `head` equals `to`..\nvar NodeSelection = /*@__PURE__*/(function (Selection) {\n function NodeSelection($pos) {\n var node = $pos.nodeAfter;\n var $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n Selection.call(this, $pos, $end);\n // :: Node The selected node.\n this.node = node;\n }\n\n if ( Selection ) NodeSelection.__proto__ = Selection;\n NodeSelection.prototype = Object.create( Selection && Selection.prototype );\n NodeSelection.prototype.constructor = NodeSelection;\n\n NodeSelection.prototype.map = function map (doc, mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n var $pos = doc.resolve(pos);\n if (deleted) { return Selection.near($pos) }\n return new NodeSelection($pos)\n };\n\n NodeSelection.prototype.content = function content () {\n return new Slice(Fragment.from(this.node), 0, 0)\n };\n\n NodeSelection.prototype.eq = function eq (other) {\n return other instanceof NodeSelection && other.anchor == this.anchor\n };\n\n NodeSelection.prototype.toJSON = function toJSON () {\n return {type: \"node\", anchor: this.anchor}\n };\n\n NodeSelection.prototype.getBookmark = function getBookmark () { return new NodeBookmark(this.anchor) };\n\n NodeSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\")\n { throw new RangeError(\"Invalid input for NodeSelection.fromJSON\") }\n return new NodeSelection(doc.resolve(json.anchor))\n };\n\n // :: (Node, number) → NodeSelection\n // Create a node selection from non-resolved positions.\n NodeSelection.create = function create (doc, from) {\n return new this(doc.resolve(from))\n };\n\n // :: (Node) → bool\n // Determines whether the given node may be selected as a node\n // selection.\n NodeSelection.isSelectable = function isSelectable (node) {\n return !node.isText && node.type.spec.selectable !== false\n };\n\n return NodeSelection;\n}(Selection));\n\nNodeSelection.prototype.visible = false;\n\nSelection.jsonID(\"node\", NodeSelection);\n\nvar NodeBookmark = function NodeBookmark(anchor) {\n this.anchor = anchor;\n};\nNodeBookmark.prototype.map = function map (mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos)\n};\nNodeBookmark.prototype.resolve = function resolve (doc) {\n var $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node)) { return new NodeSelection($pos) }\n return Selection.near($pos)\n};\n\n// ::- A selection type that represents selecting the whole document\n// (which can not necessarily be expressed with a text selection, when\n// there are for example leaf block nodes at the start or end of the\n// document).\nvar AllSelection = /*@__PURE__*/(function (Selection) {\n function AllSelection(doc) {\n Selection.call(this, doc.resolve(0), doc.resolve(doc.content.size));\n }\n\n if ( Selection ) AllSelection.__proto__ = Selection;\n AllSelection.prototype = Object.create( Selection && Selection.prototype );\n AllSelection.prototype.constructor = AllSelection;\n\n AllSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n var sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection)) { tr.setSelection(sel); }\n } else {\n Selection.prototype.replace.call(this, tr, content);\n }\n };\n\n AllSelection.prototype.toJSON = function toJSON () { return {type: \"all\"} };\n\n AllSelection.fromJSON = function fromJSON (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.map = function map (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.eq = function eq (other) { return other instanceof AllSelection };\n\n AllSelection.prototype.getBookmark = function getBookmark () { return AllBookmark };\n\n return AllSelection;\n}(Selection));\n\nSelection.jsonID(\"all\", AllSelection);\n\nvar AllBookmark = {\n map: function map() { return this },\n resolve: function resolve(doc) { return new AllSelection(doc) }\n};\n\n// FIXME we'll need some awareness of text direction when scanning for selections\n\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text) {\n if (node.inlineContent) { return TextSelection.create(doc, pos) }\n for (var i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n var child = node.child(i);\n if (!child.isAtom) {\n var inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner) { return inner }\n } else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0))\n }\n pos += child.nodeSize * dir;\n }\n}\n\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n var last = tr.steps.length - 1;\n if (last < startLen) { return }\n var step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) { return }\n var map = tr.mapping.maps[last], end;\n map.forEach(function (_from, _to, _newFrom, newTo) { if (end == null) { end = newTo; } });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nvar UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n\n// ::- An editor state transaction, which can be applied to a state to\n// create an updated state. Use\n// [`EditorState.tr`](#state.EditorState.tr) to create an instance.\n//\n// Transactions track changes to the document (they are a subclass of\n// [`Transform`](#transform.Transform)), but also other state changes,\n// like selection updates and adjustments of the set of [stored\n// marks](#state.EditorState.storedMarks). In addition, you can store\n// metadata properties in a transaction, which are extra pieces of\n// information that client code or plugins can use to describe what a\n// transacion represents, so that they can update their [own\n// state](#state.StateField) accordingly.\n//\n// The [editor view](#view.EditorView) uses a few metadata properties:\n// it will attach a property `\"pointer\"` with the value `true` to\n// selection transactions directly caused by mouse or touch input, and\n// a `\"uiEvent\"` property of that may be `\"paste\"`, `\"cut\"`, or `\"drop\"`.\nvar Transaction = /*@__PURE__*/(function (Transform) {\n function Transaction(state) {\n Transform.call(this, state.doc);\n // :: number\n // The timestamp associated with this transaction, in the same\n // format as `Date.now()`.\n this.time = Date.now();\n this.curSelection = state.selection;\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // :: ?[Mark]\n // The stored marks set by this transaction, if any.\n this.storedMarks = state.storedMarks;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n }\n\n if ( Transform ) Transaction.__proto__ = Transform;\n Transaction.prototype = Object.create( Transform && Transform.prototype );\n Transaction.prototype.constructor = Transaction;\n\n var prototypeAccessors = { selection: { configurable: true },selectionSet: { configurable: true },storedMarksSet: { configurable: true },isGeneric: { configurable: true },scrolledIntoView: { configurable: true } };\n\n // :: Selection\n // The transaction's current selection. This defaults to the editor\n // selection [mapped](#state.Selection.map) through the steps in the\n // transaction, but can be overwritten with\n // [`setSelection`](#state.Transaction.setSelection).\n prototypeAccessors.selection.get = function () {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection\n };\n\n // :: (Selection) → Transaction\n // Update the transaction's current selection. Will determine the\n // selection that the editor gets when the transaction is applied.\n Transaction.prototype.setSelection = function setSelection (selection) {\n if (selection.$from.doc != this.doc)\n { throw new RangeError(\"Selection passed to setSelection must point at the current document\") }\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this\n };\n\n // :: bool\n // Whether the selection was explicitly updated by this transaction.\n prototypeAccessors.selectionSet.get = function () {\n return (this.updated & UPDATED_SEL) > 0\n };\n\n // :: (?[Mark]) → Transaction\n // Set the current stored marks.\n Transaction.prototype.setStoredMarks = function setStoredMarks (marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this\n };\n\n // :: ([Mark]) → Transaction\n // Make sure the current stored marks or, if that is null, the marks\n // at the selection, match the given set of marks. Does nothing if\n // this is already the case.\n Transaction.prototype.ensureMarks = function ensureMarks (marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n { this.setStoredMarks(marks); }\n return this\n };\n\n // :: (Mark) → Transaction\n // Add a mark to the set of stored marks.\n Transaction.prototype.addStoredMark = function addStoredMark (mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: (union) → Transaction\n // Remove a mark or mark type from the set of stored marks.\n Transaction.prototype.removeStoredMark = function removeStoredMark (mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: bool\n // Whether the stored marks were explicitly set for this transaction.\n prototypeAccessors.storedMarksSet.get = function () {\n return (this.updated & UPDATED_MARKS) > 0\n };\n\n Transaction.prototype.addStep = function addStep (step, doc) {\n Transform.prototype.addStep.call(this, step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n };\n\n // :: (number) → Transaction\n // Update the timestamp for the transaction.\n Transaction.prototype.setTime = function setTime (time) {\n this.time = time;\n return this\n };\n\n // :: (Slice) → Transaction\n // Replace the current selection with the given slice.\n Transaction.prototype.replaceSelection = function replaceSelection (slice) {\n this.selection.replace(this, slice);\n return this\n };\n\n // :: (Node, ?bool) → Transaction\n // Replace the selection with the given node. When `inheritMarks` is\n // true and the content is inline, it inherits the marks from the\n // place where it is inserted.\n Transaction.prototype.replaceSelectionWith = function replaceSelectionWith (node, inheritMarks) {\n var selection = this.selection;\n if (inheritMarks !== false)\n { node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none))); }\n selection.replaceWith(this, node);\n return this\n };\n\n // :: () → Transaction\n // Delete the selection.\n Transaction.prototype.deleteSelection = function deleteSelection () {\n this.selection.replace(this);\n return this\n };\n\n // :: (string, from: ?number, to: ?number) → Transaction\n // Replace the given range, or the selection if no range is given,\n // with a text node containing the given string.\n Transaction.prototype.insertText = function insertText (text, from, to) {\n if ( to === void 0 ) to = from;\n\n var schema = this.doc.type.schema;\n if (from == null) {\n if (!text) { return this.deleteSelection() }\n return this.replaceSelectionWith(schema.text(text), true)\n } else {\n if (!text) { return this.deleteRange(from, to) }\n var marks = this.storedMarks;\n if (!marks) {\n var $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty) { this.setSelection(Selection.near(this.selection.$to)); }\n return this\n }\n };\n\n // :: (union, any) → Transaction\n // Store a metadata property in this transaction, keyed either by\n // name or by plugin.\n Transaction.prototype.setMeta = function setMeta (key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this\n };\n\n // :: (union) → any\n // Retrieve a metadata property for a given name or plugin.\n Transaction.prototype.getMeta = function getMeta (key) {\n return this.meta[typeof key == \"string\" ? key : key.key]\n };\n\n // :: bool\n // Returns true if this transaction doesn't contain any metadata,\n // and can thus safely be extended.\n prototypeAccessors.isGeneric.get = function () {\n for (var _ in this.meta) { return false }\n return true\n };\n\n // :: () → Transaction\n // Indicate that the editor should scroll the selection into view\n // when updated to the state produced by this transaction.\n Transaction.prototype.scrollIntoView = function scrollIntoView () {\n this.updated |= UPDATED_SCROLL;\n return this\n };\n\n prototypeAccessors.scrolledIntoView.get = function () {\n return (this.updated & UPDATED_SCROLL) > 0\n };\n\n Object.defineProperties( Transaction.prototype, prototypeAccessors );\n\n return Transaction;\n}(Transform));\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self)\n}\n\nvar FieldDesc = function FieldDesc(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n};\n\nvar baseFields = [\n new FieldDesc(\"doc\", {\n init: function init(config) { return config.doc || config.schema.topNodeType.createAndFill() },\n apply: function apply(tr) { return tr.doc }\n }),\n\n new FieldDesc(\"selection\", {\n init: function init(config, instance) { return config.selection || Selection.atStart(instance.doc) },\n apply: function apply(tr) { return tr.selection }\n }),\n\n new FieldDesc(\"storedMarks\", {\n init: function init(config) { return config.storedMarks || null },\n apply: function apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null }\n }),\n\n new FieldDesc(\"scrollToSelection\", {\n init: function init() { return 0 },\n apply: function apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev }\n })\n];\n\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nvar Configuration = function Configuration(schema, plugins) {\n var this$1$1 = this;\n\n this.schema = schema;\n this.fields = baseFields.concat();\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n if (plugins) { plugins.forEach(function (plugin) {\n if (this$1$1.pluginsByKey[plugin.key])\n { throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\") }\n this$1$1.plugins.push(plugin);\n this$1$1.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n { this$1$1.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin)); }\n }); }\n};\n\n// ::- The state of a ProseMirror editor is represented by an object\n// of this type. A state is a persistent data structure—it isn't\n// updated, but rather a new state value is computed from an old one\n// using the [`apply`](#state.EditorState.apply) method.\n//\n// A state holds a number of built-in fields, and plugins can\n// [define](#state.PluginSpec.state) additional fields.\nvar EditorState = function EditorState(config) {\n this.config = config;\n};\n\nvar prototypeAccessors$1 = { schema: { configurable: true },plugins: { configurable: true },tr: { configurable: true } };\n\n// doc:: Node\n// The current document.\n\n// selection:: Selection\n// The selection.\n\n// storedMarks:: ?[Mark]\n// A set of marks to apply to the next input. Will be null when\n// no explicit marks have been set.\n\n// :: Schema\n// The schema of the state's document.\nprototypeAccessors$1.schema.get = function () {\n return this.config.schema\n};\n\n// :: [Plugin]\n// The plugins that are active in this state.\nprototypeAccessors$1.plugins.get = function () {\n return this.config.plugins\n};\n\n// :: (Transaction) → EditorState\n// Apply the given transaction to produce a new state.\nEditorState.prototype.apply = function apply (tr) {\n return this.applyTransaction(tr).state\n};\n\n// : (Transaction) → bool\nEditorState.prototype.filterTransaction = function filterTransaction (tr, ignore) {\n if ( ignore === void 0 ) ignore = -1;\n\n for (var i = 0; i < this.config.plugins.length; i++) { if (i != ignore) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n { return false }\n } }\n return true\n};\n\n// :: (Transaction) → {state: EditorState, transactions: [Transaction]}\n// Verbose variant of [`apply`](#state.EditorState.apply) that\n// returns the precise transactions that were applied (which might\n// be influenced by the [transaction\n// hooks](#state.PluginSpec.filterTransaction) of\n// plugins) along with the new state.\nEditorState.prototype.applyTransaction = function applyTransaction (rootTr) {\n if (!this.filterTransaction(rootTr)) { return {state: this, transactions: []} }\n\n var trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n var haveNew = false;\n for (var i = 0; i < this.config.plugins.length; i++) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n var n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n var tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (var j = 0; j < this.config.plugins.length; j++)\n { seen.push(j < i ? {state: newState, n: trs.length} : {state: this, n: 0}); }\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen) { seen[i] = {state: newState, n: trs.length}; }\n }\n }\n if (!haveNew) { return {state: newState, transactions: trs} }\n }\n};\n\n// : (Transaction) → EditorState\nEditorState.prototype.applyInner = function applyInner (tr) {\n if (!tr.before.eq(this.doc)) { throw new RangeError(\"Applying a mismatched transaction\") }\n var newInstance = new EditorState(this.config), fields = this.config.fields;\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n for (var i$1 = 0; i$1 < applyListeners.length; i$1++) { applyListeners[i$1](this, tr, newInstance); }\n return newInstance\n};\n\n// :: Transaction\n// Start a [transaction](#state.Transaction) from this state.\nprototypeAccessors$1.tr.get = function () { return new Transaction(this) };\n\n// :: (Object) → EditorState\n// Create a new state.\n//\n// config::- Configuration options. Must contain `schema` or `doc` (or both).\n//\n// schema:: ?Schema\n// The schema to use (only relevant if no `doc` is specified).\n//\n// doc:: ?Node\n// The starting document.\n//\n// selection:: ?Selection\n// A valid selection in the document.\n//\n// storedMarks:: ?[Mark]\n// The initial set of [stored marks](#state.EditorState.storedMarks).\n//\n// plugins:: ?[Plugin]\n// The plugins that should be active in this state.\nEditorState.create = function create (config) {\n var $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n var instance = new EditorState($config);\n for (var i = 0; i < $config.fields.length; i++)\n { instance[$config.fields[i].name] = $config.fields[i].init(config, instance); }\n return instance\n};\n\n// :: (Object) → EditorState\n// Create a new state based on this one, but with an adjusted set of\n// active plugins. State fields that exist in both sets of plugins\n// are kept unchanged. Those that no longer exist are dropped, and\n// those that are new are initialized using their\n// [`init`](#state.StateField.init) method, passing in the new\n// configuration object..\n//\n// config::- configuration options\n//\n// plugins:: [Plugin]\n// New set of active plugins.\nEditorState.prototype.reconfigure = function reconfigure (config) {\n var $config = new Configuration(this.schema, config.plugins);\n var fields = $config.fields, instance = new EditorState($config);\n for (var i = 0; i < fields.length; i++) {\n var name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance\n};\n\n// :: (?union, string, number>) → Object\n// Serialize this state to JSON. If you want to serialize the state\n// of plugins, pass an object mapping property names to use in the\n// resulting JSON object to plugin objects. The argument may also be\n// a string or number, in which case it is ignored, to support the\n// way `JSON.stringify` calls `toString` methods.\nEditorState.prototype.toJSON = function toJSON (pluginFields) {\n var result = {doc: this.doc.toJSON(), selection: this.selection.toJSON()};\n if (this.storedMarks) { result.storedMarks = this.storedMarks.map(function (m) { return m.toJSON(); }); }\n if (pluginFields && typeof pluginFields == 'object') { for (var prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n { throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\") }\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON) { result[prop] = state.toJSON.call(plugin, this[plugin.key]); }\n } }\n return result\n};\n\n// :: (Object, Object, ?Object) → EditorState\n// Deserialize a JSON representation of a state. `config` should\n// have at least a `schema` field, and should contain array of\n// plugins to initialize the state with. `pluginFields` can be used\n// to deserialize the state of plugins, by associating plugin\n// instances with the property names they use in the JSON object.\n//\n// config::- configuration options\n//\n// schema:: Schema\n// The schema to use.\n//\n// plugins:: ?[Plugin]\n// The set of active plugins.\nEditorState.fromJSON = function fromJSON (config, json, pluginFields) {\n if (!json) { throw new RangeError(\"Invalid input for EditorState.fromJSON\") }\n if (!config.schema) { throw new RangeError(\"Required config field 'schema' missing\") }\n var $config = new Configuration(config.schema, config.plugins);\n var instance = new EditorState($config);\n $config.fields.forEach(function (field) {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n } else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n } else if (field.name == \"storedMarks\") {\n if (json.storedMarks) { instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON); }\n } else {\n if (pluginFields) { for (var prop in pluginFields) {\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n // This field belongs to a plugin mapped to a JSON field, read it from there.\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return\n }\n } }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance\n};\n\n// Kludge to allow the view to track mappings between different\n// instances of a state.\n//\n// FIXME this is no longer needed as of prosemirror-view 1.9.0,\n// though due to backwards-compat we should probably keep it around\n// for a while (if only as a no-op)\nEditorState.addApplyListener = function addApplyListener (f) {\n applyListeners.push(f);\n};\nEditorState.removeApplyListener = function removeApplyListener (f) {\n var found = applyListeners.indexOf(f);\n if (found > -1) { applyListeners.splice(found, 1); }\n};\n\nObject.defineProperties( EditorState.prototype, prototypeAccessors$1 );\n\nvar applyListeners = [];\n\nfunction createCell(cellType, cellContent) {\r\n if (cellContent) {\r\n return cellType.createChecked(null, cellContent);\r\n }\r\n return cellType.createAndFill();\r\n}\n\nfunction getTableNodeTypes(schema) {\r\n if (schema.cached.tableNodeTypes) {\r\n return schema.cached.tableNodeTypes;\r\n }\r\n const roles = {};\r\n Object.keys(schema.nodes).forEach(type => {\r\n const nodeType = schema.nodes[type];\r\n if (nodeType.spec.tableRole) {\r\n roles[nodeType.spec.tableRole] = nodeType;\r\n }\r\n });\r\n schema.cached.tableNodeTypes = roles;\r\n return roles;\r\n}\n\nfunction createTable(schema, rowsCount, colsCount, withHeaderRow, cellContent) {\r\n const types = getTableNodeTypes(schema);\r\n const headerCells = [];\r\n const cells = [];\r\n for (let index = 0; index < colsCount; index += 1) {\r\n const cell = createCell(types.cell, cellContent);\r\n if (cell) {\r\n cells.push(cell);\r\n }\r\n if (withHeaderRow) {\r\n const headerCell = createCell(types.header_cell, cellContent);\r\n if (headerCell) {\r\n headerCells.push(headerCell);\r\n }\r\n }\r\n }\r\n const rows = [];\r\n for (let index = 0; index < rowsCount; index += 1) {\r\n rows.push(types.row.createChecked(null, withHeaderRow && index === 0 ? headerCells : cells));\r\n }\r\n return types.table.createChecked(null, rows);\r\n}\n\nfunction isCellSelection(value) {\r\n return value instanceof CellSelection;\r\n}\n\nconst deleteTableWhenAllCellsSelected = ({ editor }) => {\r\n const { selection } = editor.state;\r\n if (!isCellSelection(selection)) {\r\n return false;\r\n }\r\n let cellCount = 0;\r\n const table = findParentNodeClosestToPos(selection.ranges[0].$from, node => {\r\n return node.type.name === 'table';\r\n });\r\n table === null || table === void 0 ? void 0 : table.node.descendants(node => {\r\n if (node.type.name === 'table') {\r\n return false;\r\n }\r\n if (['tableCell', 'tableHeader'].includes(node.type.name)) {\r\n cellCount += 1;\r\n }\r\n });\r\n const allCellsSelected = cellCount === selection.ranges.length;\r\n if (!allCellsSelected) {\r\n return false;\r\n }\r\n editor.commands.deleteTable();\r\n return true;\r\n};\n\nfunction updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {\r\n let totalWidth = 0;\r\n let fixedWidth = true;\r\n let nextDOM = colgroup.firstChild;\r\n const row = node.firstChild;\r\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\r\n const { colspan, colwidth } = row.child(i).attrs;\r\n for (let j = 0; j < colspan; j += 1, col += 1) {\r\n const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j];\r\n const cssWidth = hasWidth ? `${hasWidth}px` : '';\r\n totalWidth += hasWidth || cellMinWidth;\r\n if (!hasWidth) {\r\n fixedWidth = false;\r\n }\r\n if (!nextDOM) {\r\n colgroup.appendChild(document.createElement('col')).style.width = cssWidth;\r\n }\r\n else {\r\n if (nextDOM.style.width !== cssWidth) {\r\n nextDOM.style.width = cssWidth;\r\n }\r\n nextDOM = nextDOM.nextSibling;\r\n }\r\n }\r\n }\r\n while (nextDOM) {\r\n const after = nextDOM.nextSibling;\r\n nextDOM.parentNode.removeChild(nextDOM);\r\n nextDOM = after;\r\n }\r\n if (fixedWidth) {\r\n table.style.width = `${totalWidth}px`;\r\n table.style.minWidth = '';\r\n }\r\n else {\r\n table.style.width = '';\r\n table.style.minWidth = `${totalWidth}px`;\r\n }\r\n}\r\nclass TableView {\r\n constructor(node, cellMinWidth) {\r\n this.node = node;\r\n this.cellMinWidth = cellMinWidth;\r\n this.dom = document.createElement('div');\r\n this.dom.className = 'tableWrapper';\r\n this.table = this.dom.appendChild(document.createElement('table'));\r\n this.colgroup = this.table.appendChild(document.createElement('colgroup'));\r\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\r\n this.contentDOM = this.table.appendChild(document.createElement('tbody'));\r\n }\r\n update(node) {\r\n if (node.type !== this.node.type) {\r\n return false;\r\n }\r\n this.node = node;\r\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\r\n return true;\r\n }\r\n ignoreMutation(mutation) {\r\n return mutation.type === 'attributes' && (mutation.target === this.table || this.colgroup.contains(mutation.target));\r\n }\r\n}\n\nconst Table = Node$1.create({\r\n name: 'table',\r\n // @ts-ignore\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n resizable: false,\r\n handleWidth: 5,\r\n cellMinWidth: 25,\r\n // TODO: fix\r\n View: TableView,\r\n lastColumnResizable: true,\r\n allowTableNodeSelection: false,\r\n };\r\n },\r\n content: 'tableRow+',\r\n tableRole: 'table',\r\n isolating: true,\r\n group: 'block',\r\n parseHTML() {\r\n return [\r\n { tag: 'table' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['table', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), ['tbody', 0]];\r\n },\r\n addCommands() {\r\n return {\r\n insertTable: ({ rows = 3, cols = 3, withHeaderRow = true } = {}) => ({ tr, dispatch, editor }) => {\r\n const node = createTable(editor.schema, rows, cols, withHeaderRow);\r\n if (dispatch) {\r\n const offset = tr.selection.anchor + 1;\r\n tr.replaceSelectionWith(node)\r\n .scrollIntoView()\r\n .setSelection(TextSelection.near(tr.doc.resolve(offset)));\r\n }\r\n return true;\r\n },\r\n addColumnBefore: () => ({ state, dispatch }) => {\r\n return addColumnBefore(state, dispatch);\r\n },\r\n addColumnAfter: () => ({ state, dispatch }) => {\r\n return addColumnAfter(state, dispatch);\r\n },\r\n deleteColumn: () => ({ state, dispatch }) => {\r\n return deleteColumn(state, dispatch);\r\n },\r\n addRowBefore: () => ({ state, dispatch }) => {\r\n return addRowBefore(state, dispatch);\r\n },\r\n addRowAfter: () => ({ state, dispatch }) => {\r\n return addRowAfter(state, dispatch);\r\n },\r\n deleteRow: () => ({ state, dispatch }) => {\r\n return deleteRow(state, dispatch);\r\n },\r\n deleteTable: () => ({ state, dispatch }) => {\r\n return deleteTable(state, dispatch);\r\n },\r\n mergeCells: () => ({ state, dispatch }) => {\r\n return mergeCells(state, dispatch);\r\n },\r\n splitCell: () => ({ state, dispatch }) => {\r\n return splitCell(state, dispatch);\r\n },\r\n toggleHeaderColumn: () => ({ state, dispatch }) => {\r\n return toggleHeaderColumn(state, dispatch);\r\n },\r\n toggleHeaderRow: () => ({ state, dispatch }) => {\r\n return toggleHeaderRow(state, dispatch);\r\n },\r\n toggleHeaderCell: () => ({ state, dispatch }) => {\r\n return toggleHeaderCell(state, dispatch);\r\n },\r\n mergeOrSplit: () => ({ state, dispatch }) => {\r\n if (mergeCells(state, dispatch)) {\r\n return true;\r\n }\r\n return splitCell(state, dispatch);\r\n },\r\n setCellAttribute: (name, value) => ({ state, dispatch }) => {\r\n return setCellAttr(name, value)(state, dispatch);\r\n },\r\n goToNextCell: () => ({ state, dispatch }) => {\r\n return goToNextCell(1)(state, dispatch);\r\n },\r\n goToPreviousCell: () => ({ state, dispatch }) => {\r\n return goToNextCell(-1)(state, dispatch);\r\n },\r\n fixTables: () => ({ state, dispatch }) => {\r\n if (dispatch) {\r\n fixTables(state);\r\n }\r\n return true;\r\n },\r\n setCellSelection: position => ({ tr, dispatch }) => {\r\n if (dispatch) {\r\n const selection = CellSelection.create(tr.doc, position.anchorCell, position.headCell);\r\n // @ts-ignore\r\n tr.setSelection(selection);\r\n }\r\n return true;\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Tab: () => {\r\n if (this.editor.commands.goToNextCell()) {\r\n return true;\r\n }\r\n if (!this.editor.can().addRowAfter()) {\r\n return false;\r\n }\r\n return this.editor\r\n .chain()\r\n .addRowAfter()\r\n .goToNextCell()\r\n .run();\r\n },\r\n 'Shift-Tab': () => this.editor.commands.goToPreviousCell(),\r\n Backspace: deleteTableWhenAllCellsSelected,\r\n 'Mod-Backspace': deleteTableWhenAllCellsSelected,\r\n Delete: deleteTableWhenAllCellsSelected,\r\n 'Mod-Delete': deleteTableWhenAllCellsSelected,\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n const isResizable = this.options.resizable && this.editor.isEditable;\r\n return [\r\n ...(isResizable ? [columnResizing({\r\n handleWidth: this.options.handleWidth,\r\n cellMinWidth: this.options.cellMinWidth,\r\n View: this.options.View,\r\n // TODO: PR for @types/prosemirror-tables\r\n // @ts-ignore (incorrect type)\r\n lastColumnResizable: this.options.lastColumnResizable,\r\n })] : []),\r\n tableEditing({\r\n allowTableNodeSelection: this.options.allowTableNodeSelection,\r\n }),\r\n ];\r\n },\r\n extendNodeSchema(extension) {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n return {\r\n tableRole: callOrReturn(getExtensionField(extension, 'tableRole', context)),\r\n };\r\n },\r\n});\n\nexport { Table, createTable, Table as default };\n//# sourceMappingURL=tiptap-extension-table.esm.js.map\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","export * from \"./enums.js\";\nexport * from \"./modifiers/index.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { popperGenerator, detectOverflow, createPopper as createPopperBase } from \"./createPopper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper } from \"./popper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","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","import { defineComponent, pushScopeId, popScopeId, openBlock, createElementBlock, withDirectives, createElementVNode, withKeys, withModifiers, vModelText, renderSlot, createCommentVNode, Fragment, renderList, normalizeClass } from 'vue';\n\nvar script = /*#__PURE__*/defineComponent({\n name: 'Vue3SimpleTypeahead',\n emits: ['onInput', 'onFocus', 'onBlur', 'selectItem'],\n props: {\n id: {\n type: String\n },\n placeholder: {\n type: String,\n default: ''\n },\n items: {\n type: Array,\n required: true\n },\n defaultItem: {\n default: null\n },\n itemProjection: {\n type: Function,\n\n default(item) {\n return item;\n }\n\n },\n minInputLength: {\n type: Number,\n default: 2,\n validator: prop => {\n return prop >= 0;\n }\n }\n },\n\n mounted() {\n if (this.defaultItem !== undefined && this.defaultItem !== null) {\n this.selectItem(this.defaultItem);\n }\n },\n\n data() {\n return {\n inputId: this.id || `simple_typeahead_${(Math.random() * 1000).toFixed()}`,\n input: '',\n isInputFocused: false,\n currentSelectionIndex: 0\n };\n },\n\n methods: {\n onInput() {\n if (this.isListVisible && this.currentSelectionIndex >= this.filteredItems.length) {\n this.currentSelectionIndex = (this.filteredItems.length || 1) - 1;\n }\n\n this.$emit('onInput', {\n input: this.input,\n items: this.filteredItems\n });\n },\n\n onFocus() {\n this.isInputFocused = true;\n this.$emit('onFocus', {\n input: this.input,\n items: this.filteredItems\n });\n },\n\n onBlur() {\n this.isInputFocused = false;\n this.$emit('onBlur', {\n input: this.input,\n items: this.filteredItems\n });\n },\n\n onArrowDown($event) {\n if (this.isListVisible && this.currentSelectionIndex < this.filteredItems.length - 1) {\n this.currentSelectionIndex++;\n }\n\n this.scrollSelectionIntoView();\n },\n\n onArrowUp($event) {\n if (this.isListVisible && this.currentSelectionIndex > 0) {\n this.currentSelectionIndex--;\n }\n\n this.scrollSelectionIntoView();\n },\n\n scrollSelectionIntoView() {\n setTimeout(() => {\n const list_node = document.querySelector(`#${this.wrapperId} .simple-typeahead-list`);\n const active_node = document.querySelector(`#${this.wrapperId} .simple-typeahead-list-item.simple-typeahead-list-item-active`);\n\n if (!(active_node.offsetTop >= list_node.scrollTop && active_node.offsetTop + active_node.offsetHeight < list_node.scrollTop + list_node.offsetHeight)) {\n let scroll_to = 0;\n\n if (active_node.offsetTop > list_node.scrollTop) {\n scroll_to = active_node.offsetTop + active_node.offsetHeight - list_node.offsetHeight;\n } else if (active_node.offsetTop < list_node.scrollTop) {\n scroll_to = active_node.offsetTop;\n }\n\n list_node.scrollTo(0, scroll_to);\n }\n });\n },\n\n selectCurrentSelection() {\n if (this.currentSelection) {\n this.selectItem(this.currentSelection);\n }\n },\n\n selectItem(item) {\n this.input = this.itemProjection(item);\n this.currentSelectionIndex = 0;\n document.getElementById(this.inputId).blur();\n this.$emit('selectItem', item);\n },\n\n escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n },\n\n boldMatchText(text) {\n const regexp = new RegExp(`(${this.escapeRegExp(this.input)})`, 'ig');\n return text.replace(regexp, '$1');\n }\n\n },\n computed: {\n wrapperId() {\n return `${this.inputId}_wrapper`;\n },\n\n filteredItems() {\n const regexp = new RegExp(this.escapeRegExp(this.input), 'i');\n return this.items.filter(item => this.itemProjection(item).match(regexp));\n },\n\n isListVisible() {\n return this.isInputFocused && this.input.length >= this.minInputLength && this.filteredItems.length;\n },\n\n currentSelection() {\n return this.isListVisible && this.currentSelectionIndex < this.filteredItems.length ? this.filteredItems[this.currentSelectionIndex] : undefined;\n }\n\n }\n});\n\npushScopeId(\"data-v-04d98098\");\n\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"id\", \"placeholder\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"simple-typeahead-list\"\n};\nconst _hoisted_4 = {\n key: 0,\n class: \"simple-typeahead-list-header\"\n};\nconst _hoisted_5 = [\"onClick\", \"onMouseenter\"];\nconst _hoisted_6 = [\"data-text\"];\nconst _hoisted_7 = [\"data-text\", \"innerHTML\"];\nconst _hoisted_8 = {\n key: 1,\n class: \"simple-typeahead-list-footer\"\n};\n\npopScopeId();\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n id: _ctx.wrapperId,\n class: \"simple-typeahead\"\n }, [withDirectives(createElementVNode(\"input\", {\n id: _ctx.inputId,\n class: \"simple-typeahead-input\",\n type: \"text\",\n placeholder: _ctx.placeholder,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => _ctx.input = $event),\n onInput: _cache[1] || (_cache[1] = (...args) => _ctx.onInput && _ctx.onInput(...args)),\n onFocus: _cache[2] || (_cache[2] = (...args) => _ctx.onFocus && _ctx.onFocus(...args)),\n onBlur: _cache[3] || (_cache[3] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),\n onKeydown: [_cache[4] || (_cache[4] = withKeys(withModifiers((...args) => _ctx.onArrowDown && _ctx.onArrowDown(...args), [\"prevent\"]), [\"down\"])), _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => _ctx.onArrowUp && _ctx.onArrowUp(...args), [\"prevent\"]), [\"up\"])), _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => _ctx.selectCurrentSelection && _ctx.selectCurrentSelection(...args), [\"prevent\"]), [\"enter\", \"tab\"]))],\n autocomplete: \"off\"\n }, null, 40, _hoisted_2), [[vModelText, _ctx.input]]), _ctx.isListVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [_ctx.$slots['list-header'] ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [renderSlot(_ctx.$slots, \"list-header\")])) : createCommentVNode(\"\", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.filteredItems, (item, index) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"simple-typeahead-list-item\", {\n 'simple-typeahead-list-item-active': _ctx.currentSelectionIndex == index\n }]),\n key: index,\n onMousedown: _cache[7] || (_cache[7] = withModifiers(() => {}, [\"prevent\"])),\n onClick: $event => _ctx.selectItem(item),\n onMouseenter: $event => _ctx.currentSelectionIndex = index\n }, [_ctx.$slots['list-item-text'] ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"simple-typeahead-list-item-text\",\n \"data-text\": _ctx.itemProjection(item)\n }, [renderSlot(_ctx.$slots, \"list-item-text\", {\n item: item,\n itemProjection: _ctx.itemProjection,\n boldMatchText: _ctx.boldMatchText\n })], 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"simple-typeahead-list-item-text\",\n \"data-text\": _ctx.itemProjection(item),\n innerHTML: _ctx.boldMatchText(_ctx.itemProjection(item))\n }, null, 8, _hoisted_7))], 42, _hoisted_5);\n }), 128)), _ctx.$slots['list-footer'] ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [renderSlot(_ctx.$slots, \"list-footer\")])) : createCommentVNode(\"\", true)])) : createCommentVNode(\"\", true)], 8, _hoisted_1);\n}\n\nscript.render = render;\nscript.__scopeId = \"data-v-04d98098\";\n\n// Import vue component\n// IIFE injects install function into component, allowing component\n// to be registered via Vue.use() as well as Vue.component(),\n\nvar entry_esm = /*#__PURE__*/(() => {\n // Get component instance\n const installable = script; // Attach install function executed by Vue.use()\n\n installable.install = app => {\n app.component('Vue3SimpleTypeahead', installable);\n };\n\n return installable;\n})(); // It's possible to expose named exports when writing components that can\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\n// export const RollupDemoDirective = directive;\n\nexport { entry_esm as default };\n","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","import { Mark, mergeAttributes } from '@tiptap/core';\n\nconst Subscript = Mark.create({\r\n name: 'subscript',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'sub',\r\n },\r\n {\r\n style: 'vertical-align',\r\n getAttrs(value) {\r\n // Don’t match this rule if the vertical align isn’t sub.\r\n if (value !== 'sub') {\r\n return false;\r\n }\r\n // If it falls through we’ll match, and this mark will be applied.\r\n },\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['sub', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setSubscript: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleSubscript: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetSubscript: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-,': () => this.editor.commands.toggleSubscript(),\r\n };\r\n },\r\n});\n\nexport { Subscript, Subscript as default };\n//# sourceMappingURL=tiptap-extension-subscript.esm.js.map\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\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","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(fn), undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nvar orderedmap = OrderedMap;\n\nexport default orderedmap;\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (var i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n { return a.childCount == b.childCount ? null : pos }\n\n var childA = a.child(i), childB = b.child(i);\n if (childA == childB) { pos += childA.nodeSize; continue }\n\n if (!childA.sameMarkup(childB)) { return pos }\n\n if (childA.isText && childA.text != childB.text) {\n for (var j = 0; childA.text[j] == childB.text[j]; j++)\n { pos++; }\n return pos\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null) { return inner }\n }\n pos += childA.nodeSize;\n }\n}\n\nfunction findDiffEnd(a, b, posA, posB) {\n for (var iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n { return iA == iB ? null : {a: posA, b: posB} }\n\n var childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size; posB -= size;\n continue\n }\n\n if (!childA.sameMarkup(childB)) { return {a: posA, b: posB} }\n\n if (childA.isText && childA.text != childB.text) {\n var same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++; posA--; posB--;\n }\n return {a: posA, b: posB}\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner) { return inner }\n }\n posA -= size; posB -= size;\n }\n}\n\n// ::- A fragment represents a node's collection of child nodes.\n//\n// Like nodes, fragments are persistent data structures, and you\n// should not mutate them or their content. Rather, you create new\n// instances whenever needed. The API tries to make this easy.\nvar Fragment = function Fragment(content, size) {\n this.content = content;\n // :: number\n // The size of the fragment, which is the total of the size of its\n // content nodes.\n this.size = size || 0;\n if (size == null) { for (var i = 0; i < content.length; i++)\n { this.size += content[i].nodeSize; } }\n};\n\nvar prototypeAccessors = { firstChild: { configurable: true },lastChild: { configurable: true },childCount: { configurable: true } };\n\n// :: (number, number, (node: Node, start: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes between the given two\n// positions (relative to start of this fragment). Doesn't descend\n// into a node when the callback returns `false`.\nFragment.prototype.nodesBetween = function nodesBetween (from, to, f, nodeStart, parent) {\n if ( nodeStart === void 0 ) nodeStart = 0;\n\n for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent, i) !== false && child.content.size) {\n var start = pos + 1;\n child.nodesBetween(Math.max(0, from - start),\n Math.min(child.content.size, to - start),\n f, nodeStart + start);\n }\n pos = end;\n }\n};\n\n// :: ((node: Node, pos: number, parent: Node) → ?bool)\n// Call the given callback for every descendant node. The callback\n// may return `false` to prevent traversal of a given node's children.\nFragment.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.size, f);\n};\n\n// :: (number, number, ?string, ?union) → string\n// Extract the text between `from` and `to`. See the same method on\n// [`Node`](#model.Node.textBetween).\nFragment.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n var text = \"\", separated = true;\n this.nodesBetween(from, to, function (node, pos) {\n if (node.isText) {\n text += node.text.slice(Math.max(from, pos) - pos, to - pos);\n separated = !blockSeparator;\n } else if (node.isLeaf && leafText) {\n text += typeof leafText === 'function' ? leafText(node): leafText;\n separated = !blockSeparator;\n } else if (!separated && node.isBlock) {\n text += blockSeparator;\n separated = true;\n }\n }, 0);\n return text\n};\n\n// :: (Fragment) → Fragment\n// Create a new fragment containing the combined content of this\n// fragment and the other.\nFragment.prototype.append = function append (other) {\n if (!other.size) { return this }\n if (!this.size) { return other }\n var last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++) { content.push(other.content[i]); }\n return new Fragment(content, this.size + other.size)\n};\n\n// :: (number, ?number) → Fragment\n// Cut out the sub-fragment between the two given positions.\nFragment.prototype.cut = function cut (from, to) {\n if (to == null) { to = this.size; }\n if (from == 0 && to == this.size) { return this }\n var result = [], size = 0;\n if (to > from) { for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n { child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos)); }\n else\n { child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1)); }\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n } }\n return new Fragment(result, size)\n};\n\nFragment.prototype.cutByIndex = function cutByIndex (from, to) {\n if (from == to) { return Fragment.empty }\n if (from == 0 && to == this.content.length) { return this }\n return new Fragment(this.content.slice(from, to))\n};\n\n// :: (number, Node) → Fragment\n// Create a new fragment in which the node at the given index is\n// replaced by the given node.\nFragment.prototype.replaceChild = function replaceChild (index, node) {\n var current = this.content[index];\n if (current == node) { return this }\n var copy = this.content.slice();\n var size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by prepending the given node to this\n// fragment.\nFragment.prototype.addToStart = function addToStart (node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by appending the given node to this\n// fragment.\nFragment.prototype.addToEnd = function addToEnd (node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize)\n};\n\n// :: (Fragment) → bool\n// Compare this fragment to another one.\nFragment.prototype.eq = function eq (other) {\n if (this.content.length != other.content.length) { return false }\n for (var i = 0; i < this.content.length; i++)\n { if (!this.content[i].eq(other.content[i])) { return false } }\n return true\n};\n\n// :: ?Node\n// The first child of the fragment, or `null` if it is empty.\nprototypeAccessors.firstChild.get = function () { return this.content.length ? this.content[0] : null };\n\n// :: ?Node\n// The last child of the fragment, or `null` if it is empty.\nprototypeAccessors.lastChild.get = function () { return this.content.length ? this.content[this.content.length - 1] : null };\n\n// :: number\n// The number of child nodes in this fragment.\nprototypeAccessors.childCount.get = function () { return this.content.length };\n\n// :: (number) → Node\n// Get the child node at the given index. Raise an error when the\n// index is out of range.\nFragment.prototype.child = function child (index) {\n var found = this.content[index];\n if (!found) { throw new RangeError(\"Index \" + index + \" out of range for \" + this) }\n return found\n};\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nFragment.prototype.maybeChild = function maybeChild (index) {\n return this.content[index]\n};\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nFragment.prototype.forEach = function forEach (f) {\n for (var i = 0, p = 0; i < this.content.length; i++) {\n var child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n};\n\n// :: (Fragment) → ?number\n// Find the first position at which this fragment and another\n// fragment differ, or `null` if they are the same.\nFragment.prototype.findDiffStart = function findDiffStart$1 (other, pos) {\n if ( pos === void 0 ) pos = 0;\n\n return findDiffStart(this, other, pos)\n};\n\n// :: (Fragment) → ?{a: number, b: number}\n// Find the first position, searching from the end, at which this\n// fragment and the given fragment differ, or `null` if they are the\n// same. Since this position will not be the same in both nodes, an\n// object with two separate positions is returned.\nFragment.prototype.findDiffEnd = function findDiffEnd$1 (other, pos, otherPos) {\n if ( pos === void 0 ) pos = this.size;\n if ( otherPos === void 0 ) otherPos = other.size;\n\n return findDiffEnd(this, other, pos, otherPos)\n};\n\n// : (number, ?number) → {index: number, offset: number}\n// Find the index and inner offset corresponding to a given relative\n// position in this fragment. The result object will be reused\n// (overwritten) the next time the function is called. (Not public.)\nFragment.prototype.findIndex = function findIndex (pos, round) {\n if ( round === void 0 ) round = -1;\n\n if (pos == 0) { return retIndex(0, pos) }\n if (pos == this.size) { return retIndex(this.content.length, pos) }\n if (pos > this.size || pos < 0) { throw new RangeError((\"Position \" + pos + \" outside of fragment (\" + (this) + \")\")) }\n for (var i = 0, curPos = 0;; i++) {\n var cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0) { return retIndex(i + 1, end) }\n return retIndex(i, curPos)\n }\n curPos = end;\n }\n};\n\n// :: () → string\n// Return a debugging string that describes this fragment.\nFragment.prototype.toString = function toString () { return \"<\" + this.toStringInner() + \">\" };\n\nFragment.prototype.toStringInner = function toStringInner () { return this.content.join(\", \") };\n\n// :: () → ?Object\n// Create a JSON-serializeable representation of this fragment.\nFragment.prototype.toJSON = function toJSON () {\n return this.content.length ? this.content.map(function (n) { return n.toJSON(); }) : null\n};\n\n// :: (Schema, ?Object) → Fragment\n// Deserialize a fragment from its JSON representation.\nFragment.fromJSON = function fromJSON (schema, value) {\n if (!value) { return Fragment.empty }\n if (!Array.isArray(value)) { throw new RangeError(\"Invalid input for Fragment.fromJSON\") }\n return new Fragment(value.map(schema.nodeFromJSON))\n};\n\n// :: ([Node]) → Fragment\n// Build a fragment from an array of nodes. Ensures that adjacent\n// text nodes with the same marks are joined together.\nFragment.fromArray = function fromArray (array) {\n if (!array.length) { return Fragment.empty }\n var joined, size = 0;\n for (var i = 0; i < array.length; i++) {\n var node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined) { joined = array.slice(0, i); }\n joined[joined.length - 1] = node.withText(joined[joined.length - 1].text + node.text);\n } else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size)\n};\n\n// :: (?union) → Fragment\n// Create a fragment from something that can be interpreted as a set\n// of nodes. For `null`, it returns the empty fragment. For a\n// fragment, the fragment itself. For a node or array of nodes, a\n// fragment containing those nodes.\nFragment.from = function from (nodes) {\n if (!nodes) { return Fragment.empty }\n if (nodes instanceof Fragment) { return nodes }\n if (Array.isArray(nodes)) { return this.fromArray(nodes) }\n if (nodes.attrs) { return new Fragment([nodes], nodes.nodeSize) }\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"))\n};\n\nObject.defineProperties( Fragment.prototype, prototypeAccessors );\n\nvar found = {index: 0, offset: 0};\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found\n}\n\n// :: Fragment\n// An empty fragment. Intended to be reused whenever a node doesn't\n// contain anything (rather than allocating a new empty fragment for\n// each leaf node).\nFragment.empty = new Fragment([], 0);\n\nfunction compareDeep(a, b) {\n if (a === b) { return true }\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\")) { return false }\n var array = Array.isArray(a);\n if (Array.isArray(b) != array) { return false }\n if (array) {\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++) { if (!compareDeep(a[i], b[i])) { return false } }\n } else {\n for (var p in a) { if (!(p in b) || !compareDeep(a[p], b[p])) { return false } }\n for (var p$1 in b) { if (!(p$1 in a)) { return false } }\n }\n return true\n}\n\n// ::- A mark is a piece of information that can be attached to a node,\n// such as it being emphasized, in code font, or a link. It has a type\n// and optionally a set of attributes that provide further information\n// (such as the target of the link). Marks are created through a\n// `Schema`, which controls which types exist and which\n// attributes they have.\nvar Mark = function Mark(type, attrs) {\n // :: MarkType\n // The type of this mark.\n this.type = type;\n // :: Object\n // The attributes associated with this mark.\n this.attrs = attrs;\n};\n\n// :: ([Mark]) → [Mark]\n// Given a set of marks, create a new set which contains this one as\n// well, in the right position. If this mark is already in the set,\n// the set itself is returned. If any marks that are set to be\n// [exclusive](#model.MarkSpec.excludes) with this mark are present,\n// those are replaced by this one.\nMark.prototype.addToSet = function addToSet (set) {\n var copy, placed = false;\n for (var i = 0; i < set.length; i++) {\n var other = set[i];\n if (this.eq(other)) { return set }\n if (this.type.excludes(other.type)) {\n if (!copy) { copy = set.slice(0, i); }\n } else if (other.type.excludes(this.type)) {\n return set\n } else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy) { copy = set.slice(0, i); }\n copy.push(this);\n placed = true;\n }\n if (copy) { copy.push(other); }\n }\n }\n if (!copy) { copy = set.slice(); }\n if (!placed) { copy.push(this); }\n return copy\n};\n\n// :: ([Mark]) → [Mark]\n// Remove this mark from the given set, returning a new set. If this\n// mark is not in the set, the set itself is returned.\nMark.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i]))\n { return set.slice(0, i).concat(set.slice(i + 1)) } }\n return set\n};\n\n// :: ([Mark]) → bool\n// Test whether this mark is in the given set of marks.\nMark.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i])) { return true } }\n return false\n};\n\n// :: (Mark) → bool\n// Test whether this mark has the same type and attributes as\n// another mark.\nMark.prototype.eq = function eq (other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs))\n};\n\n// :: () → Object\n// Convert this mark to a JSON-serializeable representation.\nMark.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n return obj\n};\n\n// :: (Schema, Object) → Mark\nMark.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Mark.fromJSON\") }\n var type = schema.marks[json.type];\n if (!type) { throw new RangeError((\"There is no mark type \" + (json.type) + \" in this schema\")) }\n return type.create(json.attrs)\n};\n\n// :: ([Mark], [Mark]) → bool\n// Test whether two sets of marks are identical.\nMark.sameSet = function sameSet (a, b) {\n if (a == b) { return true }\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++)\n { if (!a[i].eq(b[i])) { return false } }\n return true\n};\n\n// :: (?union) → [Mark]\n// Create a properly sorted mark set from null, a single mark, or an\n// unsorted array of marks.\nMark.setFrom = function setFrom (marks) {\n if (!marks || marks.length == 0) { return Mark.none }\n if (marks instanceof Mark) { return [marks] }\n var copy = marks.slice();\n copy.sort(function (a, b) { return a.type.rank - b.type.rank; });\n return copy\n};\n\n// :: [Mark] The empty set of marks.\nMark.none = [];\n\n// ReplaceError:: class extends Error\n// Error type raised by [`Node.replace`](#model.Node.replace) when\n// given an invalid replacement.\n\nfunction ReplaceError(message) {\n var err = Error.call(this, message);\n err.__proto__ = ReplaceError.prototype;\n return err\n}\n\nReplaceError.prototype = Object.create(Error.prototype);\nReplaceError.prototype.constructor = ReplaceError;\nReplaceError.prototype.name = \"ReplaceError\";\n\n// ::- A slice represents a piece cut out of a larger document. It\n// stores not only a fragment, but also the depth up to which nodes on\n// both side are ‘open’ (cut through).\nvar Slice = function Slice(content, openStart, openEnd) {\n // :: Fragment The slice's content.\n this.content = content;\n // :: number The open depth at the start.\n this.openStart = openStart;\n // :: number The open depth at the end.\n this.openEnd = openEnd;\n};\n\nvar prototypeAccessors$1 = { size: { configurable: true } };\n\n// :: number\n// The size this slice would add when inserted into a document.\nprototypeAccessors$1.size.get = function () {\n return this.content.size - this.openStart - this.openEnd\n};\n\nSlice.prototype.insertAt = function insertAt (pos, fragment) {\n var content = insertInto(this.content, pos + this.openStart, fragment, null);\n return content && new Slice(content, this.openStart, this.openEnd)\n};\n\nSlice.prototype.removeBetween = function removeBetween (from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd)\n};\n\n// :: (Slice) → bool\n// Tests whether this slice is equal to another slice.\nSlice.prototype.eq = function eq (other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd\n};\n\nSlice.prototype.toString = function toString () {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\"\n};\n\n// :: () → ?Object\n// Convert a slice to a JSON-serializable representation.\nSlice.prototype.toJSON = function toJSON () {\n if (!this.content.size) { return null }\n var json = {content: this.content.toJSON()};\n if (this.openStart > 0) { json.openStart = this.openStart; }\n if (this.openEnd > 0) { json.openEnd = this.openEnd; }\n return json\n};\n\n// :: (Schema, ?Object) → Slice\n// Deserialize a slice from its JSON representation.\nSlice.fromJSON = function fromJSON (schema, json) {\n if (!json) { return Slice.empty }\n var openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n { throw new RangeError(\"Invalid input for Slice.fromJSON\") }\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd)\n};\n\n// :: (Fragment, ?bool) → Slice\n// Create a slice from a fragment by taking the maximum possible\n// open value on both side of the fragment.\nSlice.maxOpen = function maxOpen (fragment, openIsolating) {\n if ( openIsolating === void 0 ) openIsolating=true;\n\n var openStart = 0, openEnd = 0;\n for (var n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild) { openStart++; }\n for (var n$1 = fragment.lastChild; n$1 && !n$1.isLeaf && (openIsolating || !n$1.type.spec.isolating); n$1 = n$1.lastChild) { openEnd++; }\n return new Slice(fragment, openStart, openEnd)\n};\n\nObject.defineProperties( Slice.prototype, prototypeAccessors$1 );\n\nfunction removeRange(content, from, to) {\n var ref = content.findIndex(from);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n var ref$1 = content.findIndex(to);\n var indexTo = ref$1.index;\n var offsetTo = ref$1.offset;\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText) { throw new RangeError(\"Removing non-flat range\") }\n return content.cut(0, from).append(content.cut(to))\n }\n if (index != indexTo) { throw new RangeError(\"Removing non-flat range\") }\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)))\n}\n\nfunction insertInto(content, dist, insert, parent) {\n var ref = content.findIndex(dist);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert)) { return null }\n return content.cut(0, dist).append(insert).append(content.cut(dist))\n }\n var inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner))\n}\n\n// :: Slice\n// The empty slice.\nSlice.empty = new Slice(Fragment.empty, 0, 0);\n\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n { throw new ReplaceError(\"Inserted content deeper than insertion position\") }\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n { throw new ReplaceError(\"Inconsistent open depths\") }\n return replaceOuter($from, $to, slice, 0)\n}\n\nfunction replaceOuter($from, $to, slice, depth) {\n var index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n var inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner))\n } else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth))\n } else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n var parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)))\n } else {\n var ref = prepareSliceForReplace(slice, $from);\n var start = ref.start;\n var end = ref.end;\n return close(node, replaceThreeWay($from, start, end, $to, depth))\n }\n}\n\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n { throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name) }\n}\n\nfunction joinable($before, $after, depth) {\n var node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node\n}\n\nfunction addNode(child, target) {\n var last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n { target[last] = child.withText(target[last].text + child.text); }\n else\n { target.push(child); }\n}\n\nfunction addRange($start, $end, depth, target) {\n var node = ($end || $start).node(depth);\n var startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n } else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (var i = startIndex; i < endIndex; i++) { addNode(node.child(i), target); }\n if ($end && $end.depth == depth && $end.textOffset)\n { addNode($end.nodeBefore, target); }\n}\n\nfunction close(node, content) {\n if (!node.type.validContent(content))\n { throw new ReplaceError(\"Invalid content for node \" + node.type.name) }\n return node.copy(content)\n}\n\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n var openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n var openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n\n var content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n } else {\n if (openStart)\n { addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content); }\n addRange($start, $end, depth, content);\n if (openEnd)\n { addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content); }\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction replaceTwoWay($from, $to, depth) {\n var content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n var type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction prepareSliceForReplace(slice, $along) {\n var extra = $along.depth - slice.openStart, parent = $along.node(extra);\n var node = parent.copy(slice.content);\n for (var i = extra - 1; i >= 0; i--)\n { node = $along.node(i).copy(Fragment.from(node)); }\n return {start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra)}\n}\n\n// ::- You can [_resolve_](#model.Node.resolve) a position to get more\n// information about it. Objects of this class represent such a\n// resolved position, providing various pieces of context information,\n// and some helper methods.\n//\n// Throughout this interface, methods that take an optional `depth`\n// parameter will interpret undefined as `this.depth` and negative\n// numbers as `this.depth + value`.\nvar ResolvedPos = function ResolvedPos(pos, path, parentOffset) {\n // :: number The position that was resolved.\n this.pos = pos;\n this.path = path;\n // :: number\n // The number of levels the parent node is from the root. If this\n // position points directly into the root node, it is 0. If it\n // points into a top-level paragraph, 1, and so on.\n this.depth = path.length / 3 - 1;\n // :: number The offset this position has into its parent node.\n this.parentOffset = parentOffset;\n};\n\nvar prototypeAccessors$2 = { parent: { configurable: true },doc: { configurable: true },textOffset: { configurable: true },nodeAfter: { configurable: true },nodeBefore: { configurable: true } };\n\nResolvedPos.prototype.resolveDepth = function resolveDepth (val) {\n if (val == null) { return this.depth }\n if (val < 0) { return this.depth + val }\n return val\n};\n\n// :: Node\n// The parent node that the position points into. Note that even if\n// a position points into a text node, that node is not considered\n// the parent—text nodes are ‘flat’ in this model, and have no content.\nprototypeAccessors$2.parent.get = function () { return this.node(this.depth) };\n\n// :: Node\n// The root node in which the position was resolved.\nprototypeAccessors$2.doc.get = function () { return this.node(0) };\n\n// :: (?number) → Node\n// The ancestor node at the given level. `p.node(p.depth)` is the\n// same as `p.parent`.\nResolvedPos.prototype.node = function node (depth) { return this.path[this.resolveDepth(depth) * 3] };\n\n// :: (?number) → number\n// The index into the ancestor at the given level. If this points at\n// the 3rd node in the 2nd paragraph on the top level, for example,\n// `p.index(0)` is 1 and `p.index(1)` is 2.\nResolvedPos.prototype.index = function index (depth) { return this.path[this.resolveDepth(depth) * 3 + 1] };\n\n// :: (?number) → number\n// The index pointing after this position into the ancestor at the\n// given level.\nResolvedPos.prototype.indexAfter = function indexAfter (depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1)\n};\n\n// :: (?number) → number\n// The (absolute) position at the start of the node at the given\n// level.\nResolvedPos.prototype.start = function start (depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1\n};\n\n// :: (?number) → number\n// The (absolute) position at the end of the node at the given\n// level.\nResolvedPos.prototype.end = function end (depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size\n};\n\n// :: (?number) → number\n// The (absolute) position directly before the wrapping node at the\n// given level, or, when `depth` is `this.depth + 1`, the original\n// position.\nResolvedPos.prototype.before = function before (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position before the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1]\n};\n\n// :: (?number) → number\n// The (absolute) position directly after the wrapping node at the\n// given level, or the original position when `depth` is `this.depth + 1`.\nResolvedPos.prototype.after = function after (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position after the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize\n};\n\n// :: number\n// When this position points into a text node, this returns the\n// distance between the position and the start of the text node.\n// Will be zero for positions that point between nodes.\nprototypeAccessors$2.textOffset.get = function () { return this.pos - this.path[this.path.length - 1] };\n\n// :: ?Node\n// Get the node directly after the position, if any. If the position\n// points into a text node, only the part of that node after the\n// position is returned.\nprototypeAccessors$2.nodeAfter.get = function () {\n var parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount) { return null }\n var dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child\n};\n\n// :: ?Node\n// Get the node directly before the position, if any. If the\n// position points into a text node, only the part of that node\n// before the position is returned.\nprototypeAccessors$2.nodeBefore.get = function () {\n var index = this.index(this.depth);\n var dOff = this.pos - this.path[this.path.length - 1];\n if (dOff) { return this.parent.child(index).cut(0, dOff) }\n return index == 0 ? null : this.parent.child(index - 1)\n};\n\n// :: (number, ?number) → number\n// Get the position at the given index in the parent node at the\n// given depth (which defaults to `this.depth`).\nResolvedPos.prototype.posAtIndex = function posAtIndex (index, depth) {\n depth = this.resolveDepth(depth);\n var node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (var i = 0; i < index; i++) { pos += node.child(i).nodeSize; }\n return pos\n};\n\n// :: () → [Mark]\n// Get the marks at this position, factoring in the surrounding\n// marks' [`inclusive`](#model.MarkSpec.inclusive) property. If the\n// position is at the start of a non-empty node, the marks of the\n// node after it (if any) are returned.\nResolvedPos.prototype.marks = function marks () {\n var parent = this.parent, index = this.index();\n\n // In an empty parent, return the empty array\n if (parent.content.size == 0) { return Mark.none }\n\n // When inside a text node, just return the text node's marks\n if (this.textOffset) { return parent.child(index).marks }\n\n var main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) { var tmp = main; main = other; other = tmp; }\n\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n var marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n\n return marks\n};\n\n// :: (ResolvedPos) → ?[Mark]\n// Get the marks after the current position, if any, except those\n// that are non-inclusive and not present at position `$end`. This\n// is mostly useful for getting the set of marks to preserve after a\n// deletion. Will return `null` if this position is at the end of\n// its parent node or its parent node isn't a textblock (in which\n// case no marks should be preserved).\nResolvedPos.prototype.marksAcross = function marksAcross ($end) {\n var after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline) { return null }\n\n var marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n return marks\n};\n\n// :: (number) → number\n// The depth up to which this position and the given (non-resolved)\n// position share the same parent nodes.\nResolvedPos.prototype.sharedDepth = function sharedDepth (pos) {\n for (var depth = this.depth; depth > 0; depth--)\n { if (this.start(depth) <= pos && this.end(depth) >= pos) { return depth } }\n return 0\n};\n\n// :: (?ResolvedPos, ?(Node) → bool) → ?NodeRange\n// Returns a range based on the place where this position and the\n// given position diverge around block content. If both point into\n// the same textblock, for example, a range around that textblock\n// will be returned. If they point into different blocks, the range\n// around those blocks in their shared ancestor is returned. You can\n// pass in an optional predicate that will be called with a parent\n// node to see if a range into that parent is acceptable.\nResolvedPos.prototype.blockRange = function blockRange (other, pred) {\n if ( other === void 0 ) other = this;\n\n if (other.pos < this.pos) { return other.blockRange(this) }\n for (var d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n { if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n { return new NodeRange(this, other, d) } }\n};\n\n// :: (ResolvedPos) → bool\n// Query whether the given position shares the same parent node.\nResolvedPos.prototype.sameParent = function sameParent (other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the greater of this and the given position.\nResolvedPos.prototype.max = function max (other) {\n return other.pos > this.pos ? other : this\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the smaller of this and the given position.\nResolvedPos.prototype.min = function min (other) {\n return other.pos < this.pos ? other : this\n};\n\nResolvedPos.prototype.toString = function toString () {\n var str = \"\";\n for (var i = 1; i <= this.depth; i++)\n { str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1); }\n return str + \":\" + this.parentOffset\n};\n\nResolvedPos.resolve = function resolve (doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size)) { throw new RangeError(\"Position \" + pos + \" out of range\") }\n var path = [];\n var start = 0, parentOffset = pos;\n for (var node = doc;;) {\n var ref = node.content.findIndex(parentOffset);\n var index = ref.index;\n var offset = ref.offset;\n var rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem) { break }\n node = node.child(index);\n if (node.isText) { break }\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset)\n};\n\nResolvedPos.resolveCached = function resolveCached (doc, pos) {\n for (var i = 0; i < resolveCache.length; i++) {\n var cached = resolveCache[i];\n if (cached.pos == pos && cached.doc == doc) { return cached }\n }\n var result = resolveCache[resolveCachePos] = ResolvedPos.resolve(doc, pos);\n resolveCachePos = (resolveCachePos + 1) % resolveCacheSize;\n return result\n};\n\nObject.defineProperties( ResolvedPos.prototype, prototypeAccessors$2 );\n\nvar resolveCache = [], resolveCachePos = 0, resolveCacheSize = 12;\n\n// ::- Represents a flat range of content, i.e. one that starts and\n// ends in the same node.\nvar NodeRange = function NodeRange($from, $to, depth) {\n // :: ResolvedPos A resolved position along the start of the\n // content. May have a `depth` greater than this object's `depth`\n // property, since these are the positions that were used to\n // compute the range, not re-resolved positions directly at its\n // boundaries.\n this.$from = $from;\n // :: ResolvedPos A position along the end of the content. See\n // caveat for [`$from`](#model.NodeRange.$from).\n this.$to = $to;\n // :: number The depth of the node that this range points into.\n this.depth = depth;\n};\n\nvar prototypeAccessors$1$1 = { start: { configurable: true },end: { configurable: true },parent: { configurable: true },startIndex: { configurable: true },endIndex: { configurable: true } };\n\n// :: number The position at the start of the range.\nprototypeAccessors$1$1.start.get = function () { return this.$from.before(this.depth + 1) };\n// :: number The position at the end of the range.\nprototypeAccessors$1$1.end.get = function () { return this.$to.after(this.depth + 1) };\n\n// :: Node The parent node that the range points into.\nprototypeAccessors$1$1.parent.get = function () { return this.$from.node(this.depth) };\n// :: number The start index of the range in the parent node.\nprototypeAccessors$1$1.startIndex.get = function () { return this.$from.index(this.depth) };\n// :: number The end index of the range in the parent node.\nprototypeAccessors$1$1.endIndex.get = function () { return this.$to.indexAfter(this.depth) };\n\nObject.defineProperties( NodeRange.prototype, prototypeAccessors$1$1 );\n\nvar emptyAttrs = Object.create(null);\n\n// ::- This class represents a node in the tree that makes up a\n// ProseMirror document. So a document is an instance of `Node`, with\n// children that are also instances of `Node`.\n//\n// Nodes are persistent data structures. Instead of changing them, you\n// create new ones with the content you want. Old ones keep pointing\n// at the old document shape. This is made cheaper by sharing\n// structure between the old and new data as much as possible, which a\n// tree shape like this (without back pointers) makes easy.\n//\n// **Do not** directly mutate the properties of a `Node` object. See\n// [the guide](/docs/guide/#doc) for more information.\nvar Node = function Node(type, attrs, content, marks) {\n // :: NodeType\n // The type of node that this is.\n this.type = type;\n\n // :: Object\n // An object mapping attribute names to values. The kind of\n // attributes allowed and required are\n // [determined](#model.NodeSpec.attrs) by the node type.\n this.attrs = attrs;\n\n // :: Fragment\n // A container holding the node's children.\n this.content = content || Fragment.empty;\n\n // :: [Mark]\n // The marks (things like whether it is emphasized or part of a\n // link) applied to this node.\n this.marks = marks || Mark.none;\n};\n\nvar prototypeAccessors$3 = { nodeSize: { configurable: true },childCount: { configurable: true },textContent: { configurable: true },firstChild: { configurable: true },lastChild: { configurable: true },isBlock: { configurable: true },isTextblock: { configurable: true },inlineContent: { configurable: true },isInline: { configurable: true },isText: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true } };\n\n// text:: ?string\n// For text nodes, this contains the node's text content.\n\n// :: number\n// The size of this node, as defined by the integer-based [indexing\n// scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n// amount of characters. For other leaf nodes, it is one. For\n// non-leaf nodes, it is the size of the content plus two (the start\n// and end token).\nprototypeAccessors$3.nodeSize.get = function () { return this.isLeaf ? 1 : 2 + this.content.size };\n\n// :: number\n// The number of children that the node has.\nprototypeAccessors$3.childCount.get = function () { return this.content.childCount };\n\n// :: (number) → Node\n// Get the child node at the given index. Raises an error when the\n// index is out of range.\nNode.prototype.child = function child (index) { return this.content.child(index) };\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nNode.prototype.maybeChild = function maybeChild (index) { return this.content.maybeChild(index) };\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nNode.prototype.forEach = function forEach (f) { this.content.forEach(f); };\n\n// :: (number, number, (node: Node, pos: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes recursively between\n// the given two positions that are relative to start of this node's\n// content. The callback is invoked with the node, its\n// parent-relative position, its parent node, and its child index.\n// When the callback returns false for a given node, that node's\n// children will not be recursed over. The last parameter can be\n// used to specify a starting position to count from.\nNode.prototype.nodesBetween = function nodesBetween (from, to, f, startPos) {\n if ( startPos === void 0 ) startPos = 0;\n\n this.content.nodesBetween(from, to, f, startPos, this);\n};\n\n// :: ((node: Node, pos: number, parent: Node, index: number) → ?bool)\n// Call the given callback for every descendant node. Doesn't\n// descend into a node when the callback returns `false`.\nNode.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.content.size, f);\n};\n\n// :: string\n// Concatenates all the text nodes found in this fragment and its\n// children.\nprototypeAccessors$3.textContent.get = function () { return this.textBetween(0, this.content.size, \"\") };\n\n// :: (number, number, ?string, ?union string>) → string\n// Get all text between positions `from` and `to`. When\n// `blockSeparator` is given, it will be inserted to separate text\n// from different block nodes. When `leafText` is given, it'll be\n// inserted for every non-text leaf node encountered.\nNode.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText)\n};\n\n// :: ?Node\n// Returns this node's first child, or `null` if there are no\n// children.\nprototypeAccessors$3.firstChild.get = function () { return this.content.firstChild };\n\n// :: ?Node\n// Returns this node's last child, or `null` if there are no\n// children.\nprototypeAccessors$3.lastChild.get = function () { return this.content.lastChild };\n\n// :: (Node) → bool\n// Test whether two nodes represent the same piece of document.\nNode.prototype.eq = function eq (other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content))\n};\n\n// :: (Node) → bool\n// Compare the markup (type, attributes, and marks) of this node to\n// those of another. Returns `true` if both have the same markup.\nNode.prototype.sameMarkup = function sameMarkup (other) {\n return this.hasMarkup(other.type, other.attrs, other.marks)\n};\n\n// :: (NodeType, ?Object, ?[Mark]) → bool\n// Check whether this node's markup correspond to the given type,\n// attributes, and marks.\nNode.prototype.hasMarkup = function hasMarkup (type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none)\n};\n\n// :: (?Fragment) → Node\n// Create a new node with the same markup as this node, containing\n// the given content (or empty, if no content is given).\nNode.prototype.copy = function copy (content) {\n if ( content === void 0 ) content = null;\n\n if (content == this.content) { return this }\n return new this.constructor(this.type, this.attrs, content, this.marks)\n};\n\n// :: ([Mark]) → Node\n// Create a copy of this node, with the given set of marks instead\n// of the node's own marks.\nNode.prototype.mark = function mark (marks) {\n return marks == this.marks ? this : new this.constructor(this.type, this.attrs, this.content, marks)\n};\n\n// :: (number, ?number) → Node\n// Create a copy of this node with only the content between the\n// given positions. If `to` is not given, it defaults to the end of\n// the node.\nNode.prototype.cut = function cut (from, to) {\n if (from == 0 && to == this.content.size) { return this }\n return this.copy(this.content.cut(from, to))\n};\n\n// :: (number, ?number) → Slice\n// Cut out the part of the document between the given positions, and\n// return it as a `Slice` object.\nNode.prototype.slice = function slice (from, to, includeParents) {\n if ( to === void 0 ) to = this.content.size;\n if ( includeParents === void 0 ) includeParents = false;\n\n if (from == to) { return Slice.empty }\n\n var $from = this.resolve(from), $to = this.resolve(to);\n var depth = includeParents ? 0 : $from.sharedDepth(to);\n var start = $from.start(depth), node = $from.node(depth);\n var content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth)\n};\n\n// :: (number, number, Slice) → Node\n// Replace the part of the document between the given positions with\n// the given slice. The slice must 'fit', meaning its open sides\n// must be able to connect to the surrounding content, and its\n// content nodes must be valid children for the node they are placed\n// into. If any of this is violated, an error of type\n// [`ReplaceError`](#model.ReplaceError) is thrown.\nNode.prototype.replace = function replace$1 (from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice)\n};\n\n// :: (number) → ?Node\n// Find the node directly after the given position.\nNode.prototype.nodeAt = function nodeAt (pos) {\n for (var node = this;;) {\n var ref = node.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n node = node.maybeChild(index);\n if (!node) { return null }\n if (offset == pos || node.isText) { return node }\n pos -= offset + 1;\n }\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node after the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childAfter = function childAfter (pos) {\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n return {node: this.content.maybeChild(index), index: index, offset: offset}\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node before the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childBefore = function childBefore (pos) {\n if (pos == 0) { return {node: null, index: 0, offset: 0} }\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n if (offset < pos) { return {node: this.content.child(index), index: index, offset: offset} }\n var node = this.content.child(index - 1);\n return {node: node, index: index - 1, offset: offset - node.nodeSize}\n};\n\n// :: (number) → ResolvedPos\n// Resolve the given position in the document, returning an\n// [object](#model.ResolvedPos) with information about its context.\nNode.prototype.resolve = function resolve (pos) { return ResolvedPos.resolveCached(this, pos) };\n\nNode.prototype.resolveNoCache = function resolveNoCache (pos) { return ResolvedPos.resolve(this, pos) };\n\n// :: (number, number, union) → bool\n// Test whether a given mark or mark type occurs in this document\n// between the two given positions.\nNode.prototype.rangeHasMark = function rangeHasMark (from, to, type) {\n var found = false;\n if (to > from) { this.nodesBetween(from, to, function (node) {\n if (type.isInSet(node.marks)) { found = true; }\n return !found\n }); }\n return found\n};\n\n// :: bool\n// True when this is a block (non-inline node)\nprototypeAccessors$3.isBlock.get = function () { return this.type.isBlock };\n\n// :: bool\n// True when this is a textblock node, a block node with inline\n// content.\nprototypeAccessors$3.isTextblock.get = function () { return this.type.isTextblock };\n\n// :: bool\n// True when this node allows inline content.\nprototypeAccessors$3.inlineContent.get = function () { return this.type.inlineContent };\n\n// :: bool\n// True when this is an inline node (a text node or a node that can\n// appear among text).\nprototypeAccessors$3.isInline.get = function () { return this.type.isInline };\n\n// :: bool\n// True when this is a text node.\nprototypeAccessors$3.isText.get = function () { return this.type.isText };\n\n// :: bool\n// True when this is a leaf node.\nprototypeAccessors$3.isLeaf.get = function () { return this.type.isLeaf };\n\n// :: bool\n// True when this is an atom, i.e. when it does not have directly\n// editable content. This is usually the same as `isLeaf`, but can\n// be configured with the [`atom` property](#model.NodeSpec.atom) on\n// a node's spec (typically used when the node is displayed as an\n// uneditable [node view](#view.NodeView)).\nprototypeAccessors$3.isAtom.get = function () { return this.type.isAtom };\n\n// :: () → string\n// Return a string representation of this node for debugging\n// purposes.\nNode.prototype.toString = function toString () {\n if (this.type.spec.toDebugString) { return this.type.spec.toDebugString(this) }\n var name = this.type.name;\n if (this.content.size)\n { name += \"(\" + this.content.toStringInner() + \")\"; }\n return wrapMarks(this.marks, name)\n};\n\n// :: (number) → ContentMatch\n// Get the content match in this node at the given index.\nNode.prototype.contentMatchAt = function contentMatchAt (index) {\n var match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match) { throw new Error(\"Called contentMatchAt on a node with invalid content\") }\n return match\n};\n\n// :: (number, number, ?Fragment, ?number, ?number) → bool\n// Test whether replacing the range between `from` and `to` (by\n// child index) with the given replacement fragment (which defaults\n// to the empty fragment) would leave the node's content valid. You\n// can optionally pass `start` and `end` indices into the\n// replacement fragment.\nNode.prototype.canReplace = function canReplace (from, to, replacement, start, end) {\n if ( replacement === void 0 ) replacement = Fragment.empty;\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = replacement.childCount;\n\n var one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n var two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd) { return false }\n for (var i = start; i < end; i++) { if (!this.type.allowsMarks(replacement.child(i).marks)) { return false } }\n return true\n};\n\n// :: (number, number, NodeType, ?[Mark]) → bool\n// Test whether replacing the range `from` to `to` (by index) with a\n// node of the given type would leave the node's content valid.\nNode.prototype.canReplaceWith = function canReplaceWith (from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks)) { return false }\n var start = this.contentMatchAt(from).matchType(type);\n var end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false\n};\n\n// :: (Node) → bool\n// Test whether the given node's content could be appended to this\n// node. If that node is empty, this will only return true if there\n// is at least one node type that can appear in both nodes (to avoid\n// merging completely incompatible nodes).\nNode.prototype.canAppend = function canAppend (other) {\n if (other.content.size) { return this.canReplace(this.childCount, this.childCount, other.content) }\n else { return this.type.compatibleContent(other.type) }\n};\n\n// :: ()\n// Check whether this node and its descendants conform to the\n// schema, and raise error when they do not.\nNode.prototype.check = function check () {\n if (!this.type.validContent(this.content))\n { throw new RangeError((\"Invalid content for node \" + (this.type.name) + \": \" + (this.content.toString().slice(0, 50)))) }\n var copy = Mark.none;\n for (var i = 0; i < this.marks.length; i++) { copy = this.marks[i].addToSet(copy); }\n if (!Mark.sameSet(copy, this.marks))\n { throw new RangeError((\"Invalid collection of marks for node \" + (this.type.name) + \": \" + (this.marks.map(function (m) { return m.type.name; })))) }\n this.content.forEach(function (node) { return node.check(); });\n};\n\n// :: () → Object\n// Return a JSON-serializeable representation of this node.\nNode.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n if (this.content.size)\n { obj.content = this.content.toJSON(); }\n if (this.marks.length)\n { obj.marks = this.marks.map(function (n) { return n.toJSON(); }); }\n return obj\n};\n\n// :: (Schema, Object) → Node\n// Deserialize a node from its JSON representation.\nNode.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Node.fromJSON\") }\n var marks = null;\n if (json.marks) {\n if (!Array.isArray(json.marks)) { throw new RangeError(\"Invalid mark data for Node.fromJSON\") }\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\") { throw new RangeError(\"Invalid text node in JSON\") }\n return schema.text(json.text, marks)\n }\n var content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks)\n};\n\nObject.defineProperties( Node.prototype, prototypeAccessors$3 );\n\nvar TextNode = /*@__PURE__*/(function (Node) {\n function TextNode(type, attrs, content, marks) {\n Node.call(this, type, attrs, null, marks);\n\n if (!content) { throw new RangeError(\"Empty text nodes are not allowed\") }\n\n this.text = content;\n }\n\n if ( Node ) TextNode.__proto__ = Node;\n TextNode.prototype = Object.create( Node && Node.prototype );\n TextNode.prototype.constructor = TextNode;\n\n var prototypeAccessors$1 = { textContent: { configurable: true },nodeSize: { configurable: true } };\n\n TextNode.prototype.toString = function toString () {\n if (this.type.spec.toDebugString) { return this.type.spec.toDebugString(this) }\n return wrapMarks(this.marks, JSON.stringify(this.text))\n };\n\n prototypeAccessors$1.textContent.get = function () { return this.text };\n\n TextNode.prototype.textBetween = function textBetween (from, to) { return this.text.slice(from, to) };\n\n prototypeAccessors$1.nodeSize.get = function () { return this.text.length };\n\n TextNode.prototype.mark = function mark (marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks)\n };\n\n TextNode.prototype.withText = function withText (text) {\n if (text == this.text) { return this }\n return new TextNode(this.type, this.attrs, text, this.marks)\n };\n\n TextNode.prototype.cut = function cut (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.text.length;\n\n if (from == 0 && to == this.text.length) { return this }\n return this.withText(this.text.slice(from, to))\n };\n\n TextNode.prototype.eq = function eq (other) {\n return this.sameMarkup(other) && this.text == other.text\n };\n\n TextNode.prototype.toJSON = function toJSON () {\n var base = Node.prototype.toJSON.call(this);\n base.text = this.text;\n return base\n };\n\n Object.defineProperties( TextNode.prototype, prototypeAccessors$1 );\n\n return TextNode;\n}(Node));\n\nfunction wrapMarks(marks, str) {\n for (var i = marks.length - 1; i >= 0; i--)\n { str = marks[i].type.name + \"(\" + str + \")\"; }\n return str\n}\n\n// ::- Instances of this class represent a match state of a node\n// type's [content expression](#model.NodeSpec.content), and can be\n// used to find out whether further content matches here, and whether\n// a given position is a valid end of the node.\nvar ContentMatch = function ContentMatch(validEnd) {\n // :: bool\n // True when this match state represents a valid end of the node.\n this.validEnd = validEnd;\n this.next = [];\n this.wrapCache = [];\n};\n\nvar prototypeAccessors$4 = { inlineContent: { configurable: true },defaultType: { configurable: true },edgeCount: { configurable: true } };\n\nContentMatch.parse = function parse (string, nodeTypes) {\n var stream = new TokenStream(string, nodeTypes);\n if (stream.next == null) { return ContentMatch.empty }\n var expr = parseExpr(stream);\n if (stream.next) { stream.err(\"Unexpected trailing text\"); }\n var match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match\n};\n\n// :: (NodeType) → ?ContentMatch\n// Match a node type, returning a match after that node if\n// successful.\nContentMatch.prototype.matchType = function matchType (type) {\n for (var i = 0; i < this.next.length; i += 2)\n { if (this.next[i] == type) { return this.next[i + 1] } }\n return null\n};\n\n// :: (Fragment, ?number, ?number) → ?ContentMatch\n// Try to match a fragment. Returns the resulting match when\n// successful.\nContentMatch.prototype.matchFragment = function matchFragment (frag, start, end) {\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = frag.childCount;\n\n var cur = this;\n for (var i = start; cur && i < end; i++)\n { cur = cur.matchType(frag.child(i).type); }\n return cur\n};\n\nprototypeAccessors$4.inlineContent.get = function () {\n var first = this.next[0];\n return first ? first.isInline : false\n};\n\n// :: ?NodeType\n// Get the first matching node type at this match position that can\n// be generated.\nprototypeAccessors$4.defaultType.get = function () {\n for (var i = 0; i < this.next.length; i += 2) {\n var type = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs())) { return type }\n }\n};\n\nContentMatch.prototype.compatible = function compatible (other) {\n for (var i = 0; i < this.next.length; i += 2)\n { for (var j = 0; j < other.next.length; j += 2)\n { if (this.next[i] == other.next[j]) { return true } } }\n return false\n};\n\n// :: (Fragment, bool, ?number) → ?Fragment\n// Try to match the given fragment, and if that fails, see if it can\n// be made to match by inserting nodes in front of it. When\n// successful, return a fragment of inserted nodes (which may be\n// empty if nothing had to be inserted). When `toEnd` is true, only\n// return a fragment if the resulting match goes to the end of the\n// content expression.\nContentMatch.prototype.fillBefore = function fillBefore (after, toEnd, startIndex) {\n if ( toEnd === void 0 ) toEnd = false;\n if ( startIndex === void 0 ) startIndex = 0;\n\n var seen = [this];\n function search(match, types) {\n var finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n { return Fragment.from(types.map(function (tp) { return tp.createAndFill(); })) }\n\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i], next = match.next[i + 1];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n var found = search(next, types.concat(type));\n if (found) { return found }\n }\n }\n }\n\n return search(this, [])\n};\n\n// :: (NodeType) → ?[NodeType]\n// Find a set of wrapping node types that would allow a node of the\n// given type to appear at this position. The result may be empty\n// (when it fits directly) and will be null when no such wrapping\n// exists.\nContentMatch.prototype.findWrapping = function findWrapping (target) {\n for (var i = 0; i < this.wrapCache.length; i += 2)\n { if (this.wrapCache[i] == target) { return this.wrapCache[i + 1] } }\n var computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed\n};\n\nContentMatch.prototype.computeWrapping = function computeWrapping (target) {\n var seen = Object.create(null), active = [{match: this, type: null, via: null}];\n while (active.length) {\n var current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n var result = [];\n for (var obj = current; obj.type; obj = obj.via)\n { result.push(obj.type); }\n return result.reverse()\n }\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || match.next[i + 1].validEnd)) {\n active.push({match: type.contentMatch, type: type, via: current});\n seen[type.name] = true;\n }\n }\n }\n};\n\n// :: number\n// The number of outgoing edges this node has in the finite\n// automaton that describes the content expression.\nprototypeAccessors$4.edgeCount.get = function () {\n return this.next.length >> 1\n};\n\n// :: (number) → {type: NodeType, next: ContentMatch}\n// Get the _n_​th outgoing edge from this node in the finite\n// automaton that describes the content expression.\nContentMatch.prototype.edge = function edge (n) {\n var i = n << 1;\n if (i >= this.next.length) { throw new RangeError((\"There's no \" + n + \"th edge in this content match\")) }\n return {type: this.next[i], next: this.next[i + 1]}\n};\n\nContentMatch.prototype.toString = function toString () {\n var seen = [];\n function scan(m) {\n seen.push(m);\n for (var i = 1; i < m.next.length; i += 2)\n { if (seen.indexOf(m.next[i]) == -1) { scan(m.next[i]); } }\n }\n scan(this);\n return seen.map(function (m, i) {\n var out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (var i$1 = 0; i$1 < m.next.length; i$1 += 2)\n { out += (i$1 ? \", \" : \"\") + m.next[i$1].name + \"->\" + seen.indexOf(m.next[i$1 + 1]); }\n return out\n }).join(\"\\n\")\n};\n\nObject.defineProperties( ContentMatch.prototype, prototypeAccessors$4 );\n\nContentMatch.empty = new ContentMatch(true);\n\nvar TokenStream = function TokenStream(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\") { this.tokens.pop(); }\n if (this.tokens[0] == \"\") { this.tokens.shift(); }\n};\n\nvar prototypeAccessors$1$2 = { next: { configurable: true } };\n\nprototypeAccessors$1$2.next.get = function () { return this.tokens[this.pos] };\n\nTokenStream.prototype.eat = function eat (tok) { return this.next == tok && (this.pos++ || true) };\n\nTokenStream.prototype.err = function err (str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\") };\n\nObject.defineProperties( TokenStream.prototype, prototypeAccessors$1$2 );\n\nfunction parseExpr(stream) {\n var exprs = [];\n do { exprs.push(parseExprSeq(stream)); }\n while (stream.eat(\"|\"))\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n}\n\nfunction parseExprSeq(stream) {\n var exprs = [];\n do { exprs.push(parseExprSubscript(stream)); }\n while (stream.next && stream.next != \")\" && stream.next != \"|\")\n return exprs.length == 1 ? exprs[0] : {type: \"seq\", exprs: exprs}\n}\n\nfunction parseExprSubscript(stream) {\n var expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n { expr = {type: \"plus\", expr: expr}; }\n else if (stream.eat(\"*\"))\n { expr = {type: \"star\", expr: expr}; }\n else if (stream.eat(\"?\"))\n { expr = {type: \"opt\", expr: expr}; }\n else if (stream.eat(\"{\"))\n { expr = parseExprRange(stream, expr); }\n else { break }\n }\n return expr\n}\n\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next)) { stream.err(\"Expected number, got '\" + stream.next + \"'\"); }\n var result = Number(stream.next);\n stream.pos++;\n return result\n}\n\nfunction parseExprRange(stream, expr) {\n var min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\") { max = parseNum(stream); }\n else { max = -1; }\n }\n if (!stream.eat(\"}\")) { stream.err(\"Unclosed braced range\"); }\n return {type: \"range\", min: min, max: max, expr: expr}\n}\n\nfunction resolveName(stream, name) {\n var types = stream.nodeTypes, type = types[name];\n if (type) { return [type] }\n var result = [];\n for (var typeName in types) {\n var type$1 = types[typeName];\n if (type$1.groups.indexOf(name) > -1) { result.push(type$1); }\n }\n if (result.length == 0) { stream.err(\"No node type or group '\" + name + \"' found\"); }\n return result\n}\n\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n var expr = parseExpr(stream);\n if (!stream.eat(\")\")) { stream.err(\"Missing closing paren\"); }\n return expr\n } else if (!/\\W/.test(stream.next)) {\n var exprs = resolveName(stream, stream.next).map(function (type) {\n if (stream.inline == null) { stream.inline = type.isInline; }\n else if (stream.inline != type.isInline) { stream.err(\"Mixing inline and block content\"); }\n return {type: \"name\", value: type}\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n } else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n\n// The code below helps compile a regular-expression-like language\n// into a deterministic finite automaton. For a good introduction to\n// these concepts, see https://swtch.com/~rsc/regexp/regexp1.html\n\n// : (Object) → [[{term: ?any, to: number}]]\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n var nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa\n\n function node() { return nfa.push([]) - 1 }\n function edge(from, to, term) {\n var edge = {term: term, to: to};\n nfa[from].push(edge);\n return edge\n }\n function connect(edges, to) { edges.forEach(function (edge) { return edge.to = to; }); }\n\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce(function (out, expr) { return out.concat(compile(expr, from)); }, [])\n } else if (expr.type == \"seq\") {\n for (var i = 0;; i++) {\n var next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1) { return next }\n connect(next, from = node());\n }\n } else if (expr.type == \"star\") {\n var loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)]\n } else if (expr.type == \"plus\") {\n var loop$1 = node();\n connect(compile(expr.expr, from), loop$1);\n connect(compile(expr.expr, loop$1), loop$1);\n return [edge(loop$1)]\n } else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from))\n } else if (expr.type == \"range\") {\n var cur = from;\n for (var i$1 = 0; i$1 < expr.min; i$1++) {\n var next$1 = node();\n connect(compile(expr.expr, cur), next$1);\n cur = next$1;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n } else {\n for (var i$2 = expr.min; i$2 < expr.max; i$2++) {\n var next$2 = node();\n edge(cur, next$2);\n connect(compile(expr.expr, cur), next$2);\n cur = next$2;\n }\n }\n return [edge(cur)]\n } else if (expr.type == \"name\") {\n return [edge(from, null, expr.value)]\n }\n }\n}\n\nfunction cmp(a, b) { return b - a }\n\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n var result = [];\n scan(node);\n return result.sort(cmp)\n\n function scan(node) {\n var edges = nfa[node];\n if (edges.length == 1 && !edges[0].term) { return scan(edges[0].to) }\n result.push(node);\n for (var i = 0; i < edges.length; i++) {\n var ref = edges[i];\n var term = ref.term;\n var to = ref.to;\n if (!term && result.indexOf(to) == -1) { scan(to); }\n }\n }\n}\n\n// : ([[{term: ?any, to: number}]]) → ContentMatch\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n var labeled = Object.create(null);\n return explore(nullFrom(nfa, 0))\n\n function explore(states) {\n var out = [];\n states.forEach(function (node) {\n nfa[node].forEach(function (ref) {\n var term = ref.term;\n var to = ref.to;\n\n if (!term) { return }\n var known = out.indexOf(term), set = known > -1 && out[known + 1];\n nullFrom(nfa, to).forEach(function (node) {\n if (!set) { out.push(term, set = []); }\n if (set.indexOf(node) == -1) { set.push(node); }\n });\n });\n });\n var state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (var i = 0; i < out.length; i += 2) {\n var states$1 = out[i + 1].sort(cmp);\n state.next.push(out[i], labeled[states$1.join(\",\")] || explore(states$1));\n }\n return state\n }\n}\n\nfunction checkForDeadEnds(match, stream) {\n for (var i = 0, work = [match]; i < work.length; i++) {\n var state = work[i], dead = !state.validEnd, nodes = [];\n for (var j = 0; j < state.next.length; j += 2) {\n var node = state.next[j], next = state.next[j + 1];\n nodes.push(node.name);\n if (dead && !(node.isText || node.hasRequiredAttrs())) { dead = false; }\n if (work.indexOf(next) == -1) { work.push(next); }\n }\n if (dead) { stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\"); }\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n var defaults = Object.create(null);\n for (var attrName in attrs) {\n var attr = attrs[attrName];\n if (!attr.hasDefault) { return null }\n defaults[attrName] = attr.default;\n }\n return defaults\n}\n\nfunction computeAttrs(attrs, value) {\n var built = Object.create(null);\n for (var name in attrs) {\n var given = value && value[name];\n if (given === undefined) {\n var attr = attrs[name];\n if (attr.hasDefault) { given = attr.default; }\n else { throw new RangeError(\"No value supplied for attribute \" + name) }\n }\n built[name] = given;\n }\n return built\n}\n\nfunction initAttrs(attrs) {\n var result = Object.create(null);\n if (attrs) { for (var name in attrs) { result[name] = new Attribute(attrs[name]); } }\n return result\n}\n\n// ::- Node types are objects allocated once per `Schema` and used to\n// [tag](#model.Node.type) `Node` instances. They contain information\n// about the node type, such as its name and what kind of node it\n// represents.\nvar NodeType = function NodeType(name, schema, spec) {\n // :: string\n // The name the node type has in this schema.\n this.name = name;\n\n // :: Schema\n // A link back to the `Schema` the node type belongs to.\n this.schema = schema;\n\n // :: NodeSpec\n // The spec that this type is based on\n this.spec = spec;\n\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n\n this.defaultAttrs = defaultAttrs(this.attrs);\n\n // :: ContentMatch\n // The starting match of the node type's content expression.\n this.contentMatch = null;\n\n // : ?[MarkType]\n // The set of marks allowed in this node. `null` means all marks\n // are allowed.\n this.markSet = null;\n\n // :: bool\n // True if this node type has inline content.\n this.inlineContent = null;\n\n // :: bool\n // True if this is a block type\n this.isBlock = !(spec.inline || name == \"text\");\n\n // :: bool\n // True if this is the text node type.\n this.isText = name == \"text\";\n};\n\nvar prototypeAccessors$5 = { isInline: { configurable: true },isTextblock: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true },whitespace: { configurable: true } };\n\n// :: bool\n// True if this is an inline type.\nprototypeAccessors$5.isInline.get = function () { return !this.isBlock };\n\n// :: bool\n// True if this is a textblock type, a block that contains inline\n// content.\nprototypeAccessors$5.isTextblock.get = function () { return this.isBlock && this.inlineContent };\n\n// :: bool\n// True for node types that allow no content.\nprototypeAccessors$5.isLeaf.get = function () { return this.contentMatch == ContentMatch.empty };\n\n// :: bool\n// True when this node is an atom, i.e. when it does not have\n// directly editable content.\nprototypeAccessors$5.isAtom.get = function () { return this.isLeaf || this.spec.atom };\n\n// :: union<\"pre\", \"normal\">\n// The node type's [whitespace](#view.NodeSpec.whitespace) option.\nprototypeAccessors$5.whitespace.get = function () { return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\") };\n\n// :: () → bool\n// Tells you whether this node type has any required attributes.\nNodeType.prototype.hasRequiredAttrs = function hasRequiredAttrs () {\n for (var n in this.attrs) { if (this.attrs[n].isRequired) { return true } }\n return false\n};\n\nNodeType.prototype.compatibleContent = function compatibleContent (other) {\n return this == other || this.contentMatch.compatible(other.contentMatch)\n};\n\nNodeType.prototype.computeAttrs = function computeAttrs$1 (attrs) {\n if (!attrs && this.defaultAttrs) { return this.defaultAttrs }\n else { return computeAttrs(this.attrs, attrs) }\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Create a `Node` of this type. The given attributes are\n// checked and defaulted (you can pass `null` to use the type's\n// defaults entirely, if no required attributes exist). `content`\n// may be a `Fragment`, a node, an array of nodes, or\n// `null`. Similarly `marks` may be `null` to default to the empty\n// set of marks.\nNodeType.prototype.create = function create (attrs, content, marks) {\n if (this.isText) { throw new Error(\"NodeType.create can't construct text nodes\") }\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Like [`create`](#model.NodeType.create), but check the given content\n// against the node type's content restrictions, and throw an error\n// if it doesn't match.\nNodeType.prototype.createChecked = function createChecked (attrs, content, marks) {\n content = Fragment.from(content);\n if (!this.validContent(content))\n { throw new RangeError(\"Invalid content for node \" + this.name) }\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → ?Node\n// Like [`create`](#model.NodeType.create), but see if it is necessary to\n// add nodes to the start or end of the given fragment to make it\n// fit the node. If no fitting wrapping can be found, return null.\n// Note that, due to the fact that required nodes can always be\n// created, this will always succeed if you pass null or\n// `Fragment.empty` as content.\nNodeType.prototype.createAndFill = function createAndFill (attrs, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n var before = this.contentMatch.fillBefore(content);\n if (!before) { return null }\n content = before.append(content);\n }\n var after = this.contentMatch.matchFragment(content).fillBefore(Fragment.empty, true);\n if (!after) { return null }\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks))\n};\n\n// :: (Fragment) → bool\n// Returns true if the given fragment is valid content for this node\n// type with the given attributes.\nNodeType.prototype.validContent = function validContent (content) {\n var result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd) { return false }\n for (var i = 0; i < content.childCount; i++)\n { if (!this.allowsMarks(content.child(i).marks)) { return false } }\n return true\n};\n\n// :: (MarkType) → bool\n// Check whether the given mark type is allowed in this node.\nNodeType.prototype.allowsMarkType = function allowsMarkType (markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1\n};\n\n// :: ([Mark]) → bool\n// Test whether the given set of marks are allowed in this node.\nNodeType.prototype.allowsMarks = function allowsMarks (marks) {\n if (this.markSet == null) { return true }\n for (var i = 0; i < marks.length; i++) { if (!this.allowsMarkType(marks[i].type)) { return false } }\n return true\n};\n\n// :: ([Mark]) → [Mark]\n// Removes the marks that are not allowed in this node from the given set.\nNodeType.prototype.allowedMarks = function allowedMarks (marks) {\n if (this.markSet == null) { return marks }\n var copy;\n for (var i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy) { copy = marks.slice(0, i); }\n } else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.empty\n};\n\nNodeType.compile = function compile (nodes, schema) {\n var result = Object.create(null);\n nodes.forEach(function (name, spec) { return result[name] = new NodeType(name, schema, spec); });\n\n var topType = schema.spec.topNode || \"doc\";\n if (!result[topType]) { throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\") }\n if (!result.text) { throw new RangeError(\"Every schema needs a 'text' type\") }\n for (var _ in result.text.attrs) { throw new RangeError(\"The text node type should not have attributes\") }\n\n return result\n};\n\nObject.defineProperties( NodeType.prototype, prototypeAccessors$5 );\n\n// Attribute descriptors\n\nvar Attribute = function Attribute(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n};\n\nvar prototypeAccessors$1$3 = { isRequired: { configurable: true } };\n\nprototypeAccessors$1$3.isRequired.get = function () {\n return !this.hasDefault\n};\n\nObject.defineProperties( Attribute.prototype, prototypeAccessors$1$3 );\n\n// Marks\n\n// ::- Like nodes, marks (which are associated with nodes to signify\n// things like emphasis or being part of a link) are\n// [tagged](#model.Mark.type) with type objects, which are\n// instantiated once per `Schema`.\nvar MarkType = function MarkType(name, rank, schema, spec) {\n // :: string\n // The name of the mark type.\n this.name = name;\n\n // :: Schema\n // The schema that this mark type instance is part of.\n this.schema = schema;\n\n // :: MarkSpec\n // The spec on which the type is based.\n this.spec = spec;\n\n this.attrs = initAttrs(spec.attrs);\n\n this.rank = rank;\n this.excluded = null;\n var defaults = defaultAttrs(this.attrs);\n this.instance = defaults && new Mark(this, defaults);\n};\n\n// :: (?Object) → Mark\n// Create a mark of this type. `attrs` may be `null` or an object\n// containing only some of the mark's attributes. The others, if\n// they have defaults, will be added.\nMarkType.prototype.create = function create (attrs) {\n if (!attrs && this.instance) { return this.instance }\n return new Mark(this, computeAttrs(this.attrs, attrs))\n};\n\nMarkType.compile = function compile (marks, schema) {\n var result = Object.create(null), rank = 0;\n marks.forEach(function (name, spec) { return result[name] = new MarkType(name, rank++, schema, spec); });\n return result\n};\n\n// :: ([Mark]) → [Mark]\n// When there is a mark of this type in the given set, a new set\n// without it is returned. Otherwise, the input set is returned.\nMarkType.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++) { if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n } }\n return set\n};\n\n// :: ([Mark]) → ?Mark\n// Tests whether there is a mark of this type in the given set.\nMarkType.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (set[i].type == this) { return set[i] } }\n};\n\n// :: (MarkType) → bool\n// Queries whether a given mark type is\n// [excluded](#model.MarkSpec.excludes) by this one.\nMarkType.prototype.excludes = function excludes (other) {\n return this.excluded.indexOf(other) > -1\n};\n\n// SchemaSpec:: interface\n// An object describing a schema, as passed to the [`Schema`](#model.Schema)\n// constructor.\n//\n// nodes:: union, OrderedMap>\n// The node types in this schema. Maps names to\n// [`NodeSpec`](#model.NodeSpec) objects that describe the node type\n// associated with that name. Their order is significant—it\n// determines which [parse rules](#model.NodeSpec.parseDOM) take\n// precedence by default, and which nodes come first in a given\n// [group](#model.NodeSpec.group).\n//\n// marks:: ?union, OrderedMap>\n// The mark types that exist in this schema. The order in which they\n// are provided determines the order in which [mark\n// sets](#model.Mark.addToSet) are sorted and in which [parse\n// rules](#model.MarkSpec.parseDOM) are tried.\n//\n// topNode:: ?string\n// The name of the default top-level node for the schema. Defaults\n// to `\"doc\"`.\n\n// NodeSpec:: interface\n//\n// content:: ?string\n// The content expression for this node, as described in the [schema\n// guide](/docs/guide/#schema.content_expressions). When not given,\n// the node does not allow any content.\n//\n// marks:: ?string\n// The marks that are allowed inside of this node. May be a\n// space-separated string referring to mark names or groups, `\"_\"`\n// to explicitly allow all marks, or `\"\"` to disallow marks. When\n// not given, nodes with inline content default to allowing all\n// marks, other nodes default to not allowing marks.\n//\n// group:: ?string\n// The group or space-separated groups to which this node belongs,\n// which can be referred to in the content expressions for the\n// schema.\n//\n// inline:: ?bool\n// Should be set to true for inline nodes. (Implied for text nodes.)\n//\n// atom:: ?bool\n// Can be set to true to indicate that, though this isn't a [leaf\n// node](#model.NodeType.isLeaf), it doesn't have directly editable\n// content and should be treated as a single unit in the view.\n//\n// attrs:: ?Object\n// The attributes that nodes of this type get.\n//\n// selectable:: ?bool\n// Controls whether nodes of this type can be selected as a [node\n// selection](#state.NodeSelection). Defaults to true for non-text\n// nodes.\n//\n// draggable:: ?bool\n// Determines whether nodes of this type can be dragged without\n// being selected. Defaults to false.\n//\n// code:: ?bool\n// Can be used to indicate that this node contains code, which\n// causes some commands to behave differently.\n//\n// whitespace:: ?union<\"pre\", \"normal\">\n// Controls way whitespace in this a node is parsed. The default is\n// `\"normal\"`, which causes the [DOM parser](#model.DOMParser) to\n// collapse whitespace in normal mode, and normalize it (replacing\n// newlines and such with spaces) otherwise. `\"pre\"` causes the\n// parser to preserve spaces inside the node. When this option isn't\n// given, but [`code`](#model.NodeSpec.code) is true, `whitespace`\n// will default to `\"pre\"`. Note that this option doesn't influence\n// the way the node is rendered—that should be handled by `toDOM`\n// and/or styling.\n//\n// defining:: ?bool\n// Determines whether this node is considered an important parent\n// node during replace operations (such as paste). Non-defining (the\n// default) nodes get dropped when their entire content is replaced,\n// whereas defining nodes persist and wrap the inserted content.\n// Likewise, in _inserted_ content the defining parents of the\n// content are preserved when possible. Typically,\n// non-default-paragraph textblock types, and possibly list items,\n// are marked as defining.\n//\n// isolating:: ?bool\n// When enabled (default is false), the sides of nodes of this type\n// count as boundaries that regular editing operations, like\n// backspacing or lifting, won't cross. An example of a node that\n// should probably have this enabled is a table cell.\n//\n// toDOM:: ?(node: Node) → DOMOutputSpec\n// Defines the default way a node of this type should be serialized\n// to DOM/HTML (as used by\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)).\n// Should return a DOM node or an [array\n// structure](#model.DOMOutputSpec) that describes one, with an\n// optional number zero (“hole”) in it to indicate where the node's\n// content should be inserted.\n//\n// For text nodes, the default is to create a text DOM node. Though\n// it is possible to create a serializer where text is rendered\n// differently, this is not supported inside the editor, so you\n// shouldn't override that in your text node spec.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this node, which can be\n// used by [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) to\n// automatically derive a parser. The `node` field in the rules is\n// implied (the name of this node will be filled in automatically).\n// If you supply your own parser, you do not need to also specify\n// parsing rules in your schema.\n//\n// toDebugString:: ?(node: Node) -> string\n// Defines the default way a node of this type should be serialized\n// to a string representation for debugging (e.g. in error messages).\n\n// MarkSpec:: interface\n//\n// attrs:: ?Object\n// The attributes that marks of this type get.\n//\n// inclusive:: ?bool\n// Whether this mark should be active when the cursor is positioned\n// at its end (or at its start when that is also the start of the\n// parent node). Defaults to true.\n//\n// excludes:: ?string\n// Determines which other marks this mark can coexist with. Should\n// be a space-separated strings naming other marks or groups of marks.\n// When a mark is [added](#model.Mark.addToSet) to a set, all marks\n// that it excludes are removed in the process. If the set contains\n// any mark that excludes the new mark but is not, itself, excluded\n// by the new mark, the mark can not be added an the set. You can\n// use the value `\"_\"` to indicate that the mark excludes all\n// marks in the schema.\n//\n// Defaults to only being exclusive with marks of the same type. You\n// can set it to an empty string (or any string not containing the\n// mark's own name) to allow multiple marks of a given type to\n// coexist (as long as they have different attributes).\n//\n// group:: ?string\n// The group or space-separated groups to which this mark belongs.\n//\n// spanning:: ?bool\n// Determines whether marks of this type can span multiple adjacent\n// nodes when serialized to DOM/HTML. Defaults to true.\n//\n// toDOM:: ?(mark: Mark, inline: bool) → DOMOutputSpec\n// Defines the default way marks of this type should be serialized\n// to DOM/HTML. When the resulting spec contains a hole, that is\n// where the marked content is placed. Otherwise, it is appended to\n// the top node.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this mark (see the\n// corresponding [node spec field](#model.NodeSpec.parseDOM)). The\n// `mark` field in the rules is implied.\n\n// AttributeSpec:: interface\n//\n// Used to [define](#model.NodeSpec.attrs) attributes on nodes or\n// marks.\n//\n// default:: ?any\n// The default value for this attribute, to use when no explicit\n// value is provided. Attributes that have no default must be\n// provided whenever a node or mark of a type that has them is\n// created.\n\n// ::- A document schema. Holds [node](#model.NodeType) and [mark\n// type](#model.MarkType) objects for the nodes and marks that may\n// occur in conforming documents, and provides functionality for\n// creating and deserializing such documents.\nvar Schema = function Schema(spec) {\n // :: SchemaSpec\n // The [spec](#model.SchemaSpec) on which the schema is based,\n // with the added guarantee that its `nodes` and `marks`\n // properties are\n // [`OrderedMap`](https://github.com/marijnh/orderedmap) instances\n // (not raw objects).\n this.spec = {};\n for (var prop in spec) { this.spec[prop] = spec[prop]; }\n this.spec.nodes = OrderedMap.from(spec.nodes);\n this.spec.marks = OrderedMap.from(spec.marks);\n\n // :: Object\n // An object mapping the schema's node names to node type objects.\n this.nodes = NodeType.compile(this.spec.nodes, this);\n\n // :: Object\n // A map from mark names to mark type objects.\n this.marks = MarkType.compile(this.spec.marks, this);\n\n var contentExprCache = Object.create(null);\n for (var prop$1 in this.nodes) {\n if (prop$1 in this.marks)\n { throw new RangeError(prop$1 + \" can not be both a node and a mark\") }\n var type = this.nodes[prop$1], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (var prop$2 in this.marks) {\n var type$1 = this.marks[prop$2], excl = type$1.spec.excludes;\n type$1.excluded = excl == null ? [type$1] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n\n // :: NodeType\n // The type of the [default top node](#model.SchemaSpec.topNode)\n // for this schema.\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n\n // :: Object\n // An object for storing whatever values modules may want to\n // compute and cache per schema. (If you want to store something\n // in it, try to use property names unlikely to clash.)\n this.cached = Object.create(null);\n this.cached.wrappings = Object.create(null);\n};\n\n// :: (union, ?Object, ?union, ?[Mark]) → Node\n// Create a node in this schema. The `type` may be a string or a\n// `NodeType` instance. Attributes will be extended\n// with defaults, `content` may be a `Fragment`,\n// `null`, a `Node`, or an array of nodes.\nSchema.prototype.node = function node (type, attrs, content, marks) {\n if (typeof type == \"string\")\n { type = this.nodeType(type); }\n else if (!(type instanceof NodeType))\n { throw new RangeError(\"Invalid node type: \" + type) }\n else if (type.schema != this)\n { throw new RangeError(\"Node type from different schema used (\" + type.name + \")\") }\n\n return type.createChecked(attrs, content, marks)\n};\n\n// :: (string, ?[Mark]) → Node\n// Create a text node in the schema. Empty text nodes are not\n// allowed.\nSchema.prototype.text = function text (text$1, marks) {\n var type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text$1, Mark.setFrom(marks))\n};\n\n// :: (union, ?Object) → Mark\n// Create a mark with the given type and attributes.\nSchema.prototype.mark = function mark (type, attrs) {\n if (typeof type == \"string\") { type = this.marks[type]; }\n return type.create(attrs)\n};\n\n// :: (Object) → Node\n// Deserialize a node from its JSON representation. This method is\n// bound.\nSchema.prototype.nodeFromJSON = function nodeFromJSON (json) {\n return Node.fromJSON(this, json)\n};\n\n// :: (Object) → Mark\n// Deserialize a mark from its JSON representation. This method is\n// bound.\nSchema.prototype.markFromJSON = function markFromJSON (json) {\n return Mark.fromJSON(this, json)\n};\n\nSchema.prototype.nodeType = function nodeType (name) {\n var found = this.nodes[name];\n if (!found) { throw new RangeError(\"Unknown node type: \" + name) }\n return found\n};\n\nfunction gatherMarks(schema, marks) {\n var found = [];\n for (var i = 0; i < marks.length; i++) {\n var name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n } else {\n for (var prop in schema.marks) {\n var mark$1 = schema.marks[prop];\n if (name == \"_\" || (mark$1.spec.group && mark$1.spec.group.split(\" \").indexOf(name) > -1))\n { found.push(ok = mark$1); }\n }\n }\n if (!ok) { throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\") }\n }\n return found\n}\n\n// ParseOptions:: interface\n// These are the options recognized by the\n// [`parse`](#model.DOMParser.parse) and\n// [`parseSlice`](#model.DOMParser.parseSlice) methods.\n//\n// preserveWhitespace:: ?union\n// By default, whitespace is collapsed as per HTML's rules. Pass\n// `true` to preserve whitespace, but normalize newlines to\n// spaces, and `\"full\"` to preserve whitespace entirely.\n//\n// findPositions:: ?[{node: dom.Node, offset: number}]\n// When given, the parser will, beside parsing the content,\n// record the document positions of the given DOM positions. It\n// will do so by writing to the objects, adding a `pos` property\n// that holds the document position. DOM positions that are not\n// in the parsed content will not be written to.\n//\n// from:: ?number\n// The child node index to start parsing from.\n//\n// to:: ?number\n// The child node index to stop parsing at.\n//\n// topNode:: ?Node\n// By default, the content is parsed into the schema's default\n// [top node type](#model.Schema.topNodeType). You can pass this\n// option to use the type and attributes from a different node\n// as the top container.\n//\n// topMatch:: ?ContentMatch\n// Provide the starting content match that content parsed into the\n// top node is matched against.\n//\n// context:: ?ResolvedPos\n// A set of additional nodes to count as\n// [context](#model.ParseRule.context) when parsing, above the\n// given [top node](#model.ParseOptions.topNode).\n\n// ParseRule:: interface\n// A value that describes how to parse a given DOM node or inline\n// style as a ProseMirror node or mark.\n//\n// tag:: ?string\n// A CSS selector describing the kind of DOM elements to match. A\n// single rule should have _either_ a `tag` or a `style` property.\n//\n// namespace:: ?string\n// The namespace to match. This should be used with `tag`.\n// Nodes are only matched when the namespace matches or this property\n// is null.\n//\n// style:: ?string\n// A CSS property name to match. When given, this rule matches\n// inline styles that list that property. May also have the form\n// `\"property=value\"`, in which case the rule only matches if the\n// property's value exactly matches the given value. (For more\n// complicated filters, use [`getAttrs`](#model.ParseRule.getAttrs)\n// and return false to indicate that the match failed.) Rules\n// matching styles may only produce [marks](#model.ParseRule.mark),\n// not nodes.\n//\n// priority:: ?number\n// Can be used to change the order in which the parse rules in a\n// schema are tried. Those with higher priority come first. Rules\n// without a priority are counted as having priority 50. This\n// property is only meaningful in a schema—when directly\n// constructing a parser, the order of the rule array is used.\n//\n// consuming:: ?boolean\n// By default, when a rule matches an element or style, no further\n// rules get a chance to match it. By setting this to `false`, you\n// indicate that even when this rule matches, other rules that come\n// after it should also run.\n//\n// context:: ?string\n// When given, restricts this rule to only match when the current\n// context—the parent nodes into which the content is being\n// parsed—matches this expression. Should contain one or more node\n// names or node group names followed by single or double slashes.\n// For example `\"paragraph/\"` means the rule only matches when the\n// parent node is a paragraph, `\"blockquote/paragraph/\"` restricts\n// it to be in a paragraph that is inside a blockquote, and\n// `\"section//\"` matches any position inside a section—a double\n// slash matches any sequence of ancestor nodes. To allow multiple\n// different contexts, they can be separated by a pipe (`|`)\n// character, as in `\"blockquote/|list_item/\"`.\n//\n// node:: ?string\n// The name of the node type to create when this rule matches. Only\n// valid for rules with a `tag` property, not for style rules. Each\n// rule should have one of a `node`, `mark`, or `ignore` property\n// (except when it appears in a [node](#model.NodeSpec.parseDOM) or\n// [mark spec](#model.MarkSpec.parseDOM), in which case the `node`\n// or `mark` property will be derived from its position).\n//\n// mark:: ?string\n// The name of the mark type to wrap the matched content in.\n//\n// ignore:: ?bool\n// When true, ignore content that matches this rule.\n//\n// closeParent:: ?bool\n// When true, finding an element that matches this rule will close\n// the current node.\n//\n// skip:: ?bool\n// When true, ignore the node that matches this rule, but do parse\n// its content.\n//\n// attrs:: ?Object\n// Attributes for the node or mark created by this rule. When\n// `getAttrs` is provided, it takes precedence.\n//\n// getAttrs:: ?(union) → ?union\n// A function used to compute the attributes for the node or mark\n// created by this rule. Can also be used to describe further\n// conditions the DOM element or style must match. When it returns\n// `false`, the rule won't match. When it returns null or undefined,\n// that is interpreted as an empty/default set of attributes.\n//\n// Called with a DOM Element for `tag` rules, and with a string (the\n// style's value) for `style` rules.\n//\n// contentElement:: ?union\n// For `tag` rules that produce non-leaf nodes or marks, by default\n// the content of the DOM element is parsed as content of the mark\n// or node. If the child nodes are in a descendent node, this may be\n// a CSS selector string that the parser must use to find the actual\n// content element, or a function that returns the actual content\n// element to the parser.\n//\n// getContent:: ?(dom.Node, schema: Schema) → Fragment\n// Can be used to override the content of a matched node. When\n// present, instead of parsing the node's child nodes, the result of\n// this function is used.\n//\n// preserveWhitespace:: ?union\n// Controls whether whitespace should be preserved when parsing the\n// content inside the matched element. `false` means whitespace may\n// be collapsed, `true` means that whitespace should be preserved\n// but newlines normalized to spaces, and `\"full\"` means that\n// newlines should also be preserved.\n\n// ::- A DOM parser represents a strategy for parsing DOM content into\n// a ProseMirror document conforming to a given schema. Its behavior\n// is defined by an array of [rules](#model.ParseRule).\nvar DOMParser = function DOMParser(schema, rules) {\n var this$1 = this;\n\n // :: Schema\n // The schema into which the parser parses.\n this.schema = schema;\n // :: [ParseRule]\n // The set of [parse rules](#model.ParseRule) that the parser\n // uses, in order of precedence.\n this.rules = rules;\n this.tags = [];\n this.styles = [];\n\n rules.forEach(function (rule) {\n if (rule.tag) { this$1.tags.push(rule); }\n else if (rule.style) { this$1.styles.push(rule); }\n });\n\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(function (r) {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node) { return false }\n var node = schema.nodes[r.node];\n return node.contentMatch.matchType(node)\n });\n};\n\n// :: (dom.Node, ?ParseOptions) → Node\n// Parse a document from the content of a DOM node.\nDOMParser.prototype.parse = function parse (dom, options) {\n if ( options === void 0 ) options = {};\n\n var context = new ParseContext(this, options, false);\n context.addAll(dom, null, options.from, options.to);\n return context.finish()\n};\n\n// :: (dom.Node, ?ParseOptions) → Slice\n// Parses the content of the given DOM node, like\n// [`parse`](#model.DOMParser.parse), and takes the same set of\n// options. But unlike that method, which produces a whole node,\n// this one returns a slice that is open at the sides, meaning that\n// the schema constraints aren't applied to the start of nodes to\n// the left of the input and the end of nodes at the end.\nDOMParser.prototype.parseSlice = function parseSlice (dom, options) {\n if ( options === void 0 ) options = {};\n\n var context = new ParseContext(this, options, true);\n context.addAll(dom, null, options.from, options.to);\n return Slice.maxOpen(context.finish())\n};\n\nDOMParser.prototype.matchTag = function matchTag (dom, context, after) {\n for (var i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n var rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n var result = rule.getAttrs(dom);\n if (result === false) { continue }\n rule.attrs = result;\n }\n return rule\n }\n }\n};\n\nDOMParser.prototype.matchStyle = function matchStyle (prop, value, context, after) {\n for (var i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n var rule = this.styles[i];\n if (rule.style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n rule.style.length > prop.length &&\n (rule.style.charCodeAt(prop.length) != 61 || rule.style.slice(prop.length + 1) != value))\n { continue }\n if (rule.getAttrs) {\n var result = rule.getAttrs(value);\n if (result === false) { continue }\n rule.attrs = result;\n }\n return rule\n }\n};\n\n// : (Schema) → [ParseRule]\nDOMParser.schemaRules = function schemaRules (schema) {\n var result = [];\n function insert(rule) {\n var priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n var next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority) { break }\n }\n result.splice(i, 0, rule);\n }\n\n var loop = function ( name ) {\n var rules = schema.marks[name].spec.parseDOM;\n if (rules) { rules.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.mark = name;\n }); }\n };\n\n for (var name in schema.marks) loop( name );\n var loop$1 = function ( name ) {\n var rules$1 = schema.nodes[name$1].spec.parseDOM;\n if (rules$1) { rules$1.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.node = name$1;\n }); }\n };\n\n for (var name$1 in schema.nodes) loop$1();\n return result\n};\n\n// :: (Schema) → DOMParser\n// Construct a DOM parser using the parsing rules listed in a\n// schema's [node specs](#model.NodeSpec.parseDOM), reordered by\n// [priority](#model.ParseRule.priority).\nDOMParser.fromSchema = function fromSchema (schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)))\n};\n\n// : Object The block-level tags in HTML5\nvar blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\n\n// : Object The tags that we normally ignore.\nvar ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\n\n// : Object List tags.\nvar listTags = {ol: true, ul: true};\n\n// Using a bitfield for node context options\nvar OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\n\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null) { return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0) }\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT\n}\n\nvar NodeContext = function NodeContext(type, attrs, marks, pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.solid = solid;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n this.options = options;\n this.content = [];\n // Marks applied to this node itself\n this.marks = marks;\n // Marks applied to its children\n this.activeMarks = Mark.none;\n // Marks that can't apply here, but will be used in children if possible\n this.pendingMarks = pendingMarks;\n // Nested Marks with same type\n this.stashMarks = [];\n};\n\nNodeContext.prototype.findWrapping = function findWrapping (node) {\n if (!this.match) {\n if (!this.type) { return [] }\n var fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n } else {\n var start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap\n } else {\n return null\n }\n }\n }\n return this.match.findWrapping(node.type)\n};\n\nNodeContext.prototype.finish = function finish (openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n var last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n if (last.text.length == m[0].length) { this.content.pop(); }\n else { this.content[this.content.length - 1] = last.withText(last.text.slice(0, last.text.length - m[0].length)); }\n }\n }\n var content = Fragment.from(this.content);\n if (!openEnd && this.match)\n { content = content.append(this.match.fillBefore(Fragment.empty, true)); }\n return this.type ? this.type.create(this.attrs, content, this.marks) : content\n};\n\nNodeContext.prototype.popFromStashMark = function popFromStashMark (mark) {\n for (var i = this.stashMarks.length - 1; i >= 0; i--)\n { if (mark.eq(this.stashMarks[i])) { return this.stashMarks.splice(i, 1)[0] } }\n};\n\nNodeContext.prototype.applyPending = function applyPending (nextType) {\n for (var i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n var mark = pending[i];\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) &&\n !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n};\n\nNodeContext.prototype.inlineContext = function inlineContext (node) {\n if (this.type) { return this.type.inlineContent }\n if (this.content.length) { return this.content[0].isInline }\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase())\n};\n\nvar ParseContext = function ParseContext(parser, options, open) {\n // : DOMParser The parser we are using.\n this.parser = parser;\n // : Object The options passed to this parse.\n this.options = options;\n this.isOpen = open;\n var topNode = options.topNode, topContext;\n var topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (open ? OPT_OPEN_LEFT : 0);\n if (topNode)\n { topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, Mark.none, true,\n options.topMatch || topNode.type.contentMatch, topOptions); }\n else if (open)\n { topContext = new NodeContext(null, null, Mark.none, Mark.none, true, null, topOptions); }\n else\n { topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, Mark.none, true, null, topOptions); }\n this.nodes = [topContext];\n // : [Mark] The current set of marks\n this.open = 0;\n this.find = options.findPositions;\n this.needsBlock = false;\n};\n\nvar prototypeAccessors$6 = { top: { configurable: true },currentPos: { configurable: true } };\n\nprototypeAccessors$6.top.get = function () {\n return this.nodes[this.open]\n};\n\n// : (dom.Node)\n// Add a DOM node to the content. Text is inserted as text node,\n// otherwise, the node is passed to `addElement` or, if it has a\n// `style` attribute, `addElementWithStyles`.\nParseContext.prototype.addDOM = function addDOM (dom) {\n if (dom.nodeType == 3) {\n this.addTextNode(dom);\n } else if (dom.nodeType == 1) {\n var style = dom.getAttribute(\"style\");\n var marks = style ? this.readStyles(parseStyles(style)) : null, top = this.top;\n if (marks != null) { for (var i = 0; i < marks.length; i++) { this.addPendingMark(marks[i]); } }\n this.addElement(dom);\n if (marks != null) { for (var i$1 = 0; i$1 < marks.length; i$1++) { this.removePendingMark(marks[i$1], top); } }\n }\n};\n\nParseContext.prototype.addTextNode = function addTextNode (dom) {\n var value = dom.nodeValue;\n var top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n var nodeBefore = top.content[top.content.length - 1];\n var domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n { value = value.slice(1); }\n }\n } else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n } else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value) { this.insertNode(this.parser.schema.text(value)); }\n this.findInText(dom);\n } else {\n this.findInside(dom);\n }\n};\n\n// : (dom.Element, ?ParseRule)\n// Try to find a handler for the given tag and use that to parse. If\n// none is found, the element's content nodes are added directly.\nParseContext.prototype.addElement = function addElement (dom, matchAfter) {\n var name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists) { normalizeList(dom); }\n var rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom);\n } else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent) { this.open = Math.max(0, this.open - 1); }\n else if (rule && rule.skip.nodeType) { dom = rule.skip; }\n var sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n sync = true;\n if (!top.type) { this.needsBlock = true; }\n } else if (!dom.firstChild) {\n this.leafFallback(dom);\n return\n }\n this.addAll(dom);\n if (sync) { this.sync(top); }\n this.needsBlock = oldNeedsBlock;\n } else {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : null);\n }\n};\n\n// Called for leaf DOM nodes that would otherwise be ignored\nParseContext.prototype.leafFallback = function leafFallback (dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n { this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\")); }\n};\n\n// Called for ignored nodes\nParseContext.prototype.ignoreFallback = function ignoreFallback (dom) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n { this.findPlace(this.parser.schema.text(\"-\")); }\n};\n\n// Run any style parser associated with the node's styles. Either\n// return an array of marks, or null to indicate some of the styles\n// had a rule with `ignore` set.\nParseContext.prototype.readStyles = function readStyles (styles) {\n var marks = Mark.none;\n style: for (var i = 0; i < styles.length; i += 2) {\n for (var after = null;;) {\n var rule = this.parser.matchStyle(styles[i], styles[i + 1], this, after);\n if (!rule) { continue style }\n if (rule.ignore) { return null }\n marks = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(marks);\n if (rule.consuming === false) { after = rule; }\n else { break }\n }\n }\n return marks\n};\n\n// : (dom.Element, ParseRule) → bool\n// Look up a handler for the given node. If none are found, return\n// false. Otherwise, apply it, use its return value to drive the way\n// the node's content is wrapped, and return true.\nParseContext.prototype.addElementByRule = function addElementByRule (dom, rule, continueAfter) {\n var this$1 = this;\n\n var sync, nodeType, markType, mark;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs, rule.preserveWhitespace);\n } else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n } else {\n markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n var startIn = this.top;\n\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n } else if (continueAfter) {\n this.addElement(dom, continueAfter);\n } else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(function (node) { return this$1.insertNode(node); });\n } else {\n var contentDOM = rule.contentElement;\n if (typeof contentDOM == \"string\") { contentDOM = dom.querySelector(contentDOM); }\n else if (typeof contentDOM == \"function\") { contentDOM = contentDOM(dom); }\n if (!contentDOM) { contentDOM = dom; }\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, sync);\n }\n if (sync) { this.sync(startIn); this.open--; }\n if (mark) { this.removePendingMark(mark, startIn); }\n};\n\n// : (dom.Node, ?NodeBuilder, ?number, ?number)\n// Add all child nodes between `startIndex` and `endIndex` (or the\n// whole node, if not given). If `sync` is passed, use it to\n// synchronize after every block element.\nParseContext.prototype.addAll = function addAll (parent, sync, startIndex, endIndex) {\n var index = startIndex || 0;\n for (var dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild,\n end = endIndex == null ? null : parent.childNodes[endIndex];\n dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n if (sync && blockTags.hasOwnProperty(dom.nodeName.toLowerCase()))\n { this.sync(sync); }\n }\n this.findAtPoint(parent, index);\n};\n\n// Try to find a way to fit the given node type into the current\n// context. May add intermediate wrappers and/or leave non-solid\n// nodes that we're in.\nParseContext.prototype.findPlace = function findPlace (node) {\n var route, sync;\n for (var depth = this.open; depth >= 0; depth--) {\n var cx = this.nodes[depth];\n var found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length) { break }\n }\n if (cx.solid) { break }\n }\n if (!route) { return false }\n this.sync(sync);\n for (var i = 0; i < route.length; i++)\n { this.enterInner(route[i], null, false); }\n return true\n};\n\n// : (Node) → ?Node\n// Try to insert the given node, adjusting the context when needed.\nParseContext.prototype.insertNode = function insertNode (node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n var block = this.textblockFromContext();\n if (block) { this.enterInner(block); }\n }\n if (this.findPlace(node)) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(node.type);\n if (top.match) { top.match = top.match.matchType(node.type); }\n var marks = top.activeMarks;\n for (var i = 0; i < node.marks.length; i++)\n { if (!top.type || top.type.allowsMarkType(node.marks[i].type))\n { marks = node.marks[i].addToSet(marks); } }\n top.content.push(node.mark(marks));\n return true\n }\n return false\n};\n\n// : (NodeType, ?Object) → bool\n// Try to start a node of the given type, adjusting the context when\n// necessary.\nParseContext.prototype.enter = function enter (type, attrs, preserveWS) {\n var ok = this.findPlace(type.create(attrs));\n if (ok) { this.enterInner(type, attrs, true, preserveWS); }\n return ok\n};\n\n// Open a node of the given type\nParseContext.prototype.enterInner = function enterInner (type, attrs, solid, preserveWS) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type, attrs);\n var options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0) { options |= OPT_OPEN_LEFT; }\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n};\n\n// Make sure all nodes above this.open are finished and added to\n// their parents\nParseContext.prototype.closeExtra = function closeExtra (openEnd) {\n var i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--) { this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd)); }\n this.nodes.length = this.open + 1;\n }\n};\n\nParseContext.prototype.finish = function finish () {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen)\n};\n\nParseContext.prototype.sync = function sync (to) {\n for (var i = this.open; i >= 0; i--) { if (this.nodes[i] == to) {\n this.open = i;\n return\n } }\n};\n\nprototypeAccessors$6.currentPos.get = function () {\n this.closeExtra();\n var pos = 0;\n for (var i = this.open; i >= 0; i--) {\n var content = this.nodes[i].content;\n for (var j = content.length - 1; j >= 0; j--)\n { pos += content[j].nodeSize; }\n if (i) { pos++; }\n }\n return pos\n};\n\nParseContext.prototype.findAtPoint = function findAtPoint (parent, offset) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findInside = function findInside (parent) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findAround = function findAround (parent, content, before) {\n if (parent != content && this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n var pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n { this.find[i].pos = this.currentPos; }\n }\n } }\n};\n\nParseContext.prototype.findInText = function findInText (textNode) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n { this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset); }\n } }\n};\n\n// : (string) → bool\n// Determines whether the given [context\n// string](#ParseRule.context) matches this context.\nParseContext.prototype.matchesContext = function matchesContext (context) {\n var this$1 = this;\n\n if (context.indexOf(\"|\") > -1)\n { return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this) }\n\n var parts = context.split(\"/\");\n var option = this.options.context;\n var useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n var minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n var match = function (i, depth) {\n for (; i >= 0; i--) {\n var part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0) { continue }\n for (; depth >= minDepth; depth--)\n { if (match(i - 1, depth)) { return true } }\n return false\n } else {\n var next = depth > 0 || (depth == 0 && useRoot) ? this$1.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n { return false }\n depth--;\n }\n }\n return true\n };\n return match(parts.length - 1, this.open)\n};\n\nParseContext.prototype.textblockFromContext = function textblockFromContext () {\n var $context = this.options.context;\n if ($context) { for (var d = $context.depth; d >= 0; d--) {\n var deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs) { return deflt }\n } }\n for (var name in this.parser.schema.nodes) {\n var type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs) { return type }\n }\n};\n\nParseContext.prototype.addPendingMark = function addPendingMark (mark) {\n var found = findSameMarkInSet(mark, this.top.pendingMarks);\n if (found) { this.top.stashMarks.push(found); }\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n};\n\nParseContext.prototype.removePendingMark = function removePendingMark (mark, upto) {\n for (var depth = this.open; depth >= 0; depth--) {\n var level = this.nodes[depth];\n var found = level.pendingMarks.lastIndexOf(mark);\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n } else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n var stashMark = level.popFromStashMark(mark);\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type))\n { level.activeMarks = stashMark.addToSet(level.activeMarks); }\n }\n if (level == upto) { break }\n }\n};\n\nObject.defineProperties( ParseContext.prototype, prototypeAccessors$6 );\n\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (var child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n var name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n } else if (name == \"li\") {\n prevItem = child;\n } else if (name) {\n prevItem = null;\n }\n }\n}\n\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector)\n}\n\n// : (string) → [string]\n// Tokenize a style attribute into property/value pairs.\nfunction parseStyles(style) {\n var re = /\\s*([\\w-]+)\\s*:\\s*([^;]+)/g, m, result = [];\n while (m = re.exec(style)) { result.push(m[1], m[2].trim()); }\n return result\n}\n\nfunction copy(obj) {\n var copy = {};\n for (var prop in obj) { copy[prop] = obj[prop]; }\n return copy\n}\n\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n var nodes = nodeType.schema.nodes;\n var loop = function ( name ) {\n var parent = nodes[name];\n if (!parent.allowsMarkType(markType)) { return }\n var seen = [], scan = function (match) {\n seen.push(match);\n for (var i = 0; i < match.edgeCount; i++) {\n var ref = match.edge(i);\n var type = ref.type;\n var next = ref.next;\n if (type == nodeType) { return true }\n if (seen.indexOf(next) < 0 && scan(next)) { return true }\n }\n };\n if (scan(parent.contentMatch)) { return { v: true } }\n };\n\n for (var name in nodes) {\n var returned = loop( name );\n\n if ( returned ) return returned.v;\n }\n}\n\nfunction findSameMarkInSet(mark, set) {\n for (var i = 0; i < set.length; i++) {\n if (mark.eq(set[i])) { return set[i] }\n }\n}\n\n// DOMOutputSpec:: interface\n// A description of a DOM structure. Can be either a string, which is\n// interpreted as a text node, a DOM node, which is interpreted as\n// itself, a `{dom: Node, contentDOM: ?Node}` object, or an array.\n//\n// An array describes a DOM element. The first value in the array\n// should be a string—the name of the DOM element, optionally prefixed\n// by a namespace URL and a space. If the second element is plain\n// object, it is interpreted as a set of attributes for the element.\n// Any elements after that (including the 2nd if it's not an attribute\n// object) are interpreted as children of the DOM elements, and must\n// either be valid `DOMOutputSpec` values, or the number zero.\n//\n// The number zero (pronounced “hole”) is used to indicate the place\n// where a node's child nodes should be inserted. If it occurs in an\n// output spec, it should be the only child element in its parent\n// node.\n\n// ::- A DOM serializer knows how to convert ProseMirror nodes and\n// marks of various types to DOM nodes.\nvar DOMSerializer = function DOMSerializer(nodes, marks) {\n // :: Object<(node: Node) → DOMOutputSpec>\n // The node serialization functions.\n this.nodes = nodes || {};\n // :: Object\n // The mark serialization functions.\n this.marks = marks || {};\n};\n\n// :: (Fragment, ?Object) → dom.DocumentFragment\n// Serialize the content of this fragment to a DOM fragment. When\n// not in the browser, the `document` option, containing a DOM\n// document, should be passed so that the serializer can create\n// nodes.\nDOMSerializer.prototype.serializeFragment = function serializeFragment (fragment, options, target) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n if (!target) { target = doc(options).createDocumentFragment(); }\n\n var top = target, active = null;\n fragment.forEach(function (node) {\n if (active || node.marks.length) {\n if (!active) { active = []; }\n var keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n var next = node.marks[rendered];\n if (!this$1.marks[next.type.name]) { rendered++; continue }\n if (!next.eq(active[keep]) || next.type.spec.spanning === false) { break }\n keep += 2; rendered++;\n }\n while (keep < active.length) {\n top = active.pop();\n active.pop();\n }\n while (rendered < node.marks.length) {\n var add = node.marks[rendered++];\n var markDOM = this$1.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push(add, top);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this$1.serializeNodeInner(node, options));\n });\n\n return target\n};\n\nDOMSerializer.prototype.serializeNodeInner = function serializeNodeInner (node, options) {\n if ( options === void 0 ) options = {};\n\n var ref =\n DOMSerializer.renderSpec(doc(options), this.nodes[node.type.name](node));\n var dom = ref.dom;\n var contentDOM = ref.contentDOM;\n if (contentDOM) {\n if (node.isLeaf)\n { throw new RangeError(\"Content hole not allowed in a leaf node spec\") }\n if (options.onContent)\n { options.onContent(node, contentDOM, options); }\n else\n { this.serializeFragment(node.content, options, contentDOM); }\n }\n return dom\n};\n\n// :: (Node, ?Object) → dom.Node\n// Serialize this node to a DOM node. This can be useful when you\n// need to serialize a part of a document, as opposed to the whole\n// document. To serialize a whole document, use\n// [`serializeFragment`](#model.DOMSerializer.serializeFragment) on\n// its [content](#model.Node.content).\nDOMSerializer.prototype.serializeNode = function serializeNode (node, options) {\n if ( options === void 0 ) options = {};\n\n var dom = this.serializeNodeInner(node, options);\n for (var i = node.marks.length - 1; i >= 0; i--) {\n var wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n(wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom\n};\n\nDOMSerializer.prototype.serializeMark = function serializeMark (mark, inline, options) {\n if ( options === void 0 ) options = {};\n\n var toDOM = this.marks[mark.type.name];\n return toDOM && DOMSerializer.renderSpec(doc(options), toDOM(mark, inline))\n};\n\n// :: (dom.Document, DOMOutputSpec) → {dom: dom.Node, contentDOM: ?dom.Node}\n// Render an [output spec](#model.DOMOutputSpec) to a DOM node. If\n// the spec has a hole (zero) in it, `contentDOM` will point at the\n// node with the hole.\nDOMSerializer.renderSpec = function renderSpec (doc, structure, xmlNS) {\n if ( xmlNS === void 0 ) xmlNS = null;\n\n if (typeof structure == \"string\")\n { return {dom: doc.createTextNode(structure)} }\n if (structure.nodeType != null)\n { return {dom: structure} }\n if (structure.dom && structure.dom.nodeType != null)\n { return structure }\n var tagName = structure[0], space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n var contentDOM = null, dom = xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName);\n var attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (var name in attrs) { if (attrs[name] != null) {\n var space$1 = name.indexOf(\" \");\n if (space$1 > 0) { dom.setAttributeNS(name.slice(0, space$1), name.slice(space$1 + 1), attrs[name]); }\n else { dom.setAttribute(name, attrs[name]); }\n } }\n }\n for (var i = start; i < structure.length; i++) {\n var child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n { throw new RangeError(\"Content hole must be the only child of its parent node\") }\n return {dom: dom, contentDOM: dom}\n } else {\n var ref = DOMSerializer.renderSpec(doc, child, xmlNS);\n var inner = ref.dom;\n var innerContent = ref.contentDOM;\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM) { throw new RangeError(\"Multiple content holes\") }\n contentDOM = innerContent;\n }\n }\n }\n return {dom: dom, contentDOM: contentDOM}\n};\n\n// :: (Schema) → DOMSerializer\n// Build a serializer using the [`toDOM`](#model.NodeSpec.toDOM)\n// properties in a schema's node and mark specs.\nDOMSerializer.fromSchema = function fromSchema (schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)))\n};\n\n// : (Schema) → Object<(node: Node) → DOMOutputSpec>\n// Gather the serializers in a schema's node specs into an object.\n// This can be useful as a base to build a custom serializer from.\nDOMSerializer.nodesFromSchema = function nodesFromSchema (schema) {\n var result = gatherToDOM(schema.nodes);\n if (!result.text) { result.text = function (node) { return node.text; }; }\n return result\n};\n\n// : (Schema) → Object<(mark: Mark) → DOMOutputSpec>\n// Gather the serializers in a schema's mark specs into an object.\nDOMSerializer.marksFromSchema = function marksFromSchema (schema) {\n return gatherToDOM(schema.marks)\n};\n\nfunction gatherToDOM(obj) {\n var result = {};\n for (var name in obj) {\n var toDOM = obj[name].spec.toDOM;\n if (toDOM) { result[name] = toDOM; }\n }\n return result\n}\n\nfunction doc(options) {\n // declare global: window\n return options.document || window.document\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n//# sourceMappingURL=index.es.js.map\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/**\n * Finite State Machine generation utilities\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n * @param {string|class} token to emit\n */\nfunction State(token) {\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n this.jr = [];\n this.jd = null;\n this.t = token;\n}\n/**\n * Take the transition from this state to the next one on the given input.\n * If this state does not exist deterministically, will create it.\n *\n * @param {string} input character or token to transition on\n * @param {string|class} [token] token or multi-token to emit when reaching\n * this state\n */\n\nState.prototype = {\n /**\n * @param {State} state\n */\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * @param {string} input character or token to transition on\n * @param {Token|State} tokenOrState transition to a matching state\n * @returns State taken after the given input\n */\n tt: function tt(input, tokenOrState) {\n if (tokenOrState && tokenOrState.j) {\n // State, default a basic transition\n this.j[input] = tokenOrState;\n return tokenOrState;\n } // See if there's a direct state transition (not regex or default)\n\n\n var token = tokenOrState;\n var nextState = this.j[input];\n\n if (nextState) {\n if (token) {\n nextState.t = token;\n } // overrwites previous token\n\n\n return nextState;\n } // Create a new state for this input\n\n\n nextState = makeState(); // Take the transition using the usual default mechanisms\n\n var templateState = takeT(this, input);\n\n if (templateState) {\n // Some default state transition, make a prime state based on this one\n Object.assign(nextState.j, templateState.j);\n nextState.jr.append(templateState.jr);\n nextState.jr = templateState.jd;\n nextState.t = token || templateState.t;\n } else {\n nextState.t = token;\n }\n\n this.j[input] = nextState;\n return nextState;\n }\n};\n/**\n * Utility function to create state without using new keyword (reduced file size\n * when minified)\n */\n\nvar makeState = function makeState() {\n return new State();\n};\n/**\n * Similar to previous except it is an accepting state that emits a token\n * @param {Token} token\n */\n\nvar makeAcceptingState = function makeAcceptingState(token) {\n return new State(token);\n};\n/**\n * Create a transition from startState to nextState via the given character\n * @param {State} startState transition from thie starting state\n * @param {Token} input via this input character or other concrete token type\n * @param {State} nextState to this next state\n */\n\nvar makeT = function makeT(startState, input, nextState) {\n // IMPLEMENTATION 1: Add to object (fast)\n if (!startState.j[input]) {\n startState.j[input] = nextState;\n } // IMPLEMENTATION 2: Add to array (slower)\n // startState.j.push([input, nextState]);\n\n};\n/**\n *\n * @param {State} startState stransition from this starting state\n * @param {RegExp} regex Regular expression to match on input\n * @param {State} nextState transition to this next state if there's are regex match\n */\n\nvar makeRegexT = function makeRegexT(startState, regex, nextState) {\n startState.jr.push([regex, nextState]);\n};\n/**\n * Follow the transition from the given character to the next state\n * @param {State} state\n * @param {Token} input character or other concrete token type to transition\n * @returns {?State} the next state, if any\n */\n\nvar takeT = function takeT(state, input) {\n // IMPLEMENTATION 1: Object key lookup (faster)\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n } // IMPLEMENTATION 2: List lookup (slower)\n // Loop through all the state transitions and see if there's a match\n // for (let i = 0; i < state.j.length; i++) {\n //\tconst val = state.j[i][0];\n //\tconst nextState = state.j[i][1];\n // \tif (input === val) { return nextState; }\n // }\n\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1];\n\n if (regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n};\n/**\n * Similar to makeT, but takes a list of characters that all transition to the\n * same nextState startState\n * @param {State} startState\n * @param {Array} chars\n * @param {State} nextState\n */\n\nvar makeMultiT = function makeMultiT(startState, chars, nextState) {\n for (var i = 0; i < chars.length; i++) {\n makeT(startState, chars[i], nextState);\n }\n};\n/**\n * Set up a list of multiple transitions at once. transitions is a list of\n * tuples, where the first element is the transitions character and the second\n * is the state to transition to\n * @param {State} startState\n * @param {Array} transitions\n */\n\nvar makeBatchT = function makeBatchT(startState, transitions) {\n for (var i = 0; i < transitions.length; i++) {\n var input = transitions[i][0];\n var nextState = transitions[i][1];\n makeT(startState, input, nextState);\n }\n};\n/**\n * For state machines that transition on characters only; given a non-empty\n * target string, generates states (if required) for each consecutive substring\n * of characters starting from the beginning of the string. The final state will\n * have a special value, as specified in options. All other \"in between\"\n * substrings will have a default end state.\n *\n * This turns the state machine into a Trie-like data structure (rather than a\n * intelligently-designed DFA).\n * @param {State} state\n * @param {string} str\n * @param {Token} endStateFactory\n * @param {Token} defaultStateFactory\n */\n\nvar makeChainT = function makeChainT(state, str, endState, defaultStateFactory) {\n var i = 0,\n len = str.length,\n nextState; // Find the next state without a jump to the next character\n\n while (i < len && (nextState = state.j[str[i]])) {\n state = nextState;\n i++;\n }\n\n if (i >= len) {\n return [];\n } // no new tokens were added\n\n\n while (i < len - 1) {\n nextState = defaultStateFactory();\n makeT(state, str[i], nextState);\n state = nextState;\n i++;\n }\n\n makeT(state, str[len - 1], endState);\n};\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n// A valid web domain token\nvar DOMAIN = 'DOMAIN';\nvar LOCALHOST = 'LOCALHOST'; // special case of domain\n// Valid top-level domain (see tlds.js)\n\nvar TLD = 'TLD'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // A web URL protocol. Supported types include\n// - `http:`\n// - `https:`\n// - `ftp:`\n// - `ftps:`\n// - user-defined custom protocols\n\nvar PROTOCOL = 'PROTOCOL'; // Start of the email URI protocol\n\nvar MAILTO = 'MAILTO'; // mailto:\n// Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar text = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDOMAIN: DOMAIN,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tNUM: NUM,\n\tPROTOCOL: PROTOCOL,\n\tMAILTO: MAILTO,\n\tWS: WS,\n\tNL: NL,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tSYM: SYM\n});\n\n// NOTE: punycode versions of IDNs are not included here because these will not\n// be as commonly used without the http prefix anyway and linkify will already\n// force-encode those.\n// To be updated with the values in this list\n// http://data.iana.org/TLD/tlds-alpha-by-domain.txt\n// Version 2021022800, Last Updated Sun Feb 28 07:07:01 2021 UTC\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafamilycompany \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbudapest \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncsc \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\nduck \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfujixerox \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglade \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\niveco \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlixil \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnationwide \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noff \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nonyourside \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nqvc \\\nracing \\\nradio \\\nraid \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nrmit \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscjohnson \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nspreadbetting \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiftcover \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw \\\nvermögensberater-ctb \\\nvermögensberatung-pwb \\\nελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nқаз \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nგე \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبھارت \\\nبيتك \\\nپاکستان \\\nڀارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국 \\\nアマゾン \\\nグーグル \\\nクラウド \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\nみんな \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大众汽车 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港'.split(' ');\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION = /\\uFE0F/; // Variation selector, follows heart and others\n\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n/**\n * Initialize the scanner character-based state machine for the given start state\n * @return {State} scanner starting state\n */\n\nfunction init$2() {\n var customProtocols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // Frequently used states\n var S_START = makeState();\n var S_NUM = makeAcceptingState(NUM);\n var S_DOMAIN = makeAcceptingState(DOMAIN);\n var S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\n\n var S_WS = makeAcceptingState(WS);\n var DOMAIN_REGEX_TRANSITIONS = [[DIGIT, S_DOMAIN], [LETTER, S_DOMAIN], [EMOJI, S_DOMAIN], [EMOJI_VARIATION, S_DOMAIN]]; // Create a state which emits a domain token\n\n var makeDomainState = function makeDomainState() {\n var state = makeAcceptingState(DOMAIN);\n state.j = {\n '-': S_DOMAIN_HYPHEN\n };\n state.jr = [].concat(DOMAIN_REGEX_TRANSITIONS);\n return state;\n }; // Create a state which does not emit a domain state but the usual alphanumeric\n // transitions are domains\n\n\n var makeNearDomainState = function makeNearDomainState(token) {\n var state = makeDomainState();\n state.t = token;\n return state;\n }; // States for special URL symbols that accept immediately after start\n\n\n makeBatchT(S_START, [[\"'\", makeAcceptingState(APOSTROPHE)], ['{', makeAcceptingState(OPENBRACE)], ['[', makeAcceptingState(OPENBRACKET)], ['<', makeAcceptingState(OPENANGLEBRACKET)], ['(', makeAcceptingState(OPENPAREN)], ['}', makeAcceptingState(CLOSEBRACE)], [']', makeAcceptingState(CLOSEBRACKET)], ['>', makeAcceptingState(CLOSEANGLEBRACKET)], [')', makeAcceptingState(CLOSEPAREN)], ['&', makeAcceptingState(AMPERSAND)], ['*', makeAcceptingState(ASTERISK)], ['@', makeAcceptingState(AT)], ['`', makeAcceptingState(BACKTICK)], ['^', makeAcceptingState(CARET)], [':', makeAcceptingState(COLON)], [',', makeAcceptingState(COMMA)], ['$', makeAcceptingState(DOLLAR)], ['.', makeAcceptingState(DOT)], ['=', makeAcceptingState(EQUALS)], ['!', makeAcceptingState(EXCLAMATION)], ['-', makeAcceptingState(HYPHEN)], ['%', makeAcceptingState(PERCENT)], ['|', makeAcceptingState(PIPE)], ['+', makeAcceptingState(PLUS)], ['#', makeAcceptingState(POUND)], ['?', makeAcceptingState(QUERY)], ['\"', makeAcceptingState(QUOTE)], ['/', makeAcceptingState(SLASH)], [';', makeAcceptingState(SEMI)], ['~', makeAcceptingState(TILDE)], ['_', makeAcceptingState(UNDERSCORE)], ['\\\\', makeAcceptingState(BACKSLASH)]]); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n\n makeT(S_START, '\\n', makeAcceptingState(NL));\n makeRegexT(S_START, SPACE, S_WS); // If any whitespace except newline, more whitespace!\n\n makeT(S_WS, '\\n', makeState()); // non-accepting state\n\n makeRegexT(S_WS, SPACE, S_WS); // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n for (var i = 0; i < tlds.length; i++) {\n makeChainT(S_START, tlds[i], makeNearDomainState(TLD), makeDomainState);\n } // Collect the states generated by different protocls\n\n\n var S_PROTOCOL_FILE = makeDomainState();\n var S_PROTOCOL_FTP = makeDomainState();\n var S_PROTOCOL_HTTP = makeDomainState();\n var S_MAILTO = makeDomainState();\n makeChainT(S_START, 'file', S_PROTOCOL_FILE, makeDomainState);\n makeChainT(S_START, 'ftp', S_PROTOCOL_FTP, makeDomainState);\n makeChainT(S_START, 'http', S_PROTOCOL_HTTP, makeDomainState);\n makeChainT(S_START, 'mailto', S_MAILTO, makeDomainState); // Protocol states\n\n var S_PROTOCOL_SECURE = makeDomainState();\n var S_FULL_PROTOCOL = makeAcceptingState(PROTOCOL); // Full protocol ends with COLON\n\n var S_FULL_MAILTO = makeAcceptingState(MAILTO); // Mailto ends with COLON\n // Secure protocols (end with 's')\n\n makeT(S_PROTOCOL_FTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_FTP, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_HTTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_HTTP, ':', S_FULL_PROTOCOL); // Become protocol tokens after a COLON\n\n makeT(S_PROTOCOL_FILE, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_SECURE, ':', S_FULL_PROTOCOL);\n makeT(S_MAILTO, ':', S_FULL_MAILTO); // Register custom protocols\n\n var S_CUSTOM_PROTOCOL = makeDomainState();\n\n for (var _i = 0; _i < customProtocols.length; _i++) {\n makeChainT(S_START, customProtocols[_i], S_CUSTOM_PROTOCOL, makeDomainState);\n }\n\n makeT(S_CUSTOM_PROTOCOL, ':', S_FULL_PROTOCOL); // Localhost\n\n makeChainT(S_START, 'localhost', makeNearDomainState(LOCALHOST), makeDomainState); // Everything else\n // DOMAINs make more DOMAINs\n // Number and character transitions\n\n makeRegexT(S_START, DIGIT, S_NUM);\n makeRegexT(S_START, LETTER, S_DOMAIN);\n makeRegexT(S_START, EMOJI, S_DOMAIN);\n makeRegexT(S_START, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_NUM, DIGIT, S_NUM);\n makeRegexT(S_NUM, LETTER, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI_VARIATION, S_DOMAIN); // number becomes DOMAIN\n\n makeT(S_NUM, '-', S_DOMAIN_HYPHEN); // Default domain transitions\n\n makeT(S_DOMAIN, '-', S_DOMAIN_HYPHEN);\n makeT(S_DOMAIN_HYPHEN, '-', S_DOMAIN_HYPHEN);\n makeRegexT(S_DOMAIN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI_VARIATION, S_DOMAIN); // Set default transition for start state (some symbol)\n\n S_START.jd = makeAcceptingState(SYM);\n return S_START;\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {{t: string, v: string, s: number, l: number}[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns the regular case though) Uses selective `toLowerCase`\n // is used because lowercasing the entire string causes the length and\n // character position to vary in some non-English strings with V8-based\n // runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = takeT(state, iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n // TODO: If possible, don't output v, instead output range where values ocur\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.substr(cursor - tokenLength, tokenLength),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (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\n/**\n * @property {string} defaultProtocol\n * @property {{[string]: (event) => void}]} [events]\n */\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: 0,\n className: null,\n attributes: null,\n ignoreTags: []\n};\n/**\n * @class Options\n * @param {Object} [opts] Set option properties besides the defaults\n */\n\nfunction Options(opts) {\n opts = opts || {};\n this.defaultProtocol = 'defaultProtocol' in opts ? opts.defaultProtocol : defaults.defaultProtocol;\n this.events = 'events' in opts ? opts.events : defaults.events;\n this.format = 'format' in opts ? opts.format : defaults.format;\n this.formatHref = 'formatHref' in opts ? opts.formatHref : defaults.formatHref;\n this.nl2br = 'nl2br' in opts ? opts.nl2br : defaults.nl2br;\n this.tagName = 'tagName' in opts ? opts.tagName : defaults.tagName;\n this.target = 'target' in opts ? opts.target : defaults.target;\n this.rel = 'rel' in opts ? opts.rel : defaults.rel;\n this.validate = 'validate' in opts ? opts.validate : defaults.validate;\n this.truncate = 'truncate' in opts ? opts.truncate : defaults.truncate;\n this.className = 'className' in opts ? opts.className : defaults.className;\n this.attributes = opts.attributes || defaults.attributes;\n this.ignoreTags = []; // Make all tags names upper case\n\n var ignoredTags = 'ignoreTags' in opts ? opts.ignoreTags : defaults.ignoreTags;\n\n for (var i = 0; i < ignoredTags.length; i++) {\n this.ignoreTags.push(ignoredTags[i].toUpperCase());\n }\n}\nOptions.prototype = {\n /**\n * Given the token, return all options for how it should be displayed\n */\n resolve: function resolve(token) {\n var href = token.toHref(this.defaultProtocol);\n return {\n formatted: this.get('format', token.toString(), token),\n formattedHref: this.get('formatHref', href, token),\n tagName: this.get('tagName', href, token),\n className: this.get('className', href, token),\n target: this.get('target', href, token),\n rel: this.get('rel', href, token),\n events: this.getObject('events', href, token),\n attributes: this.getObject('attributes', href, token),\n truncate: this.get('truncate', href, token)\n };\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {string} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n get: function get(key, operator, token) {\n var option = this[key];\n\n if (!option) {\n return option;\n }\n\n var optionValue;\n\n switch (_typeof(option)) {\n case 'function':\n return option(operator, token.t);\n\n case 'object':\n optionValue = token.t in option ? option[token.t] : defaults[key];\n return typeof optionValue === 'function' ? optionValue(operator, token.t) : optionValue;\n }\n\n return option;\n },\n getObject: function getObject(key, operator, token) {\n var option = this[key];\n return typeof option === 'function' ? option(operator, token.t) : option;\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\nfunction inherits(parent, child) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var extended = Object.create(parent.prototype);\n\n for (var p in props) {\n extended[p] = props[p];\n }\n\n extended.constructor = child;\n child.prototype = extended;\n return child;\n}\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@param {string} value\n\t@param {{t: string, v: string, s: number, e: number}[]} tokens\n\t@abstract\n*/\n\n\nfunction MultiToken() {}\nMultiToken.prototype = {\n /**\n \tString representing the type for this token\n \t@property t\n \t@default 'token'\n */\n t: 'token',\n\n /**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n isLink: false,\n\n /**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {string}\n */\n toHref: function toHref() {\n return this.toString();\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n return {\n type: this.t,\n value: this.v,\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {(value: string, tokens: {t: string, v: string, s: number, e: number}) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n function Token(value, tokens) {\n this.t = type;\n this.v = value;\n this.tk = tokens;\n }\n\n inherits(MultiToken, Token, props);\n return Token;\n}\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MailtoEmail\n\t@extends MultiToken\n*/\n\nvar MailtoEmail = createTokenClass('email', {\n isLink: true\n});\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class Email\n\t@extends MultiToken\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n\t@class Text\n\t@extends MultiToken\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n\t@extends MultiToken\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n\t@extends MultiToken\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {string} protocol\n \t@return {string}\n */\n toHref: function toHref() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n var tokens = this.tk;\n var hasProtocol = false;\n var hasSlashSlash = false;\n var result = [];\n var i = 0; // Make the first part of the domain lowercase\n // Lowercase protocol\n\n while (tokens[i].t === PROTOCOL) {\n hasProtocol = true;\n result.push(tokens[i].v);\n i++;\n } // Skip slash-slash\n\n\n while (tokens[i].t === SLASH) {\n hasSlashSlash = true;\n result.push(tokens[i].v);\n i++;\n } // Continue pushing characters\n\n\n for (; i < tokens.length; i++) {\n result.push(tokens[i].v);\n }\n\n result = result.join('');\n\n if (!(hasProtocol || hasSlashSlash)) {\n result = \"\".concat(protocol, \"://\").concat(result);\n }\n\n return result;\n },\n hasProtocol: function hasProtocol() {\n return this.tk[0].t === PROTOCOL;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tMailtoEmail: MailtoEmail,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n/**\n * Generate the parser multi token-based state machine\n * @returns {State} the starting state\n */\n\nfunction init$1() {\n // The universal starting state.\n var S_START = makeState(); // Intermediate states for URLs. Note that domains that begin with a protocol\n // are treated slighly differently from those that don't.\n\n var S_PROTOCOL = makeState(); // e.g., 'http:'\n\n var S_MAILTO = makeState(); // 'mailto:'\n\n var S_PROTOCOL_SLASH = makeState(); // e.g., 'http:/''\n\n var S_PROTOCOL_SLASH_SLASH = makeState(); // e.g.,'http://'\n\n var S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\n\n var S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\n\n var S_TLD = makeAcceptingState(Url); // (A) Simplest possible URL with no query string\n\n var S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\n\n var S_TLD_PORT = makeAcceptingState(Url); // TLD followed by a port number\n\n var S_URL = makeAcceptingState(Url); // Long URL with optional port and maybe query string\n\n var S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n var S_URL_OPENBRACE = makeState(); // URL followed by {\n\n var S_URL_OPENBRACKET = makeState(); // URL followed by [\n\n var S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\n\n var S_URL_OPENPAREN = makeState(); // URL followed by (\n\n var S_URL_OPENBRACE_Q = makeAcceptingState(Url); // URL followed by { and some symbols that the URL can end it\n\n var S_URL_OPENBRACKET_Q = makeAcceptingState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var S_URL_OPENANGLEBRACKET_Q = makeAcceptingState(Url); // URL followed by < and some symbols that the URL can end it\n\n var S_URL_OPENPAREN_Q = makeAcceptingState(Url); // URL followed by ( and some symbols that the URL can end it\n\n var S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\n\n var S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\n\n var S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\n\n var S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\n\n var S_EMAIL = makeAcceptingState(Email); // (C) Possible email address (could have more tlds)\n\n var S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\n\n var S_EMAIL_PORT = makeAcceptingState(Email); // (C) Email address with a port\n\n var S_MAILTO_EMAIL = makeAcceptingState(MailtoEmail); // Email that begins with the mailto prefix (D)\n\n var S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\n\n var S_LOCALPART = makeState(); // Local part of the email address\n\n var S_LOCALPART_AT = makeState(); // Local part of the email address plus @\n\n var S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\n\n var S_NL = makeAcceptingState(Nl); // single new line\n // Make path from start to protocol (with '//')\n\n makeT(S_START, NL, S_NL);\n makeT(S_START, PROTOCOL, S_PROTOCOL);\n makeT(S_START, MAILTO, S_MAILTO);\n makeT(S_PROTOCOL, SLASH, S_PROTOCOL_SLASH);\n makeT(S_PROTOCOL_SLASH, SLASH, S_PROTOCOL_SLASH_SLASH); // The very first potential domain name\n\n makeT(S_START, TLD, S_DOMAIN);\n makeT(S_START, DOMAIN, S_DOMAIN);\n makeT(S_START, LOCALHOST, S_TLD);\n makeT(S_START, NUM, S_DOMAIN); // Force URL for protocol followed by anything sane\n\n makeT(S_PROTOCOL_SLASH_SLASH, TLD, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, DOMAIN, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, NUM, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, LOCALHOST, S_URL); // Account for dots and hyphens\n // hyphens are usually parts of domain names\n\n makeT(S_DOMAIN, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL_DOMAIN, DOT, S_EMAIL_DOMAIN_DOT); // Hyphen can jump back to a domain name\n // After the first domain and a dot, we can find either a URL or another domain\n\n makeT(S_DOMAIN_DOT, TLD, S_TLD);\n makeT(S_DOMAIN_DOT, DOMAIN, S_DOMAIN);\n makeT(S_DOMAIN_DOT, NUM, S_DOMAIN);\n makeT(S_DOMAIN_DOT, LOCALHOST, S_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, TLD, S_EMAIL);\n makeT(S_EMAIL_DOMAIN_DOT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, NUM, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, LOCALHOST, S_EMAIL_DOMAIN); // S_TLD accepts! But the URL could be longer, try to find a match greedily\n // The `run` function should be able to \"rollback\" to the accepting state\n\n makeT(S_TLD, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL, DOT, S_EMAIL_DOMAIN_DOT); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here PSS and non-PSS converge\n\n makeT(S_TLD, COLON, S_TLD_COLON);\n makeT(S_TLD, SLASH, S_URL);\n makeT(S_TLD_COLON, NUM, S_TLD_PORT);\n makeT(S_TLD_PORT, SLASH, S_URL);\n makeT(S_EMAIL, COLON, S_EMAIL_COLON);\n makeT(S_EMAIL_COLON, NUM, S_EMAIL_PORT); // Types of characters the URL can definitely end in\n\n var qsAccepting = [AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, DOMAIN, EQUALS, HYPHEN, LOCALHOST, NUM, PERCENT, PIPE, PLUS, POUND, PROTOCOL, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // These states are responsible primarily for determining whether or not to\n // include the final round bracket.\n // URL, followed by an opening bracket\n\n makeT(S_URL, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL, OPENPAREN, S_URL_OPENPAREN); // URL with extra symbols at the end, followed by an opening bracket\n\n makeT(S_URL_NON_ACCEPTING, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL_NON_ACCEPTING, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENPAREN, S_URL_OPENPAREN); // Closing bracket component. This character WILL be included in the URL\n\n makeT(S_URL_OPENBRACE, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_Q, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_Q, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_Q, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_Q, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_SYMS, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_SYMS, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_SYMS, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_SYMS, CLOSEPAREN, S_URL); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n // has a single opening bracket for some reason).\n\n makeMultiT(S_URL_OPENBRACE, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN, qsNonAccepting, S_URL_OPENPAREN_SYMS); // URL that begins with an opening bracket, followed by some symbols\n\n makeMultiT(S_URL_OPENBRACE_Q, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_Q, qsNonAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsNonAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsNonAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsNonAccepting, S_URL_OPENPAREN_SYMS); // Account for the query string\n\n makeMultiT(S_URL, qsAccepting, S_URL);\n makeMultiT(S_URL_NON_ACCEPTING, qsAccepting, S_URL);\n makeMultiT(S_URL, qsNonAccepting, S_URL_NON_ACCEPTING);\n makeMultiT(S_URL_NON_ACCEPTING, qsNonAccepting, S_URL_NON_ACCEPTING); // Email address-specific state definitions\n // Note: We are not allowing '/' in email addresses since this would interfere\n // with real URLs\n // For addresses with the mailto prefix\n // 'mailto:' followed by anything sane is a valid email\n\n makeT(S_MAILTO, TLD, S_MAILTO_EMAIL);\n makeT(S_MAILTO, DOMAIN, S_MAILTO_EMAIL);\n makeT(S_MAILTO, NUM, S_MAILTO_EMAIL);\n makeT(S_MAILTO, LOCALHOST, S_MAILTO_EMAIL); // Greedily get more potential valid email values\n\n makeMultiT(S_MAILTO_EMAIL, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING); // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, DOMAIN, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Some of the tokens in `localpartAccepting` are already accounted for here and\n // will not be overwritten (don't worry)\n\n makeMultiT(S_DOMAIN, localpartAccepting, S_LOCALPART);\n makeT(S_DOMAIN, AT, S_LOCALPART_AT);\n makeMultiT(S_TLD, localpartAccepting, S_LOCALPART);\n makeT(S_TLD, AT, S_LOCALPART_AT);\n makeMultiT(S_DOMAIN_DOT, localpartAccepting, S_LOCALPART); // Now in localpart of address\n // TODO: IP addresses and what if the email starts with numbers?\n\n makeMultiT(S_LOCALPART, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART, AT, S_LOCALPART_AT); // close to an email address now\n\n makeT(S_LOCALPART, DOT, S_LOCALPART_DOT);\n makeMultiT(S_LOCALPART_DOT, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART_AT, TLD, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, NUM, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, LOCALHOST, S_EMAIL); // States following `@` defined above\n\n return S_START;\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {{t: string, v: string, s: number, e: number}[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = takeT(state, tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || takeT(state, tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token\n // Add all the tokens we looked at to the text tokens array\n for (var i = cursor - multiLength; i < cursor; i++) {\n textTokens.push(tokens[i]);\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(parserCreateMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {Class} Multi class to instantiate\n * @param {string} input original input string\n * @param {{t: string, v: string, s: number, e: number}[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction parserCreateMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.substr(startIdx, endIdx - startIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {}; // Side-effect initialization state\n\n\nvar INIT = {\n scanner: null,\n parser: null,\n pluginQueue: [],\n customProtocols: [],\n initialized: false\n};\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n INIT.scanner = null;\n INIT.parser = null;\n INIT.pluginQueue = [];\n INIT.customProtocols = [];\n INIT.initialized = false;\n}\n/**\n * Register a linkify extension plugin\n * @param {string} name of plugin to register\n * @param {Function} plugin function that accepts mutable linkify state\n */\n\nfunction registerPlugin(name, plugin) {\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\".concat(name, \"\\\" already registered - will be overwritten\"));\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\".concat(name, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all plugins before invoking linkify the first time.\"));\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything following\n * \"protocol:\" will be considered a link.\n * @param {string} protocol\n */\n\nfunction registerCustomProtocol(protocol) {\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom protocol \\\"\".concat(protocol, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all custom protocols before invoking linkify the first time.\"));\n }\n\n if (!/^[a-z-]+$/.test(protocol)) {\n throw Error('linkifyjs: protocols containing characters other than a-z or - (hyphen) are not supported');\n }\n\n INIT.customProtocols.push(protocol);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize state machines\n INIT.scanner = {\n start: init$2(INIT.customProtocols),\n tokens: text\n };\n INIT.parser = {\n start: init$1(),\n tokens: multi\n };\n var utils = {\n createTokenClass: createTokenClass\n }; // Initialize plugins\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser,\n utils: utils\n });\n }\n\n INIT.initialized = true;\n}\n/**\n\tParse a string into tokens that represent linkable and non-linkable sub-components\n\t@param {string} str\n\t@return {MultiToken[]} tokens\n*/\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n\tFind a list of linkable items in the given string.\n\t@param {string} str string to find links in\n\t@param {string} [type] (optional) only find links of a specific type, e.g.,\n\t'url' or 'email'\n*/\n\nfunction find(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toObject());\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { Options, find, init, options, registerCustomProtocol, registerPlugin, reset, test, tokenize };\n","import { combineTransactionSteps, getChangedRanges, getMarksBetween, findChildrenInRange, getAttributes, Mark, mergeAttributes, markPasteRule } from '@tiptap/core';\nimport { test, find } from 'linkifyjs';\nimport { Plugin, PluginKey } from 'prosemirror-state';\n\nfunction autolink(options) {\r\n return new Plugin({\r\n key: new PluginKey('autolink'),\r\n appendTransaction: (transactions, oldState, newState) => {\r\n const docChanges = transactions.some(transaction => transaction.docChanged)\r\n && !oldState.doc.eq(newState.doc);\r\n const preventAutolink = transactions.some(transaction => transaction.getMeta('preventAutolink'));\r\n if (!docChanges || preventAutolink) {\r\n return;\r\n }\r\n const { tr } = newState;\r\n const transform = combineTransactionSteps(oldState.doc, transactions);\r\n const { mapping } = transform;\r\n const changes = getChangedRanges(transform);\r\n changes.forEach(({ oldRange, newRange }) => {\r\n // at first we check if we have to remove links\r\n getMarksBetween(oldRange.from, oldRange.to, oldState.doc)\r\n .filter(item => item.mark.type === options.type)\r\n .forEach(oldMark => {\r\n const newFrom = mapping.map(oldMark.from);\r\n const newTo = mapping.map(oldMark.to);\r\n const newMarks = getMarksBetween(newFrom, newTo, newState.doc)\r\n .filter(item => item.mark.type === options.type);\r\n if (!newMarks.length) {\r\n return;\r\n }\r\n const newMark = newMarks[0];\r\n const oldLinkText = oldState.doc.textBetween(oldMark.from, oldMark.to, undefined, ' ');\r\n const newLinkText = newState.doc.textBetween(newMark.from, newMark.to, undefined, ' ');\r\n const wasLink = test(oldLinkText);\r\n const isLink = test(newLinkText);\r\n // remove only the link, if it was a link before too\r\n // because we don’t want to remove links that were set manually\r\n if (wasLink && !isLink) {\r\n tr.removeMark(newMark.from, newMark.to, options.type);\r\n }\r\n });\r\n // now let’s see if we can add new links\r\n findChildrenInRange(newState.doc, newRange, node => node.isTextblock)\r\n .forEach(textBlock => {\r\n // we need to define a placeholder for leaf nodes\r\n // so that the link position can be calculated correctly\r\n const text = newState.doc.textBetween(textBlock.pos, textBlock.pos + textBlock.node.nodeSize, undefined, ' ');\r\n find(text)\r\n .filter(link => link.isLink)\r\n // calculate link position\r\n .map(link => ({\r\n ...link,\r\n from: textBlock.pos + link.start + 1,\r\n to: textBlock.pos + link.end + 1,\r\n }))\r\n // check if link is within the changed range\r\n .filter(link => {\r\n const fromIsInRange = newRange.from >= link.from && newRange.from <= link.to;\r\n const toIsInRange = newRange.to >= link.from && newRange.to <= link.to;\r\n return fromIsInRange || toIsInRange;\r\n })\r\n // add link mark\r\n .forEach(link => {\r\n tr.addMark(link.from, link.to, options.type.create({\r\n href: link.href,\r\n }));\r\n });\r\n });\r\n });\r\n if (!tr.steps.length) {\r\n return;\r\n }\r\n return tr;\r\n },\r\n });\r\n}\n\nfunction clickHandler(options) {\r\n return new Plugin({\r\n key: new PluginKey('handleClickLink'),\r\n props: {\r\n handleClick: (view, pos, event) => {\r\n var _a;\r\n const attrs = getAttributes(view.state, options.type.name);\r\n const link = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('a');\r\n if (link && attrs.href) {\r\n window.open(attrs.href, attrs.target);\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n });\r\n}\n\nfunction pasteHandler(options) {\r\n return new Plugin({\r\n key: new PluginKey('handlePasteLink'),\r\n props: {\r\n handlePaste: (view, event, slice) => {\r\n const { state } = view;\r\n const { selection } = state;\r\n const { empty } = selection;\r\n if (empty) {\r\n return false;\r\n }\r\n let textContent = '';\r\n slice.content.forEach(node => {\r\n textContent += node.textContent;\r\n });\r\n const link = find(textContent).find(item => item.isLink && item.value === textContent);\r\n if (!textContent || !link) {\r\n return false;\r\n }\r\n options.editor.commands.setMark(options.type, {\r\n href: link.href,\r\n });\r\n return true;\r\n },\r\n },\r\n });\r\n}\n\nconst Link = Mark.create({\r\n name: 'link',\r\n priority: 1000,\r\n keepOnSplit: false,\r\n inclusive() {\r\n return this.options.autolink;\r\n },\r\n addOptions() {\r\n return {\r\n openOnClick: true,\r\n linkOnPaste: true,\r\n autolink: true,\r\n HTMLAttributes: {\r\n target: '_blank',\r\n rel: 'noopener noreferrer nofollow',\r\n },\r\n };\r\n },\r\n addAttributes() {\r\n return {\r\n href: {\r\n default: null,\r\n },\r\n target: {\r\n default: this.options.HTMLAttributes.target,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n { tag: 'a[href]' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n 'a',\r\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\r\n 0,\r\n ];\r\n },\r\n addCommands() {\r\n return {\r\n setLink: attributes => ({ chain }) => {\r\n return chain()\r\n .setMark(this.name, attributes)\r\n .setMeta('preventAutolink', true)\r\n .run();\r\n },\r\n toggleLink: attributes => ({ chain }) => {\r\n return chain()\r\n .toggleMark(this.name, attributes, { extendEmptyMarkRange: true })\r\n .setMeta('preventAutolink', true)\r\n .run();\r\n },\r\n unsetLink: () => ({ chain }) => {\r\n return chain()\r\n .unsetMark(this.name, { extendEmptyMarkRange: true })\r\n .setMeta('preventAutolink', true)\r\n .run();\r\n },\r\n };\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: text => find(text)\r\n .filter(link => link.isLink)\r\n .map(link => ({\r\n text: link.value,\r\n index: link.start,\r\n data: link,\r\n })),\r\n type: this.type,\r\n getAttributes: match => {\r\n var _a;\r\n return ({\r\n href: (_a = match.data) === null || _a === void 0 ? void 0 : _a.href,\r\n });\r\n },\r\n }),\r\n ];\r\n },\r\n addProseMirrorPlugins() {\r\n const plugins = [];\r\n if (this.options.autolink) {\r\n plugins.push(autolink({\r\n type: this.type,\r\n }));\r\n }\r\n if (this.options.openOnClick) {\r\n plugins.push(clickHandler({\r\n type: this.type,\r\n }));\r\n }\r\n if (this.options.linkOnPaste) {\r\n plugins.push(pasteHandler({\r\n editor: this.editor,\r\n type: this.type,\r\n }));\r\n }\r\n return plugins;\r\n },\r\n});\n\nexport { Link, Link as default };\n//# sourceMappingURL=tiptap-extension-link.esm.js.map\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","import Chart from 'chart.js'\r\nimport { defineComponent, h, reactive } from 'vue'\r\n\r\nfunction useChartInfo() {\r\n const state = reactive({\r\n myName: '',\r\n userData: {},\r\n userOptions: {}\r\n })\r\n\r\n function setChartData(payload) {\r\n state.userData = payload\r\n }\r\n\r\n function setChartOption(payload) {\r\n state.userOptions = payload\r\n }\r\n\r\n return {\r\n state,\r\n setChartData,\r\n setChartOption\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @param chartsId string\r\n * @param chartsType string\r\n */\r\nfunction generateChart(chartsId, chartsType) {\r\n let { state, setChartData, setChartOption } = useChartInfo()\r\n\r\n return defineComponent({\r\n name: 'BaseChart',\r\n props: {\r\n chartId: {\r\n type: String,\r\n required: false\r\n },\r\n chartType: {\r\n type: String,\r\n required: false\r\n },\r\n width: {\r\n type: Number,\r\n required: false,\r\n default: 400\r\n },\r\n height: {\r\n type: Number,\r\n required: false,\r\n default: 400\r\n },\r\n cssClasses: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n styles: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n data() {\r\n return {\r\n state: {\r\n chartObj: null\r\n }\r\n }\r\n },\r\n // emits: ['chart:update'],\r\n\r\n beforeUnmount() {\r\n if (this.state.chartObj) {\r\n this.state.chartObj.destroy()\r\n }\r\n },\r\n methods: {\r\n renderChart(userData, userOptions) {\r\n setChartData(userData)\r\n setChartOption(userOptions)\r\n\r\n if (this.state.chartObj) {\r\n // this.state.chartObj.destroy()\r\n }\r\n // if (!this.$refs.canvas) {\r\n // throw new Error('Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components')\r\n // }\r\n\r\n // REMOVE OLD DATA FIRST BEFORE UPDATE.\r\n if (this.state.charObj != null && this.state.chartObj.data != null) { this.state.chartObj.data.datasets.pop() }\r\n\r\n let ctx = this.$refs.canvas.getContext('2d')\r\n this.state.chartObj = new Chart(ctx, {\r\n type: chartsType,\r\n data: userData,\r\n options: userOptions\r\n // plugins: this.$data._plugins\r\n })\r\n }\r\n },\r\n beforeMount() {\r\n if (document.getElementById(chartsId)) {\r\n let ctx = document.getElementById(chartsId).getContext('2d')\r\n this.state.chartObj = new Chart(ctx, {\r\n type: chartsType,\r\n data: {\r\n datasets: [\r\n {\r\n data: [1, 2, 3, 4],\r\n backgroundColor: ['Red', 'Yellow', 'Blue', 'Green']\r\n }\r\n ],\r\n // These labels appear in the legend and in the tooltips when hovering different arcs\r\n labels: ['Red', 'Yellow', 'Blue', 'Green']\r\n },\r\n options: {\r\n responsive: false\r\n }\r\n // options: this.options,\r\n // plugins: this.$data._plugins\r\n })\r\n }\r\n },\r\n computed: {\r\n currentChartData() {\r\n return state.userData\r\n },\r\n currentChartOption() {\r\n return state.userOptions\r\n }\r\n },\r\n watch: {\r\n chartData(prevState, newState) {\r\n if (prevState !== newState) {\r\n this.renderChart(newState, this.currentChartOption)\r\n }\r\n }\r\n },\r\n render() {\r\n // return h('canvas', {\r\n // ref: 'canvas',\r\n // id: this.chartId,\r\n // width: this.width,\r\n // height: this.height\r\n // })\r\n return h('div', { style: this.styles, class: this.cssClasses }, [\r\n h('canvas', {\r\n ref: 'canvas',\r\n id: this.chartId,\r\n width: this.width,\r\n height: this.height\r\n })\r\n ])\r\n }\r\n })\r\n}\r\n\r\nconst Bar = generateChart('bar-chart', 'bar')\r\nconst Bubble = generateChart('bubble-chart', 'bubble')\r\nconst Doughnut = generateChart('doughnut-chart', 'doughnut')\r\nconst HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar')\r\nconst Line = generateChart('line-chart', 'line')\r\nconst Pie = generateChart('pie-chart', 'pie')\r\nconst PolarArea = generateChart('polar-chart', 'polarArea')\r\nconst Radar = generateChart('radar-chart', 'radar')\r\nconst Scatter = generateChart('scatter-chart', 'scatter')\r\n\r\nexport {\r\n Bar,\r\n Bubble,\r\n Doughnut,\r\n HorizontalBar,\r\n Line,\r\n Pie,\r\n PolarArea,\r\n Radar,\r\n Scatter,\r\n generateChart\r\n // renderChart\r\n}\r\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","/*!\n * Bootstrap v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"@popperjs/core\")):\"function\"==typeof define&&define.amd?define([\"@popperjs/core\"],e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){\"use strict\";function e(t){if(t&&t.__esModule)return t;const e=Object.create(null);if(t)for(const i in t)if(\"default\"!==i){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=\"transitionend\",n=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e},o=t=>{const e=n(t);return e&&document.querySelector(e)?e:null},r=t=>{const e=n(t);return e?document.querySelector(e):null},a=t=>{t.dispatchEvent(new Event(s))},l=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(t):null,h=(t,e,i)=>{Object.keys(i).forEach((s=>{const n=i[s],o=e[s],r=o&&l(o)?\"element\":null==(a=o)?`${a}`:{}.toString.call(a).match(/\\s([a-z]+)/i)[1].toLowerCase();var a;if(!new RegExp(n).test(r))throw new TypeError(`${t.toUpperCase()}: Option \"${s}\" provided type \"${r}\" but expected type \"${n}\".`)}))},d=t=>!(!l(t)||0===t.getClientRects().length)&&\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),u=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),g=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?g(t.parentNode):null},_=()=>{},f=t=>{t.offsetHeight},p=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute(\"data-bs-no-jquery\")?t:null},m=[],b=()=>\"rtl\"===document.documentElement.dir,v=t=>{var e;e=()=>{const e=p();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},\"loading\"===document.readyState?(m.length||document.addEventListener(\"DOMContentLoaded\",(()=>{m.forEach((t=>t()))})),m.push(e)):e()},y=t=>{\"function\"==typeof t&&t()},E=(t,e,i=!0)=>{if(!i)return void y(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let o=!1;const r=({target:i})=>{i===e&&(o=!0,e.removeEventListener(s,r),y(t))};e.addEventListener(s,r),setTimeout((()=>{o||a(e)}),n)},w=(t,e,i,s)=>{let n=t.indexOf(e);if(-1===n)return t[!i&&s?t.length-1:0];const o=t.length;return n+=i?1:-1,s&&(n=(n+o)%o),t[Math.max(0,Math.min(n,o-1))]},A=/[^.]*(?=\\..*)\\.|.*/,T=/\\..*/,C=/::\\d+$/,k={};let L=1;const S={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},O=/^(mouseenter|mouseleave)/i,N=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function D(t,e){return e&&`${e}::${L++}`||t.uidEvent||L++}function I(t){const e=D(t);return t.uidEvent=e,k[e]=k[e]||{},k[e]}function P(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;nfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s?s=t(s):i=t(i)}const[o,r,a]=x(e,i,s),l=I(t),c=l[a]||(l[a]={}),h=P(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=D(r,e.replace(A,\"\")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return n.delegateTarget=r,s.oneOff&&$.off(t,n.type,e,i),i.apply(r,[n]);return null}}(t,i,s):function(t,e){return function i(s){return s.delegateTarget=t,i.oneOff&&$.off(t,s.type,e),e.apply(t,[s])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function j(t,e,i,s,n){const o=P(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function H(t){return t=t.replace(T,\"\"),S[t]||t}const $={on(t,e,i,s){M(t,e,i,s,!1)},one(t,e,i,s){M(t,e,i,s,!0)},off(t,e,i,s){if(\"string\"!=typeof e||!t)return;const[n,o,r]=x(e,i,s),a=r!==e,l=I(t),c=e.startsWith(\".\");if(void 0!==o){if(!l||!l[r])return;return void j(t,l,r,o,n?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,s){const n=e[i]||{};Object.keys(n).forEach((o=>{if(o.includes(s)){const s=n[o];j(t,e,i,s.originalHandler,s.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const s=i.replace(C,\"\");if(!a||e.includes(s)){const e=h[i];j(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const s=p(),n=H(e),o=e!==n,r=N.has(n);let a,l=!0,c=!0,h=!1,d=null;return o&&s&&(a=s.Event(e,i),s(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent(\"HTMLEvents\"),d.initEvent(n,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},B=new Map,z={set(t,e,i){B.has(t)||B.set(t,new Map);const s=B.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>B.has(t)&&B.get(t).get(e)||null,remove(t,e){if(!B.has(t))return;const i=B.get(t);i.delete(e),0===i.size&&B.delete(t)}};class R{constructor(t){(t=c(t))&&(this._element=t,z.set(this._element,this.constructor.DATA_KEY,this))}dispose(){z.remove(this._element,this.constructor.DATA_KEY),$.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){E(t,e,i)}static getInstance(t){return z.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.1.3\"}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const F=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;$.on(document,i,`[data-bs-dismiss=\"${s}\"]`,(function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),u(this))return;const n=r(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))};class q extends R{static get NAME(){return\"alert\"}close(){if($.trigger(this._element,\"close.bs.alert\").defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),$.trigger(this._element,\"closed.bs.alert\"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=q.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}F(q,\"close\"),v(q);const W='[data-bs-toggle=\"button\"]';class U extends R{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each((function(){const e=U.getOrCreateInstance(this);\"toggle\"===t&&e[t]()}))}}function K(t){return\"true\"===t||\"false\"!==t&&(t===Number(t).toString()?Number(t):\"\"===t||\"null\"===t?null:t)}function V(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}$.on(document,\"click.bs.button.data-api\",W,(t=>{t.preventDefault();const e=t.target.closest(W);U.getOrCreateInstance(e).toggle()})),v(U);const X={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${V(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${V(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith(\"bs\"))).forEach((i=>{let s=i.replace(/^bs/,\"\");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=K(t.dataset[i])})),e},getDataAttribute:(t,e)=>K(t.getAttribute(`data-bs-${V(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},Y={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let s=t.parentNode;for(;s&&s.nodeType===Node.ELEMENT_NODE&&3!==s.nodeType;)s.matches(e)&&i.push(s),s=s.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map((t=>`${t}:not([tabindex^=\"-\"])`)).join(\", \");return this.find(e,t).filter((t=>!u(t)&&d(t)))}},Q=\"carousel\",G={interval:5e3,keyboard:!0,slide:!1,pause:\"hover\",wrap:!0,touch:!0},Z={interval:\"(number|boolean)\",keyboard:\"boolean\",slide:\"(boolean|string)\",pause:\"(string|boolean)\",wrap:\"boolean\",touch:\"boolean\"},J=\"next\",tt=\"prev\",et=\"left\",it=\"right\",st={ArrowLeft:it,ArrowRight:et},nt=\"slid.bs.carousel\",ot=\"active\",rt=\".active.carousel-item\";class at extends R{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=Y.findOne(\".carousel-indicators\",this._element),this._touchSupported=\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return G}static get NAME(){return Q}next(){this._slide(J)}nextWhenVisible(){!document.hidden&&d(this._element)&&this.next()}prev(){this._slide(tt)}pause(t){t||(this._isPaused=!0),Y.findOne(\".carousel-item-next, .carousel-item-prev\",this._element)&&(a(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=Y.findOne(rt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void $.one(this._element,nt,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?J:tt;this._slide(i,this._items[t])}_getConfig(t){return t={...G,...X.getDataAttributes(this._element),...\"object\"==typeof t?t:{}},h(Q,t,Z),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?it:et)}_addEventListeners(){this._config.keyboard&&$.on(this._element,\"keydown.bs.carousel\",(t=>this._keydown(t))),\"hover\"===this._config.pause&&($.on(this._element,\"mouseenter.bs.carousel\",(t=>this.pause(t))),$.on(this._element,\"mouseleave.bs.carousel\",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},s=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};Y.find(\".carousel-item img\",this._element).forEach((t=>{$.on(t,\"dragstart.bs.carousel\",(t=>t.preventDefault()))})),this._pointerEvent?($.on(this._element,\"pointerdown.bs.carousel\",(t=>e(t))),$.on(this._element,\"pointerup.bs.carousel\",(t=>s(t))),this._element.classList.add(\"pointer-event\")):($.on(this._element,\"touchstart.bs.carousel\",(t=>e(t))),$.on(this._element,\"touchmove.bs.carousel\",(t=>i(t))),$.on(this._element,\"touchend.bs.carousel\",(t=>s(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=st[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?Y.find(\".carousel-item\",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===J;return w(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),s=this._getItemIndex(Y.findOne(rt,this._element));return $.trigger(this._element,\"slide.bs.carousel\",{relatedTarget:t,direction:e,from:s,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=Y.findOne(\".active\",this._indicatorsElement);e.classList.remove(ot),e.removeAttribute(\"aria-current\");const i=Y.find(\"[data-bs-target]\",this._indicatorsElement);for(let e=0;e{$.trigger(this._element,nt,{relatedTarget:o,direction:d,from:n,to:r})};if(this._element.classList.contains(\"slide\")){o.classList.add(h),f(o),s.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(ot),s.classList.remove(ot,h,c),this._isSliding=!1,setTimeout(u,0)};this._queueCallback(t,s,!0)}else s.classList.remove(ot),o.classList.add(ot),this._isSliding=!1,u();a&&this.cycle()}_directionToOrder(t){return[it,et].includes(t)?b()?t===et?tt:J:t===et?J:tt:t}_orderToDirection(t){return[J,tt].includes(t)?b()?t===tt?et:it:t===tt?it:et:t}static carouselInterface(t,e){const i=at.getOrCreateInstance(t,e);let{_config:s}=i;\"object\"==typeof e&&(s={...s,...e});const n=\"string\"==typeof e?e:s.slide;if(\"number\"==typeof e)i.to(e);else if(\"string\"==typeof n){if(void 0===i[n])throw new TypeError(`No method named \"${n}\"`);i[n]()}else s.interval&&s.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){at.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=r(this);if(!e||!e.classList.contains(\"carousel\"))return;const i={...X.getDataAttributes(e),...X.getDataAttributes(this)},s=this.getAttribute(\"data-bs-slide-to\");s&&(i.interval=!1),at.carouselInterface(e,i),s&&at.getInstance(e).to(s),t.preventDefault()}}$.on(document,\"click.bs.carousel.data-api\",\"[data-bs-slide], [data-bs-slide-to]\",at.dataApiClickHandler),$.on(window,\"load.bs.carousel.data-api\",(()=>{const t=Y.find('[data-bs-ride=\"carousel\"]');for(let e=0,i=t.length;et===this._element));null!==s&&n.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ct}static get NAME(){return lt}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=Y.find(ft,this._config.parent);e=Y.find(\".collapse.show, .collapse.collapsing\",this._config.parent).filter((e=>!t.includes(e)))}const i=Y.findOne(this._selector);if(e.length){const s=e.find((t=>i!==t));if(t=s?mt.getInstance(s):null,t&&t._isTransitioning)return}if($.trigger(this._element,\"show.bs.collapse\").defaultPrevented)return;e.forEach((e=>{i!==e&&mt.getOrCreateInstance(e,{toggle:!1}).hide(),t||z.set(e,\"bs.collapse\",null)}));const s=this._getDimension();this._element.classList.remove(ut),this._element.classList.add(gt),this._element.style[s]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${s[0].toUpperCase()+s.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(gt),this._element.classList.add(ut,dt),this._element.style[s]=\"\",$.trigger(this._element,\"shown.bs.collapse\")}),this._element,!0),this._element.style[s]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if($.trigger(this._element,\"hide.bs.collapse\").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,f(this._element),this._element.classList.add(gt),this._element.classList.remove(ut,dt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(gt),this._element.classList.add(ut),$.trigger(this._element,\"hidden.bs.collapse\")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(dt)}_getConfig(t){return(t={...ct,...X.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=c(t.parent),h(lt,t,ht),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=Y.find(ft,this._config.parent);Y.find(pt,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=r(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(_t):t.classList.add(_t),t.setAttribute(\"aria-expanded\",e)}))}static jQueryInterface(t){return this.each((function(){const e={};\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=mt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}}))}}$.on(document,\"click.bs.collapse.data-api\",pt,(function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();const e=o(this);Y.find(e).forEach((t=>{mt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),v(mt);const bt=\"dropdown\",vt=\"Escape\",yt=\"Space\",Et=\"ArrowUp\",wt=\"ArrowDown\",At=new RegExp(\"ArrowUp|ArrowDown|Escape\"),Tt=\"click.bs.dropdown.data-api\",Ct=\"keydown.bs.dropdown.data-api\",kt=\"show\",Lt='[data-bs-toggle=\"dropdown\"]',St=\".dropdown-menu\",Ot=b()?\"top-end\":\"top-start\",Nt=b()?\"top-start\":\"top-end\",Dt=b()?\"bottom-end\":\"bottom-start\",It=b()?\"bottom-start\":\"bottom-end\",Pt=b()?\"left-start\":\"right-start\",xt=b()?\"right-start\":\"left-start\",Mt={offset:[0,2],boundary:\"clippingParents\",reference:\"toggle\",display:\"dynamic\",popperConfig:null,autoClose:!0},jt={offset:\"(array|string|function)\",boundary:\"(string|element)\",reference:\"(string|element|object)\",display:\"string\",popperConfig:\"(null|object|function)\",autoClose:\"(boolean|string)\"};class Ht extends R{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return Mt}static get DefaultType(){return jt}static get NAME(){return bt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(u(this._element)||this._isShown(this._menu))return;const t={relatedTarget:this._element};if($.trigger(this._element,\"show.bs.dropdown\",t).defaultPrevented)return;const e=Ht.getParentFromElement(this._element);this._inNavbar?X.setDataAttribute(this._menu,\"popper\",\"none\"):this._createPopper(e),\"ontouchstart\"in document.documentElement&&!e.closest(\".navbar-nav\")&&[].concat(...document.body.children).forEach((t=>$.on(t,\"mouseover\",_))),this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(kt),this._element.classList.add(kt),$.trigger(this._element,\"shown.bs.dropdown\",t)}hide(){if(u(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){$.trigger(this._element,\"hide.bs.dropdown\",t).defaultPrevented||(\"ontouchstart\"in document.documentElement&&[].concat(...document.body.children).forEach((t=>$.off(t,\"mouseover\",_))),this._popper&&this._popper.destroy(),this._menu.classList.remove(kt),this._element.classList.remove(kt),this._element.setAttribute(\"aria-expanded\",\"false\"),X.removeDataAttribute(this._menu,\"popper\"),$.trigger(this._element,\"hidden.bs.dropdown\",t))}_getConfig(t){if(t={...this.constructor.Default,...X.getDataAttributes(this._element),...t},h(bt,t,this.constructor.DefaultType),\"object\"==typeof t.reference&&!l(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${bt.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(t){if(void 0===i)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");let e=this._element;\"parent\"===this._config.reference?e=t:l(this._config.reference)?e=c(this._config.reference):\"object\"==typeof this._config.reference&&(e=this._config.reference);const s=this._getPopperConfig(),n=s.modifiers.find((t=>\"applyStyles\"===t.name&&!1===t.enabled));this._popper=i.createPopper(e,this._menu,s),n&&X.setDataAttribute(this._menu,\"popper\",\"static\")}_isShown(t=this._element){return t.classList.contains(kt)}_getMenuElement(){return Y.next(this._element,St)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains(\"dropend\"))return Pt;if(t.classList.contains(\"dropstart\"))return xt;const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Nt:Ot:e?It:Dt}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return\"static\"===this._config.display&&(t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=Y.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter(d);i.length&&w(i,e,t===wt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Ht.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key))return;const e=Y.find(Lt);for(let i=0,s=e.length;ie+t)),this._setElementAttributes($t,\"paddingRight\",(e=>e+t)),this._setElementAttributes(Bt,\"marginRight\",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(n))}px`}))}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,\"paddingRight\"),this._resetElementAttributes($t,\"paddingRight\"),this._resetElementAttributes(Bt,\"marginRight\")}_saveInitialAttribute(t,e){const i=t.style[e];i&&X.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=X.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(X.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){l(t)?e(t):Y.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const Rt={className:\"modal-backdrop\",isVisible:!0,isAnimated:!1,rootElement:\"body\",clickCallback:null},Ft={className:\"string\",isVisible:\"boolean\",isAnimated:\"boolean\",rootElement:\"(element|string)\",clickCallback:\"(function|null)\"},qt=\"show\",Wt=\"mousedown.bs.backdrop\";class Ut{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&f(this._getElement()),this._getElement().classList.add(qt),this._emulateAnimation((()=>{y(t)}))):y(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(qt),this._emulateAnimation((()=>{this.dispose(),y(t)}))):y(t)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_getConfig(t){return(t={...Rt,...\"object\"==typeof t?t:{}}).rootElement=c(t.rootElement),h(\"backdrop\",t,Ft),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),$.on(this._getElement(),Wt,(()=>{y(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&($.off(this._element,Wt),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){E(t,this._getElement(),this._config.isAnimated)}}const Kt={trapElement:null,autofocus:!0},Vt={trapElement:\"element\",autofocus:\"boolean\"},Xt=\".bs.focustrap\",Yt=\"backward\";class Qt{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),$.off(document,Xt),$.on(document,\"focusin.bs.focustrap\",(t=>this._handleFocusin(t))),$.on(document,\"keydown.tab.bs.focustrap\",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,$.off(document,Xt))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const s=Y.focusableChildren(i);0===s.length?i.focus():this._lastTabNavDirection===Yt?s[s.length-1].focus():s[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?Yt:\"forward\")}_getConfig(t){return t={...Kt,...\"object\"==typeof t?t:{}},h(\"focustrap\",t,Vt),t}}const Gt=\"modal\",Zt=\"Escape\",Jt={backdrop:!0,keyboard:!0,focus:!0},te={backdrop:\"(boolean|string)\",keyboard:\"boolean\",focus:\"boolean\"},ee=\"hidden.bs.modal\",ie=\"show.bs.modal\",se=\"resize.bs.modal\",ne=\"click.dismiss.bs.modal\",oe=\"keydown.dismiss.bs.modal\",re=\"mousedown.dismiss.bs.modal\",ae=\"modal-open\",le=\"show\",ce=\"modal-static\";class he extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=Y.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new zt}static get Default(){return Jt}static get NAME(){return Gt}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||$.trigger(this._element,ie,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(ae),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),$.on(this._dialog,re,(()=>{$.one(this._element,\"mouseup.dismiss.bs.modal\",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if($.trigger(this._element,\"hide.bs.modal\").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(le),$.off(this._element,ne),$.off(this._dialog,re),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>$.off(t,\".bs.modal\"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ut({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Qt({trapElement:this._element})}_getConfig(t){return t={...Jt,...X.getDataAttributes(this._element),...\"object\"==typeof t?t:{}},h(Gt,t,te),t}_showElement(t){const e=this._isAnimated(),i=Y.findOne(\".modal-body\",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&f(this._element),this._element.classList.add(le),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,$.trigger(this._element,\"shown.bs.modal\",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?$.on(this._element,oe,(t=>{this._config.keyboard&&t.key===Zt?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Zt||this._triggerBackdropTransition()})):$.off(this._element,oe)}_setResizeEvent(){this._isShown?$.on(window,se,(()=>this._adjustDialog())):$.off(window,se)}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(ae),this._resetAdjustments(),this._scrollBar.reset(),$.trigger(this._element,ee)}))}_showBackdrop(t){$.on(this._element,ne,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():\"static\"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if($.trigger(this._element,\"hidePrevented.bs.modal\").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,s=e>document.documentElement.clientHeight;!s&&\"hidden\"===i.overflowY||t.contains(ce)||(s||(i.overflowY=\"hidden\"),t.add(ce),this._queueCallback((()=>{t.remove(ce),s||this._queueCallback((()=>{i.overflowY=\"\"}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!b()||i&&!t&&b())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!b()||!i&&t&&b())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each((function(){const i=he.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}}))}}$.on(document,\"click.bs.modal.data-api\",'[data-bs-toggle=\"modal\"]',(function(t){const e=r(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),$.one(e,ie,(t=>{t.defaultPrevented||$.one(e,ee,(()=>{d(this)&&this.focus()}))}));const i=Y.findOne(\".modal.show\");i&&he.getInstance(i).hide(),he.getOrCreateInstance(e).toggle(this)})),F(he),v(he);const de=\"offcanvas\",ue={backdrop:!0,keyboard:!0,scroll:!1},ge={backdrop:\"boolean\",keyboard:\"boolean\",scroll:\"boolean\"},_e=\"show\",fe=\".offcanvas.show\",pe=\"hidden.bs.offcanvas\";class me extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return de}static get Default(){return ue}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||$.trigger(this._element,\"show.bs.offcanvas\",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility=\"visible\",this._backdrop.show(),this._config.scroll||(new zt).hide(),this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(_e),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),$.trigger(this._element,\"shown.bs.offcanvas\",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&($.trigger(this._element,\"hide.bs.offcanvas\").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(_e),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._element.style.visibility=\"hidden\",this._config.scroll||(new zt).reset(),$.trigger(this._element,pe)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...ue,...X.getDataAttributes(this._element),...\"object\"==typeof t?t:{}},h(de,t,ge),t}_initializeBackDrop(){return new Ut({className:\"offcanvas-backdrop\",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Qt({trapElement:this._element})}_addEventListeners(){$.on(this._element,\"keydown.dismiss.bs.offcanvas\",(t=>{this._config.keyboard&&\"Escape\"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=me.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}$.on(document,\"click.bs.offcanvas.data-api\",'[data-bs-toggle=\"offcanvas\"]',(function(t){const e=r(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),u(this))return;$.one(e,pe,(()=>{d(this)&&this.focus()}));const i=Y.findOne(fe);i&&i!==e&&me.getInstance(i).hide(),me.getOrCreateInstance(e).toggle(this)})),$.on(window,\"load.bs.offcanvas.data-api\",(()=>Y.find(fe).forEach((t=>me.getOrCreateInstance(t).show())))),F(me),v(me);const be=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),ve=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,ye=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i,Ee=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!be.has(i)||Boolean(ve.test(t.nodeValue)||ye.test(t.nodeValue));const s=e.filter((t=>t instanceof RegExp));for(let t=0,e=s.length;t{Ee(t,r)||i.removeAttribute(t.nodeName)}))}return s.body.innerHTML}const Ae=\"tooltip\",Te=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),Ce={animation:\"boolean\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\",delay:\"(number|object)\",html:\"boolean\",selector:\"(string|boolean)\",placement:\"(string|function)\",offset:\"(array|string|function)\",container:\"(string|element|boolean)\",fallbackPlacements:\"array\",boundary:\"(string|element)\",customClass:\"(string|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",allowList:\"object\",popperConfig:\"(null|object|function)\"},ke={AUTO:\"auto\",TOP:\"top\",RIGHT:b()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:b()?\"right\":\"left\"},Le={animation:!0,template:'
',trigger:\"hover focus\",title:\"\",delay:0,html:!1,selector:!1,placement:\"top\",offset:[0,0],container:!1,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],boundary:\"clippingParents\",customClass:\"\",sanitize:!0,sanitizeFn:null,allowList:{\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Se={HIDE:\"hide.bs.tooltip\",HIDDEN:\"hidden.bs.tooltip\",SHOW:\"show.bs.tooltip\",SHOWN:\"shown.bs.tooltip\",INSERTED:\"inserted.bs.tooltip\",CLICK:\"click.bs.tooltip\",FOCUSIN:\"focusin.bs.tooltip\",FOCUSOUT:\"focusout.bs.tooltip\",MOUSEENTER:\"mouseenter.bs.tooltip\",MOUSELEAVE:\"mouseleave.bs.tooltip\"},Oe=\"fade\",Ne=\"show\",De=\"show\",Ie=\"out\",Pe=\".tooltip-inner\",xe=\".modal\",Me=\"hide.bs.modal\",je=\"hover\",He=\"focus\";class $e extends R{constructor(t,e){if(void 0===i)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState=\"\",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return Le}static get NAME(){return Ae}static get Event(){return Se}static get DefaultType(){return Ce}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(Ne))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),$.off(this._element.closest(xe),Me,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this.isWithContent()||!this._isEnabled)return;const t=$.trigger(this._element,this.constructor.Event.SHOW),e=g(this._element),s=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!s)return;\"tooltip\"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(Pe).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),o=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute(\"id\",o),this._element.setAttribute(\"aria-describedby\",o),this._config.animation&&n.classList.add(Oe);const r=\"function\"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,a=this._getAttachment(r);this._addAttachmentClass(a);const{container:l}=this._config;z.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(l.append(n),$.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=i.createPopper(this._element,n,this._getPopperConfig(a)),n.classList.add(Ne);const c=this._resolvePossibleFunction(this._config.customClass);c&&n.classList.add(...c.split(\" \")),\"ontouchstart\"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{$.on(t,\"mouseover\",_)}));const h=this.tip.classList.contains(Oe);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,$.trigger(this._element,this.constructor.Event.SHOWN),t===Ie&&this._leave(null,this)}),this.tip,h)}hide(){if(!this._popper)return;const t=this.getTipElement();if($.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(Ne),\"ontouchstart\"in document.documentElement&&[].concat(...document.body.children).forEach((t=>$.off(t,\"mouseover\",_))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(Oe);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==De&&t.remove(),this._cleanTipClass(),this._element.removeAttribute(\"aria-describedby\"),$.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=\"\"}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement(\"div\");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(Oe,Ne),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),Pe)}_sanitizeAndSetContent(t,e,i){const s=Y.findOne(i,t);e||!s?this.setElementContent(s,e):s.remove()}setElementContent(t,e){if(null!==t)return l(e)?(e=c(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML=\"\",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=we(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute(\"data-bs-original-title\")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return\"right\"===t?\"end\":\"left\"===t?\"start\":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return\"function\"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"onChange\",enabled:!0,phase:\"afterWrite\",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return ke[t.toUpperCase()]}_setListeners(){this._config.trigger.split(\" \").forEach((t=>{if(\"click\"===t)$.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if(\"manual\"!==t){const e=t===je?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===je?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;$.on(this._element,e,this._config.selector,(t=>this._enter(t))),$.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},$.on(this._element.closest(xe),Me,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:\"manual\",selector:\"\"}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute(\"title\"),e=typeof this._element.getAttribute(\"data-bs-original-title\");(t||\"string\"!==e)&&(this._element.setAttribute(\"data-bs-original-title\",t||\"\"),!t||this._element.getAttribute(\"aria-label\")||this._element.textContent||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"title\",\"\"))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger[\"focusin\"===t.type?He:je]=!0),e.getTipElement().classList.contains(Ne)||e._hoverState===De?e._hoverState=De:(clearTimeout(e._timeout),e._hoverState=De,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===De&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger[\"focusout\"===t.type?He:je]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ie,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===Ie&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=X.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Te.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,...\"object\"==typeof t&&t?t:{}}).container=!1===t.container?document.body:c(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),h(Ae,t,this.constructor.DefaultType),t.sanitize&&(t.template=we(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`,\"g\"),i=t.getAttribute(\"class\").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return\"bs-tooltip\"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=$e.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}v($e);const Be={...$e.Default,placement:\"right\",offset:[0,8],trigger:\"click\",content:\"\",template:'

'},ze={...$e.DefaultType,content:\"(string|element|function)\"},Re={HIDE:\"hide.bs.popover\",HIDDEN:\"hidden.bs.popover\",SHOW:\"show.bs.popover\",SHOWN:\"shown.bs.popover\",INSERTED:\"inserted.bs.popover\",CLICK:\"click.bs.popover\",FOCUSIN:\"focusin.bs.popover\",FOCUSOUT:\"focusout.bs.popover\",MOUSEENTER:\"mouseenter.bs.popover\",MOUSELEAVE:\"mouseleave.bs.popover\"};class Fe extends $e{static get Default(){return Be}static get NAME(){return\"popover\"}static get Event(){return Re}static get DefaultType(){return ze}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),\".popover-header\"),this._sanitizeAndSetContent(t,this._getContent(),\".popover-body\")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return\"bs-popover\"}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}v(Fe);const qe=\"scrollspy\",We={offset:10,method:\"auto\",target:\"\"},Ue={offset:\"number\",method:\"string\",target:\"(string|element)\"},Ke=\"active\",Ve=\".nav-link, .list-group-item, .dropdown-item\",Xe=\"position\";class Ye extends R{constructor(t,e){super(t),this._scrollElement=\"BODY\"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,$.on(this._scrollElement,\"scroll.bs.scrollspy\",(()=>this._process())),this.refresh(),this._process()}static get Default(){return We}static get NAME(){return qe}refresh(){const t=this._scrollElement===this._scrollElement.window?\"offset\":Xe,e=\"auto\"===this._config.method?t:this._config.method,i=e===Xe?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Y.find(Ve,this._config.target).map((t=>{const s=o(t),n=s?Y.findOne(s):null;if(n){const t=n.getBoundingClientRect();if(t.width||t.height)return[X[e](n).top+i,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){$.off(this._scrollElement,\".bs.scrollspy\"),super.dispose()}_getConfig(t){return(t={...We,...X.getDataAttributes(this._element),...\"object\"==typeof t&&t?t:{}}).target=c(t.target)||document.documentElement,h(qe,t,Ue),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target=\"${t}\"],${e}[href=\"${t}\"]`)),i=Y.findOne(e.join(\",\"),this._config.target);i.classList.add(Ke),i.classList.contains(\"dropdown-item\")?Y.findOne(\".dropdown-toggle\",i.closest(\".dropdown\")).classList.add(Ke):Y.parents(i,\".nav, .list-group\").forEach((t=>{Y.prev(t,\".nav-link, .list-group-item\").forEach((t=>t.classList.add(Ke))),Y.prev(t,\".nav-item\").forEach((t=>{Y.children(t,\".nav-link\").forEach((t=>t.classList.add(Ke)))}))})),$.trigger(this._scrollElement,\"activate.bs.scrollspy\",{relatedTarget:t})}_clear(){Y.find(Ve,this._config.target).filter((t=>t.classList.contains(Ke))).forEach((t=>t.classList.remove(Ke)))}static jQueryInterface(t){return this.each((function(){const e=Ye.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(window,\"load.bs.scrollspy.data-api\",(()=>{Y.find('[data-bs-spy=\"scroll\"]').forEach((t=>new Ye(t)))})),v(Ye);const Qe=\"active\",Ge=\"fade\",Ze=\"show\",Je=\".active\",ti=\":scope > li > .active\";class ei extends R{static get NAME(){return\"tab\"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Qe))return;let t;const e=r(this._element),i=this._element.closest(\".nav, .list-group\");if(i){const e=\"UL\"===i.nodeName||\"OL\"===i.nodeName?ti:Je;t=Y.find(e,i),t=t[t.length-1]}const s=t?$.trigger(t,\"hide.bs.tab\",{relatedTarget:this._element}):null;if($.trigger(this._element,\"show.bs.tab\",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const n=()=>{$.trigger(t,\"hidden.bs.tab\",{relatedTarget:this._element}),$.trigger(this._element,\"shown.bs.tab\",{relatedTarget:t})};e?this._activate(e,e.parentNode,n):n()}_activate(t,e,i){const s=(!e||\"UL\"!==e.nodeName&&\"OL\"!==e.nodeName?Y.children(e,Je):Y.find(ti,e))[0],n=i&&s&&s.classList.contains(Ge),o=()=>this._transitionComplete(t,s,i);s&&n?(s.classList.remove(Ze),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Qe);const t=Y.findOne(\":scope > .dropdown-menu .active\",e.parentNode);t&&t.classList.remove(Qe),\"tab\"===e.getAttribute(\"role\")&&e.setAttribute(\"aria-selected\",!1)}t.classList.add(Qe),\"tab\"===t.getAttribute(\"role\")&&t.setAttribute(\"aria-selected\",!0),f(t),t.classList.contains(Ge)&&t.classList.add(Ze);let s=t.parentNode;if(s&&\"LI\"===s.nodeName&&(s=s.parentNode),s&&s.classList.contains(\"dropdown-menu\")){const e=t.closest(\".dropdown\");e&&Y.find(\".dropdown-toggle\",e).forEach((t=>t.classList.add(Qe))),t.setAttribute(\"aria-expanded\",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=ei.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(document,\"click.bs.tab.data-api\",'[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',(function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),u(this)||ei.getOrCreateInstance(this).show()})),v(ei);const ii=\"toast\",si=\"hide\",ni=\"show\",oi=\"showing\",ri={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},ai={animation:!0,autohide:!0,delay:5e3};class li extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return ri}static get Default(){return ai}static get NAME(){return ii}show(){$.trigger(this._element,\"show.bs.toast\").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(si),f(this._element),this._element.classList.add(ni),this._element.classList.add(oi),this._queueCallback((()=>{this._element.classList.remove(oi),$.trigger(this._element,\"shown.bs.toast\"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(ni)&&($.trigger(this._element,\"hide.bs.toast\").defaultPrevented||(this._element.classList.add(oi),this._queueCallback((()=>{this._element.classList.add(si),this._element.classList.remove(oi),this._element.classList.remove(ni),$.trigger(this._element,\"hidden.bs.toast\")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(ni)&&this._element.classList.remove(ni),super.dispose()}_getConfig(t){return t={...ai,...X.getDataAttributes(this._element),...\"object\"==typeof t&&t?t:{}},h(ii,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){$.on(this._element,\"mouseover.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"mouseout.bs.toast\",(t=>this._onInteraction(t,!1))),$.on(this._element,\"focusin.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"focusout.bs.toast\",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=li.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}return F(li),v(li),{Alert:q,Button:U,Carousel:at,Collapse:mt,Dropdown:Ht,Modal:he,Offcanvas:me,Popover:Fe,ScrollSpy:Ye,Tab:ei,Toast:li,Tooltip:$e}}));\n//# sourceMappingURL=bootstrap.min.js.map","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && pluginDescriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(pluginDescriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","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.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","import { Node, mergeAttributes } from '@tiptap/core';\n\nconst TableCell = Node.create({\r\n name: 'tableCell',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'block+',\r\n addAttributes() {\r\n return {\r\n colspan: {\r\n default: 1,\r\n },\r\n rowspan: {\r\n default: 1,\r\n },\r\n colwidth: {\r\n default: null,\r\n parseHTML: element => {\r\n const colwidth = element.getAttribute('colwidth');\r\n const value = colwidth\r\n ? [parseInt(colwidth, 10)]\r\n : null;\r\n return value;\r\n },\r\n },\r\n };\r\n },\r\n tableRole: 'cell',\r\n isolating: true,\r\n parseHTML() {\r\n return [\r\n { tag: 'td' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['td', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n});\n\nexport { TableCell, TableCell as default };\n//# sourceMappingURL=tiptap-extension-table-cell.esm.js.map\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nvar classesById = Object.create(null);\n\n// ::- Superclass for editor selections. Every selection type should\n// extend this. Should not be instantiated directly.\nvar Selection = function Selection($anchor, $head, ranges) {\n // :: [SelectionRange]\n // The ranges covered by the selection.\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n // :: ResolvedPos\n // The resolved anchor of the selection (the side that stays in\n // place when the selection is modified).\n this.$anchor = $anchor;\n // :: ResolvedPos\n // The resolved head of the selection (the side that moves when\n // the selection is modified).\n this.$head = $head;\n};\n\nvar prototypeAccessors = { anchor: { configurable: true },head: { configurable: true },from: { configurable: true },to: { configurable: true },$from: { configurable: true },$to: { configurable: true },empty: { configurable: true } };\n\n// :: number\n// The selection's anchor, as an unresolved position.\nprototypeAccessors.anchor.get = function () { return this.$anchor.pos };\n\n// :: number\n// The selection's head.\nprototypeAccessors.head.get = function () { return this.$head.pos };\n\n// :: number\n// The lower bound of the selection's main range.\nprototypeAccessors.from.get = function () { return this.$from.pos };\n\n// :: number\n// The upper bound of the selection's main range.\nprototypeAccessors.to.get = function () { return this.$to.pos };\n\n// :: ResolvedPos\n// The resolved lowerbound of the selection's main range.\nprototypeAccessors.$from.get = function () {\n return this.ranges[0].$from\n};\n\n// :: ResolvedPos\n// The resolved upper bound of the selection's main range.\nprototypeAccessors.$to.get = function () {\n return this.ranges[0].$to\n};\n\n// :: bool\n// Indicates whether the selection contains any content.\nprototypeAccessors.empty.get = function () {\n var ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++)\n { if (ranges[i].$from.pos != ranges[i].$to.pos) { return false } }\n return true\n};\n\n// eq:: (Selection) → bool\n// Test whether the selection is the same as another selection.\n\n// map:: (doc: Node, mapping: Mappable) → Selection\n// Map this selection through a [mappable](#transform.Mappable) thing. `doc`\n// should be the new document to which we are mapping.\n\n// :: () → Slice\n// Get the content of this selection as a slice.\nSelection.prototype.content = function content () {\n return this.$from.node(0).slice(this.from, this.to, true)\n};\n\n// :: (Transaction, ?Slice)\n// Replace the selection with a slice or, if no slice is given,\n// delete the selection. Will append to the given transaction.\nSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n var lastNode = content.content.lastChild, lastParent = null;\n for (var i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i$1 = 0; i$1 < ranges.length; i$1++) {\n var ref = ranges[i$1];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i$1 ? Slice.empty : content);\n if (i$1 == 0)\n { selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1); }\n }\n};\n\n// :: (Transaction, Node)\n// Replace the selection with the given node, appending the changes\n// to the given transaction.\nSelection.prototype.replaceWith = function replaceWith (tr, node) {\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n var from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n } else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n};\n\n// toJSON:: () → Object\n// Convert the selection to a JSON representation. When implementing\n// this for a custom selection class, make sure to give the object a\n// `type` property whose value matches the ID under which you\n// [registered](#state.Selection^jsonID) your class.\n\n// :: (ResolvedPos, number, ?bool) → ?Selection\n// Find a valid cursor or leaf node selection starting at the given\n// position and searching back if `dir` is negative, and forward if\n// positive. When `textOnly` is true, only consider cursor\n// selections. Will return null when no valid selection position is\n// found.\nSelection.findFrom = function findFrom ($pos, dir, textOnly) {\n var inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner) { return inner }\n\n for (var depth = $pos.depth - 1; depth >= 0; depth--) {\n var found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found) { return found }\n }\n};\n\n// :: (ResolvedPos, ?number) → Selection\n// Find a valid cursor or leaf node selection near the given\n// position. Searches forward first by default, but if `bias` is\n// negative, it will search backwards first.\nSelection.near = function near ($pos, bias) {\n if ( bias === void 0 ) bias = 1;\n\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0))\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the start of\n// the given document. Will return an\n// [`AllSelection`](#state.AllSelection) if no valid position\n// exists.\nSelection.atStart = function atStart (doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc)\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the end of the\n// given document.\nSelection.atEnd = function atEnd (doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc)\n};\n\n// :: (Node, Object) → Selection\n// Deserialize the JSON representation of a selection. Must be\n// implemented for custom classes (as a static class method).\nSelection.fromJSON = function fromJSON (doc, json) {\n if (!json || !json.type) { throw new RangeError(\"Invalid input for Selection.fromJSON\") }\n var cls = classesById[json.type];\n if (!cls) { throw new RangeError((\"No selection type \" + (json.type) + \" defined\")) }\n return cls.fromJSON(doc, json)\n};\n\n// :: (string, constructor)\n// To be able to deserialize selections from JSON, custom selection\n// classes must register themselves with an ID string, so that they\n// can be disambiguated. Try to pick something that's unlikely to\n// clash with classes from other modules.\nSelection.jsonID = function jsonID (id, selectionClass) {\n if (id in classesById) { throw new RangeError(\"Duplicate use of selection JSON ID \" + id) }\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass\n};\n\n// :: () → SelectionBookmark\n// Get a [bookmark](#state.SelectionBookmark) for this selection,\n// which is a value that can be mapped without having access to a\n// current document, and later resolved to a real selection for a\n// given document again. (This is used mostly by the history to\n// track and restore old selections.) The default implementation of\n// this method just converts the selection to a text selection and\n// returns the bookmark for that.\nSelection.prototype.getBookmark = function getBookmark () {\n return TextSelection.between(this.$anchor, this.$head).getBookmark()\n};\n\nObject.defineProperties( Selection.prototype, prototypeAccessors );\n\n// :: bool\n// Controls whether, when a selection of this type is active in the\n// browser, the selected range should be visible to the user. Defaults\n// to `true`.\nSelection.prototype.visible = true;\n\n// SelectionBookmark:: interface\n// A lightweight, document-independent representation of a selection.\n// You can define a custom bookmark type for a custom selection class\n// to make the history handle it well.\n//\n// map:: (mapping: Mapping) → SelectionBookmark\n// Map the bookmark through a set of changes.\n//\n// resolve:: (doc: Node) → Selection\n// Resolve the bookmark to a real selection again. This may need to\n// do some error checking and may fall back to a default (usually\n// [`TextSelection.between`](#state.TextSelection^between)) if\n// mapping made the bookmark invalid.\n\n// ::- Represents a selected range in a document.\nvar SelectionRange = function SelectionRange($from, $to) {\n // :: ResolvedPos\n // The lower bound of the range.\n this.$from = $from;\n // :: ResolvedPos\n // The upper bound of the range.\n this.$to = $to;\n};\n\n// ::- A text selection represents a classical editor selection, with\n// a head (the moving side) and anchor (immobile side), both of which\n// point into textblock nodes. It can be empty (a regular cursor\n// position).\nvar TextSelection = /*@__PURE__*/(function (Selection) {\n function TextSelection($anchor, $head) {\n if ( $head === void 0 ) $head = $anchor;\n\n Selection.call(this, $anchor, $head);\n }\n\n if ( Selection ) TextSelection.__proto__ = Selection;\n TextSelection.prototype = Object.create( Selection && Selection.prototype );\n TextSelection.prototype.constructor = TextSelection;\n\n var prototypeAccessors$1 = { $cursor: { configurable: true } };\n\n // :: ?ResolvedPos\n // Returns a resolved position if this is a cursor selection (an\n // empty text selection), and null otherwise.\n prototypeAccessors$1.$cursor.get = function () { return this.$anchor.pos == this.$head.pos ? this.$head : null };\n\n TextSelection.prototype.map = function map (doc, mapping) {\n var $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent) { return Selection.near($head) }\n var $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head)\n };\n\n TextSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n Selection.prototype.replace.call(this, tr, content);\n if (content == Slice.empty) {\n var marks = this.$from.marksAcross(this.$to);\n if (marks) { tr.ensureMarks(marks); }\n }\n };\n\n TextSelection.prototype.eq = function eq (other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head\n };\n\n TextSelection.prototype.getBookmark = function getBookmark () {\n return new TextBookmark(this.anchor, this.head)\n };\n\n TextSelection.prototype.toJSON = function toJSON () {\n return {type: \"text\", anchor: this.anchor, head: this.head}\n };\n\n TextSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n { throw new RangeError(\"Invalid input for TextSelection.fromJSON\") }\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head))\n };\n\n // :: (Node, number, ?number) → TextSelection\n // Create a text selection from non-resolved positions.\n TextSelection.create = function create (doc, anchor, head) {\n if ( head === void 0 ) head = anchor;\n\n var $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head))\n };\n\n // :: (ResolvedPos, ResolvedPos, ?number) → Selection\n // Return a text selection that spans the given positions or, if\n // they aren't text positions, find a text selection near them.\n // `bias` determines whether the method searches forward (default)\n // or backwards (negative number) first. Will fall back to calling\n // [`Selection.near`](#state.Selection^near) when the document\n // doesn't contain a valid text position.\n TextSelection.between = function between ($anchor, $head, bias) {\n var dPos = $anchor.pos - $head.pos;\n if (!bias || dPos) { bias = dPos >= 0 ? 1 : -1; }\n if (!$head.parent.inlineContent) {\n var found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found) { $head = found.$head; }\n else { return Selection.near($head, bias) }\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n } else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0)) { $anchor = $head; }\n }\n }\n return new TextSelection($anchor, $head)\n };\n\n Object.defineProperties( TextSelection.prototype, prototypeAccessors$1 );\n\n return TextSelection;\n}(Selection));\n\nSelection.jsonID(\"text\", TextSelection);\n\nvar TextBookmark = function TextBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\nTextBookmark.prototype.map = function map (mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head))\n};\nTextBookmark.prototype.resolve = function resolve (doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head))\n};\n\n// ::- A node selection is a selection that points at a single node.\n// All nodes marked [selectable](#model.NodeSpec.selectable) can be\n// the target of a node selection. In such a selection, `from` and\n// `to` point directly before and after the selected node, `anchor`\n// equals `from`, and `head` equals `to`..\nvar NodeSelection = /*@__PURE__*/(function (Selection) {\n function NodeSelection($pos) {\n var node = $pos.nodeAfter;\n var $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n Selection.call(this, $pos, $end);\n // :: Node The selected node.\n this.node = node;\n }\n\n if ( Selection ) NodeSelection.__proto__ = Selection;\n NodeSelection.prototype = Object.create( Selection && Selection.prototype );\n NodeSelection.prototype.constructor = NodeSelection;\n\n NodeSelection.prototype.map = function map (doc, mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n var $pos = doc.resolve(pos);\n if (deleted) { return Selection.near($pos) }\n return new NodeSelection($pos)\n };\n\n NodeSelection.prototype.content = function content () {\n return new Slice(Fragment.from(this.node), 0, 0)\n };\n\n NodeSelection.prototype.eq = function eq (other) {\n return other instanceof NodeSelection && other.anchor == this.anchor\n };\n\n NodeSelection.prototype.toJSON = function toJSON () {\n return {type: \"node\", anchor: this.anchor}\n };\n\n NodeSelection.prototype.getBookmark = function getBookmark () { return new NodeBookmark(this.anchor) };\n\n NodeSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\")\n { throw new RangeError(\"Invalid input for NodeSelection.fromJSON\") }\n return new NodeSelection(doc.resolve(json.anchor))\n };\n\n // :: (Node, number) → NodeSelection\n // Create a node selection from non-resolved positions.\n NodeSelection.create = function create (doc, from) {\n return new this(doc.resolve(from))\n };\n\n // :: (Node) → bool\n // Determines whether the given node may be selected as a node\n // selection.\n NodeSelection.isSelectable = function isSelectable (node) {\n return !node.isText && node.type.spec.selectable !== false\n };\n\n return NodeSelection;\n}(Selection));\n\nNodeSelection.prototype.visible = false;\n\nSelection.jsonID(\"node\", NodeSelection);\n\nvar NodeBookmark = function NodeBookmark(anchor) {\n this.anchor = anchor;\n};\nNodeBookmark.prototype.map = function map (mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos)\n};\nNodeBookmark.prototype.resolve = function resolve (doc) {\n var $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node)) { return new NodeSelection($pos) }\n return Selection.near($pos)\n};\n\n// ::- A selection type that represents selecting the whole document\n// (which can not necessarily be expressed with a text selection, when\n// there are for example leaf block nodes at the start or end of the\n// document).\nvar AllSelection = /*@__PURE__*/(function (Selection) {\n function AllSelection(doc) {\n Selection.call(this, doc.resolve(0), doc.resolve(doc.content.size));\n }\n\n if ( Selection ) AllSelection.__proto__ = Selection;\n AllSelection.prototype = Object.create( Selection && Selection.prototype );\n AllSelection.prototype.constructor = AllSelection;\n\n AllSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n var sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection)) { tr.setSelection(sel); }\n } else {\n Selection.prototype.replace.call(this, tr, content);\n }\n };\n\n AllSelection.prototype.toJSON = function toJSON () { return {type: \"all\"} };\n\n AllSelection.fromJSON = function fromJSON (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.map = function map (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.eq = function eq (other) { return other instanceof AllSelection };\n\n AllSelection.prototype.getBookmark = function getBookmark () { return AllBookmark };\n\n return AllSelection;\n}(Selection));\n\nSelection.jsonID(\"all\", AllSelection);\n\nvar AllBookmark = {\n map: function map() { return this },\n resolve: function resolve(doc) { return new AllSelection(doc) }\n};\n\n// FIXME we'll need some awareness of text direction when scanning for selections\n\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text) {\n if (node.inlineContent) { return TextSelection.create(doc, pos) }\n for (var i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n var child = node.child(i);\n if (!child.isAtom) {\n var inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner) { return inner }\n } else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0))\n }\n pos += child.nodeSize * dir;\n }\n}\n\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n var last = tr.steps.length - 1;\n if (last < startLen) { return }\n var step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) { return }\n var map = tr.mapping.maps[last], end;\n map.forEach(function (_from, _to, _newFrom, newTo) { if (end == null) { end = newTo; } });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nvar UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n\n// ::- An editor state transaction, which can be applied to a state to\n// create an updated state. Use\n// [`EditorState.tr`](#state.EditorState.tr) to create an instance.\n//\n// Transactions track changes to the document (they are a subclass of\n// [`Transform`](#transform.Transform)), but also other state changes,\n// like selection updates and adjustments of the set of [stored\n// marks](#state.EditorState.storedMarks). In addition, you can store\n// metadata properties in a transaction, which are extra pieces of\n// information that client code or plugins can use to describe what a\n// transacion represents, so that they can update their [own\n// state](#state.StateField) accordingly.\n//\n// The [editor view](#view.EditorView) uses a few metadata properties:\n// it will attach a property `\"pointer\"` with the value `true` to\n// selection transactions directly caused by mouse or touch input, and\n// a `\"uiEvent\"` property of that may be `\"paste\"`, `\"cut\"`, or `\"drop\"`.\nvar Transaction = /*@__PURE__*/(function (Transform) {\n function Transaction(state) {\n Transform.call(this, state.doc);\n // :: number\n // The timestamp associated with this transaction, in the same\n // format as `Date.now()`.\n this.time = Date.now();\n this.curSelection = state.selection;\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // :: ?[Mark]\n // The stored marks set by this transaction, if any.\n this.storedMarks = state.storedMarks;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n }\n\n if ( Transform ) Transaction.__proto__ = Transform;\n Transaction.prototype = Object.create( Transform && Transform.prototype );\n Transaction.prototype.constructor = Transaction;\n\n var prototypeAccessors = { selection: { configurable: true },selectionSet: { configurable: true },storedMarksSet: { configurable: true },isGeneric: { configurable: true },scrolledIntoView: { configurable: true } };\n\n // :: Selection\n // The transaction's current selection. This defaults to the editor\n // selection [mapped](#state.Selection.map) through the steps in the\n // transaction, but can be overwritten with\n // [`setSelection`](#state.Transaction.setSelection).\n prototypeAccessors.selection.get = function () {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection\n };\n\n // :: (Selection) → Transaction\n // Update the transaction's current selection. Will determine the\n // selection that the editor gets when the transaction is applied.\n Transaction.prototype.setSelection = function setSelection (selection) {\n if (selection.$from.doc != this.doc)\n { throw new RangeError(\"Selection passed to setSelection must point at the current document\") }\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this\n };\n\n // :: bool\n // Whether the selection was explicitly updated by this transaction.\n prototypeAccessors.selectionSet.get = function () {\n return (this.updated & UPDATED_SEL) > 0\n };\n\n // :: (?[Mark]) → Transaction\n // Set the current stored marks.\n Transaction.prototype.setStoredMarks = function setStoredMarks (marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this\n };\n\n // :: ([Mark]) → Transaction\n // Make sure the current stored marks or, if that is null, the marks\n // at the selection, match the given set of marks. Does nothing if\n // this is already the case.\n Transaction.prototype.ensureMarks = function ensureMarks (marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n { this.setStoredMarks(marks); }\n return this\n };\n\n // :: (Mark) → Transaction\n // Add a mark to the set of stored marks.\n Transaction.prototype.addStoredMark = function addStoredMark (mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: (union) → Transaction\n // Remove a mark or mark type from the set of stored marks.\n Transaction.prototype.removeStoredMark = function removeStoredMark (mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: bool\n // Whether the stored marks were explicitly set for this transaction.\n prototypeAccessors.storedMarksSet.get = function () {\n return (this.updated & UPDATED_MARKS) > 0\n };\n\n Transaction.prototype.addStep = function addStep (step, doc) {\n Transform.prototype.addStep.call(this, step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n };\n\n // :: (number) → Transaction\n // Update the timestamp for the transaction.\n Transaction.prototype.setTime = function setTime (time) {\n this.time = time;\n return this\n };\n\n // :: (Slice) → Transaction\n // Replace the current selection with the given slice.\n Transaction.prototype.replaceSelection = function replaceSelection (slice) {\n this.selection.replace(this, slice);\n return this\n };\n\n // :: (Node, ?bool) → Transaction\n // Replace the selection with the given node. When `inheritMarks` is\n // true and the content is inline, it inherits the marks from the\n // place where it is inserted.\n Transaction.prototype.replaceSelectionWith = function replaceSelectionWith (node, inheritMarks) {\n var selection = this.selection;\n if (inheritMarks !== false)\n { node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none))); }\n selection.replaceWith(this, node);\n return this\n };\n\n // :: () → Transaction\n // Delete the selection.\n Transaction.prototype.deleteSelection = function deleteSelection () {\n this.selection.replace(this);\n return this\n };\n\n // :: (string, from: ?number, to: ?number) → Transaction\n // Replace the given range, or the selection if no range is given,\n // with a text node containing the given string.\n Transaction.prototype.insertText = function insertText (text, from, to) {\n if ( to === void 0 ) to = from;\n\n var schema = this.doc.type.schema;\n if (from == null) {\n if (!text) { return this.deleteSelection() }\n return this.replaceSelectionWith(schema.text(text), true)\n } else {\n if (!text) { return this.deleteRange(from, to) }\n var marks = this.storedMarks;\n if (!marks) {\n var $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty) { this.setSelection(Selection.near(this.selection.$to)); }\n return this\n }\n };\n\n // :: (union, any) → Transaction\n // Store a metadata property in this transaction, keyed either by\n // name or by plugin.\n Transaction.prototype.setMeta = function setMeta (key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this\n };\n\n // :: (union) → any\n // Retrieve a metadata property for a given name or plugin.\n Transaction.prototype.getMeta = function getMeta (key) {\n return this.meta[typeof key == \"string\" ? key : key.key]\n };\n\n // :: bool\n // Returns true if this transaction doesn't contain any metadata,\n // and can thus safely be extended.\n prototypeAccessors.isGeneric.get = function () {\n for (var _ in this.meta) { return false }\n return true\n };\n\n // :: () → Transaction\n // Indicate that the editor should scroll the selection into view\n // when updated to the state produced by this transaction.\n Transaction.prototype.scrollIntoView = function scrollIntoView () {\n this.updated |= UPDATED_SCROLL;\n return this\n };\n\n prototypeAccessors.scrolledIntoView.get = function () {\n return (this.updated & UPDATED_SCROLL) > 0\n };\n\n Object.defineProperties( Transaction.prototype, prototypeAccessors );\n\n return Transaction;\n}(Transform));\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self)\n}\n\nvar FieldDesc = function FieldDesc(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n};\n\nvar baseFields = [\n new FieldDesc(\"doc\", {\n init: function init(config) { return config.doc || config.schema.topNodeType.createAndFill() },\n apply: function apply(tr) { return tr.doc }\n }),\n\n new FieldDesc(\"selection\", {\n init: function init(config, instance) { return config.selection || Selection.atStart(instance.doc) },\n apply: function apply(tr) { return tr.selection }\n }),\n\n new FieldDesc(\"storedMarks\", {\n init: function init(config) { return config.storedMarks || null },\n apply: function apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null }\n }),\n\n new FieldDesc(\"scrollToSelection\", {\n init: function init() { return 0 },\n apply: function apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev }\n })\n];\n\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nvar Configuration = function Configuration(schema, plugins) {\n var this$1 = this;\n\n this.schema = schema;\n this.fields = baseFields.concat();\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n if (plugins) { plugins.forEach(function (plugin) {\n if (this$1.pluginsByKey[plugin.key])\n { throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\") }\n this$1.plugins.push(plugin);\n this$1.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n { this$1.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin)); }\n }); }\n};\n\n// ::- The state of a ProseMirror editor is represented by an object\n// of this type. A state is a persistent data structure—it isn't\n// updated, but rather a new state value is computed from an old one\n// using the [`apply`](#state.EditorState.apply) method.\n//\n// A state holds a number of built-in fields, and plugins can\n// [define](#state.PluginSpec.state) additional fields.\nvar EditorState = function EditorState(config) {\n this.config = config;\n};\n\nvar prototypeAccessors$1 = { schema: { configurable: true },plugins: { configurable: true },tr: { configurable: true } };\n\n// doc:: Node\n// The current document.\n\n// selection:: Selection\n// The selection.\n\n// storedMarks:: ?[Mark]\n// A set of marks to apply to the next input. Will be null when\n// no explicit marks have been set.\n\n// :: Schema\n// The schema of the state's document.\nprototypeAccessors$1.schema.get = function () {\n return this.config.schema\n};\n\n// :: [Plugin]\n// The plugins that are active in this state.\nprototypeAccessors$1.plugins.get = function () {\n return this.config.plugins\n};\n\n// :: (Transaction) → EditorState\n// Apply the given transaction to produce a new state.\nEditorState.prototype.apply = function apply (tr) {\n return this.applyTransaction(tr).state\n};\n\n// : (Transaction) → bool\nEditorState.prototype.filterTransaction = function filterTransaction (tr, ignore) {\n if ( ignore === void 0 ) ignore = -1;\n\n for (var i = 0; i < this.config.plugins.length; i++) { if (i != ignore) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n { return false }\n } }\n return true\n};\n\n// :: (Transaction) → {state: EditorState, transactions: [Transaction]}\n// Verbose variant of [`apply`](#state.EditorState.apply) that\n// returns the precise transactions that were applied (which might\n// be influenced by the [transaction\n// hooks](#state.PluginSpec.filterTransaction) of\n// plugins) along with the new state.\nEditorState.prototype.applyTransaction = function applyTransaction (rootTr) {\n if (!this.filterTransaction(rootTr)) { return {state: this, transactions: []} }\n\n var trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n var haveNew = false;\n for (var i = 0; i < this.config.plugins.length; i++) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n var n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n var tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (var j = 0; j < this.config.plugins.length; j++)\n { seen.push(j < i ? {state: newState, n: trs.length} : {state: this, n: 0}); }\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen) { seen[i] = {state: newState, n: trs.length}; }\n }\n }\n if (!haveNew) { return {state: newState, transactions: trs} }\n }\n};\n\n// : (Transaction) → EditorState\nEditorState.prototype.applyInner = function applyInner (tr) {\n if (!tr.before.eq(this.doc)) { throw new RangeError(\"Applying a mismatched transaction\") }\n var newInstance = new EditorState(this.config), fields = this.config.fields;\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n for (var i$1 = 0; i$1 < applyListeners.length; i$1++) { applyListeners[i$1](this, tr, newInstance); }\n return newInstance\n};\n\n// :: Transaction\n// Start a [transaction](#state.Transaction) from this state.\nprototypeAccessors$1.tr.get = function () { return new Transaction(this) };\n\n// :: (Object) → EditorState\n// Create a new state.\n//\n// config::- Configuration options. Must contain `schema` or `doc` (or both).\n//\n// schema:: ?Schema\n// The schema to use (only relevant if no `doc` is specified).\n//\n// doc:: ?Node\n// The starting document.\n//\n// selection:: ?Selection\n// A valid selection in the document.\n//\n// storedMarks:: ?[Mark]\n// The initial set of [stored marks](#state.EditorState.storedMarks).\n//\n// plugins:: ?[Plugin]\n// The plugins that should be active in this state.\nEditorState.create = function create (config) {\n var $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n var instance = new EditorState($config);\n for (var i = 0; i < $config.fields.length; i++)\n { instance[$config.fields[i].name] = $config.fields[i].init(config, instance); }\n return instance\n};\n\n// :: (Object) → EditorState\n// Create a new state based on this one, but with an adjusted set of\n// active plugins. State fields that exist in both sets of plugins\n// are kept unchanged. Those that no longer exist are dropped, and\n// those that are new are initialized using their\n// [`init`](#state.StateField.init) method, passing in the new\n// configuration object..\n//\n// config::- configuration options\n//\n// plugins:: [Plugin]\n// New set of active plugins.\nEditorState.prototype.reconfigure = function reconfigure (config) {\n var $config = new Configuration(this.schema, config.plugins);\n var fields = $config.fields, instance = new EditorState($config);\n for (var i = 0; i < fields.length; i++) {\n var name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance\n};\n\n// :: (?union, string, number>) → Object\n// Serialize this state to JSON. If you want to serialize the state\n// of plugins, pass an object mapping property names to use in the\n// resulting JSON object to plugin objects. The argument may also be\n// a string or number, in which case it is ignored, to support the\n// way `JSON.stringify` calls `toString` methods.\nEditorState.prototype.toJSON = function toJSON (pluginFields) {\n var result = {doc: this.doc.toJSON(), selection: this.selection.toJSON()};\n if (this.storedMarks) { result.storedMarks = this.storedMarks.map(function (m) { return m.toJSON(); }); }\n if (pluginFields && typeof pluginFields == 'object') { for (var prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n { throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\") }\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON) { result[prop] = state.toJSON.call(plugin, this[plugin.key]); }\n } }\n return result\n};\n\n// :: (Object, Object, ?Object) → EditorState\n// Deserialize a JSON representation of a state. `config` should\n// have at least a `schema` field, and should contain array of\n// plugins to initialize the state with. `pluginFields` can be used\n// to deserialize the state of plugins, by associating plugin\n// instances with the property names they use in the JSON object.\n//\n// config::- configuration options\n//\n// schema:: Schema\n// The schema to use.\n//\n// plugins:: ?[Plugin]\n// The set of active plugins.\nEditorState.fromJSON = function fromJSON (config, json, pluginFields) {\n if (!json) { throw new RangeError(\"Invalid input for EditorState.fromJSON\") }\n if (!config.schema) { throw new RangeError(\"Required config field 'schema' missing\") }\n var $config = new Configuration(config.schema, config.plugins);\n var instance = new EditorState($config);\n $config.fields.forEach(function (field) {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n } else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n } else if (field.name == \"storedMarks\") {\n if (json.storedMarks) { instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON); }\n } else {\n if (pluginFields) { for (var prop in pluginFields) {\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n // This field belongs to a plugin mapped to a JSON field, read it from there.\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return\n }\n } }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance\n};\n\n// Kludge to allow the view to track mappings between different\n// instances of a state.\n//\n// FIXME this is no longer needed as of prosemirror-view 1.9.0,\n// though due to backwards-compat we should probably keep it around\n// for a while (if only as a no-op)\nEditorState.addApplyListener = function addApplyListener (f) {\n applyListeners.push(f);\n};\nEditorState.removeApplyListener = function removeApplyListener (f) {\n var found = applyListeners.indexOf(f);\n if (found > -1) { applyListeners.splice(found, 1); }\n};\n\nObject.defineProperties( EditorState.prototype, prototypeAccessors$1 );\n\nvar applyListeners = [];\n\n// PluginSpec:: interface\n//\n// This is the type passed to the [`Plugin`](#state.Plugin)\n// constructor. It provides a definition for a plugin.\n//\n// props:: ?EditorProps\n// The [view props](#view.EditorProps) added by this plugin. Props\n// that are functions will be bound to have the plugin instance as\n// their `this` binding.\n//\n// state:: ?StateField\n// Allows a plugin to define a [state field](#state.StateField), an\n// extra slot in the state object in which it can keep its own data.\n//\n// key:: ?PluginKey\n// Can be used to make this a keyed plugin. You can have only one\n// plugin with a given key in a given state, but it is possible to\n// access the plugin's configuration and state through the key,\n// without having access to the plugin instance object.\n//\n// view:: ?(EditorView) → Object\n// When the plugin needs to interact with the editor view, or\n// set something up in the DOM, use this field. The function\n// will be called when the plugin's state is associated with an\n// editor view.\n//\n// return::-\n// Should return an object with the following optional\n// properties:\n//\n// update:: ?(view: EditorView, prevState: EditorState)\n// Called whenever the view's state is updated.\n//\n// destroy:: ?()\n// Called when the view is destroyed or receives a state\n// with different plugins.\n//\n// filterTransaction:: ?(Transaction, EditorState) → bool\n// When present, this will be called before a transaction is\n// applied by the state, allowing the plugin to cancel it (by\n// returning false).\n//\n// appendTransaction:: ?(transactions: [Transaction], oldState: EditorState, newState: EditorState) → ?Transaction\n// Allows the plugin to append another transaction to be applied\n// after the given array of transactions. When another plugin\n// appends a transaction after this was called, it is called again\n// with the new state and new transactions—but only the new\n// transactions, i.e. it won't be passed transactions that it\n// already saw.\n\nfunction bindProps(obj, self, target) {\n for (var prop in obj) {\n var val = obj[prop];\n if (val instanceof Function) { val = val.bind(self); }\n else if (prop == \"handleDOMEvents\") { val = bindProps(val, self, {}); }\n target[prop] = val;\n }\n return target\n}\n\n// ::- Plugins bundle functionality that can be added to an editor.\n// They are part of the [editor state](#state.EditorState) and\n// may influence that state and the view that contains it.\nvar Plugin = function Plugin(spec) {\n // :: EditorProps\n // The [props](#view.EditorProps) exported by this plugin.\n this.props = {};\n if (spec.props) { bindProps(spec.props, this, this.props); }\n // :: Object\n // The plugin's [spec object](#state.PluginSpec).\n this.spec = spec;\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n};\n\n// :: (EditorState) → any\n// Extract the plugin's state field from an editor state.\nPlugin.prototype.getState = function getState (state) { return state[this.key] };\n\n// StateField:: interface\n// A plugin spec may provide a state field (under its\n// [`state`](#state.PluginSpec.state) property) of this type, which\n// describes the state it wants to keep. Functions provided here are\n// always called with the plugin instance as their `this` binding.\n//\n// init:: (config: Object, instance: EditorState) → T\n// Initialize the value of the field. `config` will be the object\n// passed to [`EditorState.create`](#state.EditorState^create). Note\n// that `instance` is a half-initialized state instance, and will\n// not have values for plugin fields initialized after this one.\n//\n// apply:: (tr: Transaction, value: T, oldState: EditorState, newState: EditorState) → T\n// Apply the given transaction to this state field, producing a new\n// field value. Note that the `newState` argument is again a partially\n// constructed state does not yet contain the state from plugins\n// coming after this one.\n//\n// toJSON:: ?(value: T) → *\n// Convert this field to JSON. Optional, can be left off to disable\n// JSON serialization for the field.\n//\n// fromJSON:: ?(config: Object, value: *, state: EditorState) → T\n// Deserialize the JSON representation of this field. Note that the\n// `state` argument is again a half-initialized state.\n\nvar keys = Object.create(null);\n\nfunction createKey(name) {\n if (name in keys) { return name + \"$\" + ++keys[name] }\n keys[name] = 0;\n return name + \"$\"\n}\n\n// ::- A key is used to [tag](#state.PluginSpec.key)\n// plugins in a way that makes it possible to find them, given an\n// editor state. Assigning a key does mean only one plugin of that\n// type can be active in a state.\nvar PluginKey = function PluginKey(name) {\nif ( name === void 0 ) name = \"key\";\n this.key = createKey(name); };\n\n// :: (EditorState) → ?Plugin\n// Get the active plugin with this key, if any, from an editor\n// state.\nPluginKey.prototype.get = function get (state) { return state.config.pluginsByKey[this.key] };\n\n// :: (EditorState) → ?any\n// Get the plugin's state from an editor state.\nPluginKey.prototype.getState = function getState (state) { return state[this.key] };\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n//# sourceMappingURL=index.es.js.map\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$
') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","/*!\n * vuex v4.0.2\n * (c) 2021 Evan You\n * @license MIT\n */\nimport { inject, reactive, watch } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n // TODO: use `computed` when it's possible. at the moment we can't due to\n // https://github.com/vuejs/vuex/pull/1883\n get: function () { return computedObj[key](); },\n enumerable: true // for local getters\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && true) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : true ;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if (!isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if (!isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if (!isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (!(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if (!isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (!module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.0.2',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.20.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","import { TextSelection, NodeSelection, Selection, AllSelection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, DOMParser, Slice } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nvar result = {};\n\nif (typeof navigator != \"undefined\" && typeof document != \"undefined\") {\n var ie_edge = /Edge\\/(\\d+)/.exec(navigator.userAgent);\n var ie_upto10 = /MSIE \\d/.test(navigator.userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n\n var ie = result.ie = !!(ie_upto10 || ie_11up || ie_edge);\n result.ie_version = ie_upto10 ? document.documentMode || 6 : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : null;\n result.gecko = !ie && /gecko\\/(\\d+)/i.test(navigator.userAgent);\n result.gecko_version = result.gecko && +(/Firefox\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n var chrome = !ie && /Chrome\\/(\\d+)/.exec(navigator.userAgent);\n result.chrome = !!chrome;\n result.chrome_version = chrome && +chrome[1];\n // Is true for both iOS and iPadOS for convenience\n result.safari = !ie && /Apple Computer/.test(navigator.vendor);\n result.ios = result.safari && (/Mobile\\/\\w+/.test(navigator.userAgent) || navigator.maxTouchPoints > 2);\n result.mac = result.ios || /Mac/.test(navigator.platform);\n result.android = /Android \\d/.test(navigator.userAgent);\n result.webkit = \"webkitFontSmoothing\" in document.documentElement.style;\n result.webkit_version = result.webkit && +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n}\n\nvar domIndex = function(node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node) { return index }\n }\n};\n\nvar parentNode = function(node) {\n var parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent\n};\n\nvar reusedRange = null;\n\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nvar textRange = function(node, from, to) {\n var range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range\n};\n\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nvar isEquivalentPosition = function(node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1))\n};\n\nvar atomElements = /^(img|br|input|textarea|hr)$/i;\n\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff) { return true }\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n var parent = node.parentNode;\n if (parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) || node.contentEditable == \"false\")\n { return false }\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n } else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\") { return false }\n off = dir < 0 ? nodeSize(node) : 0;\n } else {\n return false\n }\n }\n}\n\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length\n}\n\nfunction isOnEdge(node, offset, parent) {\n for (var atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent) { return true }\n var index = domIndex(node);\n node = node.parentNode;\n if (!node) { return false }\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\n\nfunction hasBlockDesc(dom) {\n var desc;\n for (var cur = dom; cur; cur = cur.parentNode) { if (desc = cur.pmViewDesc) { break } }\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom)\n}\n\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nvar selectionCollapsed = function(domSel) {\n var collapsed = domSel.isCollapsed;\n if (collapsed && result.chrome && domSel.rangeCount && !domSel.getRangeAt(0).collapsed)\n { collapsed = false; }\n return collapsed\n};\n\nfunction keyEvent(keyCode, key) {\n var event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event\n}\n\nfunction windowRect(doc) {\n return {left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight}\n}\n\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side]\n}\n\nfunction clientRect(node) {\n var rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n var scaleX = (rect.width / node.offsetWidth) || 1;\n var scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return {left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY}\n}\n\nfunction scrollRectIntoView(view, rect, startDOM) {\n var scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n var doc = view.dom.ownerDocument;\n for (var parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent) { break }\n if (parent.nodeType != 1) { continue }\n var atTop = parent == doc.body || parent.nodeType != 1;\n var bounding = atTop ? windowRect(doc) : clientRect(parent);\n var moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n { moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\")); }\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n { moveY = rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\"); }\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n { moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\")); }\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n { moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\"); }\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n } else {\n var startX = parent.scrollLeft, startY = parent.scrollTop;\n if (moveY) { parent.scrollTop += moveY; }\n if (moveX) { parent.scrollLeft += moveX; }\n var dX = parent.scrollLeft - startX, dY = parent.scrollTop - startY;\n rect = {left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY};\n }\n }\n if (atTop) { break }\n }\n}\n\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n var rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n var refDOM, refTop;\n for (var x = (rect.left + rect.right) / 2, y = startY + 1;\n y < Math.min(innerHeight, rect.bottom); y += 5) {\n var dom = view.root.elementFromPoint(x, y);\n if (dom == view.dom || !view.dom.contains(dom)) { continue }\n var localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break\n }\n }\n return {refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom)}\n}\n\nfunction scrollStack(dom) {\n var stack = [], doc = dom.ownerDocument;\n for (; dom; dom = parentNode(dom)) {\n stack.push({dom: dom, top: dom.scrollTop, left: dom.scrollLeft});\n if (dom == doc) { break }\n }\n return stack\n}\n\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos(ref) {\n var refDOM = ref.refDOM;\n var refTop = ref.refTop;\n var stack = ref.stack;\n\n var newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\n\nfunction restoreScrollStack(stack, dTop) {\n for (var i = 0; i < stack.length; i++) {\n var ref = stack[i];\n var dom = ref.dom;\n var top = ref.top;\n var left = ref.left;\n if (dom.scrollTop != top + dTop) { dom.scrollTop = top + dTop; }\n if (dom.scrollLeft != left) { dom.scrollLeft = left; }\n }\n}\n\nvar preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive) { return dom.setActive() } // in IE\n if (preventScrollSupported) { return dom.focus(preventScrollSupported) }\n\n var stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = {preventScroll: true};\n return true\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\n\nfunction findOffsetInNode(node, coords) {\n var closest, dxClosest = 2e8, coordsClosest, offset = 0;\n var rowBot = coords.top, rowTop = coords.top;\n for (var child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n var rects = (void 0);\n if (child.nodeType == 1) { rects = child.getClientRects(); }\n else if (child.nodeType == 3) { rects = textRange(child).getClientRects(); }\n else { continue }\n\n for (var i = 0; i < rects.length; i++) {\n var rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n var dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {left: rect.right < coords.left ? rect.right : rect.left, top: coords.top} : coords;\n if (child.nodeType == 1 && dx)\n { offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0); }\n continue\n }\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n { offset = childIndex + 1; }\n }\n }\n if (closest && closest.nodeType == 3) { return findOffsetInText(closest, coordsClosest) }\n if (!closest || (dxClosest && closest.nodeType == 1)) { return {node: node, offset: offset} }\n return findOffsetInNode(closest, coordsClosest)\n}\n\nfunction findOffsetInText(node, coords) {\n var len = node.nodeValue.length;\n var range = document.createRange();\n for (var i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n var rect = singleRect(range, 1);\n if (rect.top == rect.bottom) { continue }\n if (inRect(coords, rect))\n { return {node: node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0)} }\n }\n return {node: node, offset: 0}\n}\n\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1&&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1\n}\n\nfunction targetKludge(dom, coords) {\n var parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n { return parent }\n return dom\n}\n\nfunction posFromElement(view, elt, coords) {\n var ref = findOffsetInNode(elt, coords);\n var node = ref.node;\n var offset = ref.offset;\n var bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n var rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias)\n}\n\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n var outside = -1;\n for (var cur = node;;) {\n if (cur == view.dom) { break }\n var desc = view.docView.nearestDesc(cur, true);\n if (!desc) { return null }\n if (desc.node.isBlock && desc.parent) {\n var rect = desc.dom.getBoundingClientRect();\n if (rect.left > coords.left || rect.top > coords.top) { outside = desc.posBefore; }\n else if (rect.right < coords.left || rect.bottom < coords.top) { outside = desc.posAfter; }\n else { break }\n }\n cur = desc.dom.parentNode;\n }\n return outside > -1 ? outside : view.docView.posFromDOM(node, offset)\n}\n\nfunction elementFromPoint(element, coords, box) {\n var len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (var startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n var child = element.childNodes[i];\n if (child.nodeType == 1) {\n var rects = child.getClientRects();\n for (var j = 0; j < rects.length; j++) {\n var rect = rects[j];\n if (inRect(coords, rect)) { return elementFromPoint(child, coords, rect) }\n }\n }\n if ((i = (i + 1) % len) == startI) { break }\n }\n }\n return element\n}\n\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n var assign, assign$1;\n\n var doc = view.dom.ownerDocument, node, offset;\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n var pos$1 = doc.caretPositionFromPoint(coords.left, coords.top);\n if (pos$1) { ((assign = pos$1, node = assign.offsetNode, offset = assign.offset)); }\n } catch (_) {}\n }\n if (!node && doc.caretRangeFromPoint) {\n var range = doc.caretRangeFromPoint(coords.left, coords.top);\n if (range) { ((assign$1 = range, node = assign$1.startContainer, offset = assign$1.startOffset)); }\n }\n\n var elt = (view.root.elementFromPoint ? view.root : doc).elementFromPoint(coords.left, coords.top + 1), pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n var box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box)) { return null }\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt) { return null }\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (result.safari) {\n for (var p = elt; node && p; p = parentNode(p))\n { if (p.draggable) { node = offset = null; } }\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (result.gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n var next = node.childNodes[offset], box$1;\n if (next.nodeName == \"IMG\" && (box$1 = next.getBoundingClientRect()).right <= coords.left &&\n box$1.bottom > coords.top)\n { offset++; }\n }\n }\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n { pos = view.state.doc.content.size; }\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n { pos = posFromCaret(view, node, offset, coords); }\n }\n if (pos == null) { pos = posFromElement(view, elt, coords); }\n\n var desc = view.docView.nearestDesc(elt, true);\n return {pos: pos, inside: desc ? desc.posAtStart - desc.border : -1}\n}\n\nfunction singleRect(object, bias) {\n var rects = object.getClientRects();\n return !rects.length ? object.getBoundingClientRect() : rects[bias < 0 ? 0 : rects.length - 1]\n}\n\nvar BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n\n// : (EditorView, number, number) → {left: number, top: number, right: number, bottom: number}\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n var ref = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n var node = ref.node;\n var offset = ref.offset;\n\n var supportEmptyRange = result.webkit || result.gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n var rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (result.gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n var rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n var rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n { return flattenV(rectAfter, rectAfter.left < rectBefore.left) }\n }\n }\n return rect\n } else {\n var from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) { to++; takeSide = -1; }\n else if (side >= 0 && offset == node.nodeValue.length) { from--; takeSide = 1; }\n else if (side < 0) { from--; }\n else { to ++; }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0)\n }\n }\n\n // Return a horizontal line in block context\n if (!view.state.doc.resolve(pos).parent.inlineContent) {\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before = node.childNodes[offset - 1];\n if (before.nodeType == 1) { return flattenH(before.getBoundingClientRect(), false) }\n }\n if (offset < nodeSize(node)) {\n var after = node.childNodes[offset];\n if (after.nodeType == 1) { return flattenH(after.getBoundingClientRect(), true) }\n }\n return flattenH(node.getBoundingClientRect(), side >= 0)\n }\n\n // Inline, not in text node (this is not Bidi-safe)\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before$1 = node.childNodes[offset - 1];\n var target = before$1.nodeType == 3 ? textRange(before$1, nodeSize(before$1) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before$1.nodeType == 1 && (before$1.nodeName != \"BR\" || !before$1.nextSibling) ? before$1 : null;\n if (target) { return flattenV(singleRect(target, 1), false) }\n }\n if (offset < nodeSize(node)) {\n var after$1 = node.childNodes[offset];\n while (after$1.pmViewDesc && after$1.pmViewDesc.ignoreForCoords) { after$1 = after$1.nextSibling; }\n var target$1 = !after$1 ? null : after$1.nodeType == 3 ? textRange(after$1, 0, (supportEmptyRange ? 0 : 1))\n : after$1.nodeType == 1 ? after$1 : null;\n if (target$1) { return flattenV(singleRect(target$1, -1), true) }\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0)\n}\n\nfunction flattenV(rect, left) {\n if (rect.width == 0) { return rect }\n var x = left ? rect.left : rect.right;\n return {top: rect.top, bottom: rect.bottom, left: x, right: x}\n}\n\nfunction flattenH(rect, top) {\n if (rect.height == 0) { return rect }\n var y = top ? rect.top : rect.bottom;\n return {top: y, bottom: y, left: rect.left, right: rect.right}\n}\n\nfunction withFlushedState(view, state, f) {\n var viewState = view.state, active = view.root.activeElement;\n if (viewState != state) { view.updateState(state); }\n if (active != view.dom) { view.focus(); }\n try {\n return f()\n } finally {\n if (viewState != state) { view.updateState(viewState); }\n if (active != view.dom && active) { active.focus(); }\n }\n}\n\n// : (EditorView, number, number)\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n var sel = state.selection;\n var $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, function () {\n var ref = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n var dom = ref.node;\n for (;;) {\n var nearest = view.docView.nearestDesc(dom, true);\n if (!nearest) { break }\n if (nearest.node.isBlock) { dom = nearest.dom; break }\n dom = nearest.dom.parentNode;\n }\n var coords = coordsAtPos(view, $pos.pos, 1);\n for (var child = dom.firstChild; child; child = child.nextSibling) {\n var boxes = (void 0);\n if (child.nodeType == 1) { boxes = child.getClientRects(); }\n else if (child.nodeType == 3) { boxes = textRange(child, 0, child.nodeValue.length).getClientRects(); }\n else { continue }\n for (var i = 0; i < boxes.length; i++) {\n var box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n { return false }\n }\n }\n return true\n })\n}\n\nvar maybeRTL = /[\\u0590-\\u08ac]/;\n\nfunction endOfTextblockHorizontal(view, state, dir) {\n var ref = state.selection;\n var $head = ref.$head;\n if (!$head.parent.isTextblock) { return false }\n var offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n var sel = view.root.getSelection();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n { return dir == \"left\" || dir == \"backward\" ? atStart : atEnd }\n\n return withFlushedState(view, state, function () {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n var oldRange = sel.getRangeAt(0), oldNode = sel.focusNode, oldOff = sel.focusOffset;\n var oldBidiLevel = sel.caretBidiLevel; // Only for Firefox\n sel.modify(\"move\", dir, \"character\");\n var parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n var result = !parentDOM.contains(sel.focusNode.nodeType == 1 ? sel.focusNode : sel.focusNode.parentNode) ||\n (oldNode == sel.focusNode && oldOff == sel.focusOffset);\n // Restore the previous selection\n sel.removeAllRanges();\n sel.addRange(oldRange);\n if (oldBidiLevel != null) { sel.caretBidiLevel = oldBidiLevel; }\n return result\n })\n}\n\nvar cachedState = null, cachedDir = null, cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir) { return cachedResult }\n cachedState = state; cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir)\n}\n\n// NodeView:: interface\n//\n// By default, document nodes are rendered using the result of the\n// [`toDOM`](#model.NodeSpec.toDOM) method of their spec, and managed\n// entirely by the editor. For some use cases, such as embedded\n// node-specific editing interfaces, you want more control over\n// the behavior of a node's in-editor representation, and need to\n// [define](#view.EditorProps.nodeViews) a custom node view.\n//\n// Mark views only support `dom` and `contentDOM`, and don't support\n// any of the node view methods.\n//\n// Objects returned as node views must conform to this interface.\n//\n// dom:: ?dom.Node\n// The outer DOM node that represents the document node. When not\n// given, the default strategy is used to create a DOM node.\n//\n// contentDOM:: ?dom.Node\n// The DOM node that should hold the node's content. Only meaningful\n// if the node view also defines a `dom` property and if its node\n// type is not a leaf node type. When this is present, ProseMirror\n// will take care of rendering the node's children into it. When it\n// is not present, the node view itself is responsible for rendering\n// (or deciding not to render) its child nodes.\n//\n// update:: ?(node: Node, decorations: [Decoration], innerDecorations: DecorationSource) → bool\n// When given, this will be called when the view is updating itself.\n// It will be given a node (possibly of a different type), an array\n// of active decorations around the node (which are automatically\n// drawn, and the node view may ignore if it isn't interested in\n// them), and a [decoration source](#view.DecorationSource) that\n// represents any decorations that apply to the content of the node\n// (which again may be ignored). It should return true if it was\n// able to update to that node, and false otherwise. If the node\n// view has a `contentDOM` property (or no `dom` property), updating\n// its child nodes will be handled by ProseMirror.\n//\n// selectNode:: ?()\n// Can be used to override the way the node's selected status (as a\n// node selection) is displayed.\n//\n// deselectNode:: ?()\n// When defining a `selectNode` method, you should also provide a\n// `deselectNode` method to remove the effect again.\n//\n// setSelection:: ?(anchor: number, head: number, root: dom.Document)\n// This will be called to handle setting the selection inside the\n// node. The `anchor` and `head` positions are relative to the start\n// of the node. By default, a DOM selection will be created between\n// the DOM positions corresponding to those positions, but if you\n// override it you can do something else.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to prevent the editor view from trying to handle some\n// or all DOM events that bubble up from the node view. Events for\n// which this returns true are not handled by the editor.\n//\n// ignoreMutation:: ?(dom.MutationRecord) → bool\n// Called when a DOM\n// [mutation](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)\n// or a selection change happens within the view. When the change is\n// a selection change, the record will have a `type` property of\n// `\"selection\"` (which doesn't occur for native mutation records).\n// Return false if the editor should re-read the selection or\n// re-parse the range around the mutation, true if it can safely be\n// ignored.\n//\n// destroy:: ?()\n// Called when the node view is removed from the editor or the whole\n// editor is destroyed. (Not available for marks.)\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\n\nvar NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nvar ViewDesc = function ViewDesc(parent, children, dom, contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n};\n\nvar prototypeAccessors = { size: { configurable: true },border: { configurable: true },posBefore: { configurable: true },posAtStart: { configurable: true },posAfter: { configurable: true },posAtEnd: { configurable: true },contentLost: { configurable: true },domAtom: { configurable: true },ignoreForCoords: { configurable: true } };\n\n// Used to check whether a given description corresponds to a\n// widget/mark/node.\nViewDesc.prototype.matchesWidget = function matchesWidget () { return false };\nViewDesc.prototype.matchesMark = function matchesMark () { return false };\nViewDesc.prototype.matchesNode = function matchesNode () { return false };\nViewDesc.prototype.matchesHack = function matchesHack (_nodeName) { return false };\n\n// : () → ?ParseRule\n// When parsing in-editor content (in domchange.js), we allow\n// descriptions to determine the parse rules that should be used to\n// parse them.\nViewDesc.prototype.parseRule = function parseRule () { return null };\n\n// : (dom.Event) → bool\n// Used by the editor's event handler to ignore events that come\n// from certain descs.\nViewDesc.prototype.stopEvent = function stopEvent () { return false };\n\n// The size of the content represented by this desc.\nprototypeAccessors.size.get = function () {\n var size = 0;\n for (var i = 0; i < this.children.length; i++) { size += this.children[i].size; }\n return size\n};\n\n// For block nodes, this represents the space taken up by their\n// start/end tokens.\nprototypeAccessors.border.get = function () { return 0 };\n\nViewDesc.prototype.destroy = function destroy () {\n this.parent = null;\n if (this.dom.pmViewDesc == this) { this.dom.pmViewDesc = null; }\n for (var i = 0; i < this.children.length; i++)\n { this.children[i].destroy(); }\n};\n\nViewDesc.prototype.posBeforeChild = function posBeforeChild (child) {\n for (var i = 0, pos = this.posAtStart; i < this.children.length; i++) {\n var cur = this.children[i];\n if (cur == child) { return pos }\n pos += cur.size;\n }\n};\n\nprototypeAccessors.posBefore.get = function () {\n return this.parent.posBeforeChild(this)\n};\n\nprototypeAccessors.posAtStart.get = function () {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0\n};\n\nprototypeAccessors.posAfter.get = function () {\n return this.posBefore + this.size\n};\n\nprototypeAccessors.posAtEnd.get = function () {\n return this.posAtStart + this.size - 2 * this.border\n};\n\n// : (dom.Node, number, ?number) → number\nViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n var domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n } else {\n while (dom.parentNode != this.contentDOM) { dom = dom.parentNode; }\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this)) { domBefore = domBefore.previousSibling; }\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart\n } else {\n var domAfter, desc$1;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n } else {\n while (dom.parentNode != this.contentDOM) { dom = dom.parentNode; }\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc$1 = domAfter.pmViewDesc) && desc$1.parent == this)) { domAfter = domAfter.nextSibling; }\n return domAfter ? this.posBeforeChild(desc$1) : this.posAtEnd\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n var atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n } else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n } else if (this.dom.firstChild) {\n if (offset == 0) { for (var search = dom;; search = search.parentNode) {\n if (search == this.dom) { atEnd = false; break }\n if (search.parentNode.firstChild != search) { break }\n } }\n if (atEnd == null && offset == dom.childNodes.length) { for (var search$1 = dom;; search$1 = search$1.parentNode) {\n if (search$1 == this.dom) { atEnd = true; break }\n if (search$1.parentNode.lastChild != search$1) { break }\n } }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart\n};\n\n// Scan up the dom finding the first desc that is a descendant of\n// this one.\nViewDesc.prototype.nearestDesc = function nearestDesc (dom, onlyNodes) {\n for (var first = true, cur = dom; cur; cur = cur.parentNode) {\n var desc = this.getDesc(cur);\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && desc.nodeDOM &&\n !(desc.nodeDOM.nodeType == 1 ? desc.nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : desc.nodeDOM == dom))\n { first = false; }\n else\n { return desc }\n }\n }\n};\n\nViewDesc.prototype.getDesc = function getDesc (dom) {\n var desc = dom.pmViewDesc;\n for (var cur = desc; cur; cur = cur.parent) { if (cur == this) { return desc } }\n};\n\nViewDesc.prototype.posFromDOM = function posFromDOM (dom, offset, bias) {\n for (var scan = dom; scan; scan = scan.parentNode) {\n var desc = this.getDesc(scan);\n if (desc) { return desc.localPosFromDOM(dom, offset, bias) }\n }\n return -1\n};\n\n// : (number) → ?NodeViewDesc\n// Find the desc for the node after the given pos, if any. (When a\n// parent node overrode rendering, there might not be one.)\nViewDesc.prototype.descAt = function descAt (pos) {\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length) { child = child.children[0]; }\n return child\n }\n if (pos < end) { return child.descAt(pos - offset - child.border) }\n offset = end;\n }\n};\n\n// : (number, number) → {node: dom.Node, offset: number}\nViewDesc.prototype.domFromPos = function domFromPos (pos, side) {\n if (!this.contentDOM) { return {node: this.dom, offset: 0} }\n // First find the position in the child array\n var i = 0, offset = 0;\n for (var curPos = 0; i < this.children.length; i++) {\n var child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) { offset = pos - curPos; break }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset) { return this.children[i].domFromPos(offset - this.children[i].border, side) }\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (var prev = (void 0); i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.widget.type.side >= 0; i--) {}\n // Scan towards the first useable node\n if (side <= 0) {\n var prev$1, enter = true;\n for (;; i--, enter = false) {\n prev$1 = i ? this.children[i - 1] : null;\n if (!prev$1 || prev$1.dom.parentNode == this.contentDOM) { break }\n }\n if (prev$1 && side && enter && !prev$1.border && !prev$1.domAtom) { return prev$1.domFromPos(prev$1.size, side) }\n return {node: this.contentDOM, offset: prev$1 ? domIndex(prev$1.dom) + 1 : 0}\n } else {\n var next, enter$1 = true;\n for (;; i++, enter$1 = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM) { break }\n }\n if (next && enter$1 && !next.border && !next.domAtom) { return next.domFromPos(0, side) }\n return {node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length}\n }\n};\n\n// Used to find a DOM range in a single parent for a given changed\n// range.\nViewDesc.prototype.parseRange = function parseRange (from, to, base) {\n if ( base === void 0 ) base = 0;\n\n if (this.children.length == 0)\n { return {node: this.contentDOM, from: from, to: to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length} }\n\n var fromOffset = -1, toOffset = -1;\n for (var offset = base, i = 0;; i++) {\n var child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n var childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n { return child.parseRange(from, to, childBase) }\n\n from = offset;\n for (var j = i; j > 0; j--) {\n var prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break\n }\n from -= prev.size;\n }\n if (fromOffset == -1) { fromOffset = 0; }\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (var j$1 = i + 1; j$1 < this.children.length; j$1++) {\n var next = this.children[j$1];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break\n }\n to += next.size;\n }\n if (toOffset == -1) { toOffset = this.contentDOM.childNodes.length; }\n break\n }\n offset = end;\n }\n return {node: this.contentDOM, from: from, to: to, fromOffset: fromOffset, toOffset: toOffset}\n};\n\nViewDesc.prototype.emptyChildAt = function emptyChildAt (side) {\n if (this.border || !this.contentDOM || !this.children.length) { return false }\n var child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side)\n};\n\n// : (number) → dom.Node\nViewDesc.prototype.domAfterPos = function domAfterPos (pos) {\n var ref = this.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n if (node.nodeType != 1 || offset == node.childNodes.length)\n { throw new RangeError(\"No node after pos \" + pos) }\n return node.childNodes[offset]\n};\n\n// : (number, number, dom.Document)\n// View descs are responsible for setting any selection that falls\n// entirely inside of them, so that custom implementations can do\n// custom things with the selection. Note that this falls apart when\n// a selection starts in such a node and ends in another, in which\n// case we just use whatever domFromPos produces as a best effort.\nViewDesc.prototype.setSelection = function setSelection (anchor, head, root, force) {\n // If the selection falls entirely in a child, give it to that child\n var from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n { return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force) }\n offset = end;\n }\n\n var anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n var headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n var domSel = root.getSelection();\n\n var brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((result.gecko || result.safari) && anchor == head) {\n var node = anchorDOM.node;\n var offset$1 = anchorDOM.offset;\n if (node.nodeType == 3) {\n brKludge = offset$1 && node.nodeValue[offset$1 - 1] == \"\\n\";\n // Issue #1128\n if (brKludge && offset$1 == node.nodeValue.length) {\n for (var scan = node, after = (void 0); scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n { anchorDOM = headDOM = {node: after.parentNode, offset: domIndex(after) + 1}; }\n break\n }\n var desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock) { break }\n }\n }\n } else {\n var prev = node.childNodes[offset$1 - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (result.gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {\n var after$1 = domSel.focusNode.childNodes[domSel.focusOffset];\n if (after$1 && after$1.contentEditable == \"false\") { force = true; }\n }\n\n if (!(force || brKludge && result.safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))\n { return }\n\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n var domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head) { domSel.extend(headDOM.node, headDOM.offset); }\n domSelExtended = true;\n } catch (err) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n if (!(err instanceof DOMException)) { throw err }\n // declare global: DOMException\n }\n }\n if (!domSelExtended) {\n if (anchor > head) { var tmp = anchorDOM; anchorDOM = headDOM; headDOM = tmp; }\n var range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n};\n\n// : (dom.MutationRecord) → bool\nViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return !this.contentDOM && mutation.type != \"selection\"\n};\n\nprototypeAccessors.contentLost.get = function () {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM)\n};\n\n// Remove a subtree of the element tree that has been touched\n// by a DOM change, so that the next update will redraw it.\nViewDesc.prototype.markDirty = function markDirty (from, to) {\n for (var offset = 0, i = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n var startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM)) { child.dirty = NODE_DIRTY; }\n else { child.markDirty(from - startInside, to - startInside); }\n return\n } else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n};\n\nViewDesc.prototype.markParentsDirty = function markParentsDirty () {\n var level = 1;\n for (var node = this.parent; node; node = node.parent, level++) {\n var dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty) { node.dirty = dirty; }\n }\n};\n\nprototypeAccessors.domAtom.get = function () { return false };\n\nprototypeAccessors.ignoreForCoords.get = function () { return false };\n\nObject.defineProperties( ViewDesc.prototype, prototypeAccessors );\n\n// Reused array to avoid allocating fresh arrays for things that will\n// stay empty anyway.\nvar nothing = [];\n\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nvar WidgetViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function WidgetViewDesc(parent, widget, view, pos) {\n var self, dom = widget.type.toDOM;\n if (typeof dom == \"function\") { dom = dom(view, function () {\n if (!self) { return pos }\n if (self.parent) { return self.parent.posBeforeChild(self) }\n }); }\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n var wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = false;\n dom.classList.add(\"ProseMirror-widget\");\n }\n ViewDesc.call(this, parent, nothing, dom, null);\n this.widget = widget;\n self = this;\n }\n\n if ( ViewDesc ) WidgetViewDesc.__proto__ = ViewDesc;\n WidgetViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n WidgetViewDesc.prototype.constructor = WidgetViewDesc;\n\n var prototypeAccessors$1 = { domAtom: { configurable: true } };\n\n WidgetViewDesc.prototype.matchesWidget = function matchesWidget (widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type)\n };\n\n WidgetViewDesc.prototype.parseRule = function parseRule () { return {ignore: true} };\n\n WidgetViewDesc.prototype.stopEvent = function stopEvent (event) {\n var stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false\n };\n\n WidgetViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection\n };\n\n WidgetViewDesc.prototype.destroy = function destroy () {\n this.widget.type.destroy(this.dom);\n ViewDesc.prototype.destroy.call(this);\n };\n\n prototypeAccessors$1.domAtom.get = function () { return true };\n\n Object.defineProperties( WidgetViewDesc.prototype, prototypeAccessors$1 );\n\n return WidgetViewDesc;\n}(ViewDesc));\n\nvar CompositionViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function CompositionViewDesc(parent, dom, textDOM, text) {\n ViewDesc.call(this, parent, nothing, dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n\n if ( ViewDesc ) CompositionViewDesc.__proto__ = ViewDesc;\n CompositionViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n CompositionViewDesc.prototype.constructor = CompositionViewDesc;\n\n var prototypeAccessors$2 = { size: { configurable: true } };\n\n prototypeAccessors$2.size.get = function () { return this.text.length };\n\n CompositionViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset) {\n if (dom != this.textDOM) { return this.posAtStart + (offset ? this.size : 0) }\n return this.posAtStart + offset\n };\n\n CompositionViewDesc.prototype.domFromPos = function domFromPos (pos) {\n return {node: this.textDOM, offset: pos}\n };\n\n CompositionViewDesc.prototype.ignoreMutation = function ignoreMutation (mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue\n };\n\n Object.defineProperties( CompositionViewDesc.prototype, prototypeAccessors$2 );\n\n return CompositionViewDesc;\n}(ViewDesc));\n\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nvar MarkViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function MarkViewDesc(parent, mark, dom, contentDOM) {\n ViewDesc.call(this, parent, [], dom, contentDOM);\n this.mark = mark;\n }\n\n if ( ViewDesc ) MarkViewDesc.__proto__ = ViewDesc;\n MarkViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n MarkViewDesc.prototype.constructor = MarkViewDesc;\n\n MarkViewDesc.create = function create (parent, mark, inline, view) {\n var custom = view.nodeViews[mark.type.name];\n var spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n { spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline)); }\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom)\n };\n\n MarkViewDesc.prototype.parseRule = function parseRule () {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView) { return null }\n return {mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM}\n };\n\n MarkViewDesc.prototype.matchesMark = function matchesMark (mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark) };\n\n MarkViewDesc.prototype.markDirty = function markDirty (from, to) {\n ViewDesc.prototype.markDirty.call(this, from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n var parent = this.parent;\n while (!parent.node) { parent = parent.parent; }\n if (parent.dirty < this.dirty) { parent.dirty = this.dirty; }\n this.dirty = NOT_DIRTY;\n }\n };\n\n MarkViewDesc.prototype.slice = function slice (from, to, view) {\n var copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n var nodes = this.children, size = this.size;\n if (to < size) { nodes = replaceNodes(nodes, to, size, view); }\n if (from > 0) { nodes = replaceNodes(nodes, 0, from, view); }\n for (var i = 0; i < nodes.length; i++) { nodes[i].parent = copy; }\n copy.children = nodes;\n return copy\n };\n\n return MarkViewDesc;\n}(ViewDesc));\n\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nvar NodeViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n ViewDesc.call(this, parent, node.isLeaf ? nothing : [], dom, contentDOM);\n this.nodeDOM = nodeDOM;\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n if (contentDOM) { this.updateChildren(view, pos); }\n }\n\n if ( ViewDesc ) NodeViewDesc.__proto__ = ViewDesc;\n NodeViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n NodeViewDesc.prototype.constructor = NodeViewDesc;\n\n var prototypeAccessors$3 = { size: { configurable: true },border: { configurable: true },domAtom: { configurable: true } };\n\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n NodeViewDesc.create = function create (parent, node, outerDeco, innerDeco, view, pos) {\n var assign;\n\n var custom = view.nodeViews[node.type.name], descObj;\n var spec = custom && custom(node, view, function () {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj) { return pos }\n if (descObj.parent) { return descObj.parent.posBeforeChild(descObj) }\n }, outerDeco, innerDeco);\n\n var dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom) { dom = document.createTextNode(node.text); }\n else if (dom.nodeType != 3) { throw new RangeError(\"Text must be rendered as a DOM text node\") }\n } else if (!dom) {\n((assign = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node)), dom = assign.dom, contentDOM = assign.contentDOM));\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
\n if (!dom.hasAttribute(\"contenteditable\")) { dom.contentEditable = false; }\n if (node.type.spec.draggable) { dom.draggable = true; }\n }\n\n var nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n\n if (spec)\n { return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM,\n spec, view, pos + 1) }\n else if (node.isText)\n { return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) }\n else\n { return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos + 1) }\n };\n\n NodeViewDesc.prototype.parseRule = function parseRule () {\n var this$1 = this;\n\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView) { return null }\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n var rule = {node: this.node.type.name, attrs: this.node.attrs};\n if (this.node.type.whitespace == \"pre\") { rule.preserveWhitespace = \"full\"; }\n if (this.contentDOM && !this.contentLost) { rule.contentElement = this.contentDOM; }\n else { rule.getContent = function () { return this$1.contentDOM ? Fragment.empty : this$1.node.content; }; }\n return rule\n };\n\n NodeViewDesc.prototype.matchesNode = function matchesNode (node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco)\n };\n\n prototypeAccessors$3.size.get = function () { return this.node.nodeSize };\n\n prototypeAccessors$3.border.get = function () { return this.node.isLeaf ? 0 : 1 };\n\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n NodeViewDesc.prototype.updateChildren = function updateChildren (view, pos) {\n var this$1 = this;\n\n var inline = this.node.inlineContent, off = pos;\n var composition = view.composing && this.localCompositionInfo(view, pos);\n var localComposition = composition && composition.pos > -1 ? composition : null;\n var compositionInChild = composition && composition.pos < 0;\n var updater = new ViewTreeUpdater(this, localComposition && localComposition.node);\n iterDeco(this.node, this.innerDeco, function (widget, i, insideNode) {\n if (widget.spec.marks)\n { updater.syncToMarks(widget.spec.marks, inline, view); }\n else if (widget.type.side >= 0 && !insideNode)\n { updater.syncToMarks(i == this$1.node.childCount ? Mark.none : this$1.node.child(i).marks, inline, view); }\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, function (child, outerDeco, innerDeco, i) {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n var compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ; else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ; else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i)) ; else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks(nothing, inline, view);\n if (this.node.isTextblock) { updater.addTextblockHacks(); }\n updater.destroyRest();\n\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition) { this.protectLocalComposition(view, localComposition); }\n renderDescs(this.contentDOM, this.children, view);\n if (result.ios) { iosHacks(this.dom); }\n }\n };\n\n NodeViewDesc.prototype.localCompositionInfo = function localCompositionInfo (view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n var ref = view.state.selection;\n var from = ref.from;\n var to = ref.to;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size) { return }\n var sel = view.root.getSelection();\n var textNode = nearbyTextNode(sel.focusNode, sel.focusOffset);\n if (!textNode || !this.dom.contains(textNode.parentNode)) { return }\n\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n var text = textNode.nodeValue;\n var textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : {node: textNode, pos: textPos, text: text}\n } else {\n return {node: textNode, pos: -1}\n }\n };\n\n NodeViewDesc.prototype.protectLocalComposition = function protectLocalComposition (view, ref) {\n var node = ref.node;\n var pos = ref.pos;\n var text = ref.text;\n\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node)) { return }\n\n // Create a composition view for the orphaned nodes\n var topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM) { break }\n while (topNode.previousSibling) { topNode.parentNode.removeChild(topNode.previousSibling); }\n while (topNode.nextSibling) { topNode.parentNode.removeChild(topNode.nextSibling); }\n if (topNode.pmViewDesc) { topNode.pmViewDesc = null; }\n }\n var desc = new CompositionViewDesc(this, topNode, node, text);\n view.compositionNodes.push(desc);\n\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n };\n\n // : (Node, [Decoration], DecorationSource, EditorView) → bool\n // If this desc be updated to match the given node decoration,\n // do so and return true.\n NodeViewDesc.prototype.update = function update (node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node)) { return false }\n this.updateInner(node, outerDeco, innerDeco, view);\n return true\n };\n\n NodeViewDesc.prototype.updateInner = function updateInner (node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM) { this.updateChildren(view, this.posAtStart); }\n this.dirty = NOT_DIRTY;\n };\n\n NodeViewDesc.prototype.updateOuterDeco = function updateOuterDeco (outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco)) { return }\n var needsWrap = this.nodeDOM.nodeType != 1;\n var oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM,\n computeOuterDeco(this.outerDeco, this.node, needsWrap),\n computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = null;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n };\n\n // Mark this node as being the selected node.\n NodeViewDesc.prototype.selectNode = function selectNode () {\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable) { this.dom.draggable = true; }\n };\n\n // Remove selected node marking from this node.\n NodeViewDesc.prototype.deselectNode = function deselectNode () {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable) { this.dom.removeAttribute(\"draggable\"); }\n };\n\n prototypeAccessors$3.domAtom.get = function () { return this.node.isAtom };\n\n Object.defineProperties( NodeViewDesc.prototype, prototypeAccessors$3 );\n\n return NodeViewDesc;\n}(ViewDesc));\n\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n return new NodeViewDesc(null, doc, outerDeco, innerDeco, dom, dom, dom, view, 0)\n}\n\nvar TextViewDesc = /*@__PURE__*/(function (NodeViewDesc) {\n function TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view);\n }\n\n if ( NodeViewDesc ) TextViewDesc.__proto__ = NodeViewDesc;\n TextViewDesc.prototype = Object.create( NodeViewDesc && NodeViewDesc.prototype );\n TextViewDesc.prototype.constructor = TextViewDesc;\n\n var prototypeAccessors$4 = { domAtom: { configurable: true } };\n\n TextViewDesc.prototype.parseRule = function parseRule () {\n var skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco) { skip = skip.parentNode; }\n return {skip: skip || true}\n };\n\n TextViewDesc.prototype.update = function update (node, outerDeco, _, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node)) { return false }\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM) { view.trackWrites = null; }\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true\n };\n\n TextViewDesc.prototype.inParent = function inParent () {\n var parentDOM = this.parent.contentDOM;\n for (var n = this.nodeDOM; n; n = n.parentNode) { if (n == parentDOM) { return true } }\n return false\n };\n\n TextViewDesc.prototype.domFromPos = function domFromPos (pos) {\n return {node: this.nodeDOM, offset: pos}\n };\n\n TextViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset, bias) {\n if (dom == this.nodeDOM) { return this.posAtStart + Math.min(offset, this.node.text.length) }\n return NodeViewDesc.prototype.localPosFromDOM.call(this, dom, offset, bias)\n };\n\n TextViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\"\n };\n\n TextViewDesc.prototype.slice = function slice (from, to, view) {\n var node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view)\n };\n\n TextViewDesc.prototype.markDirty = function markDirty (from, to) {\n NodeViewDesc.prototype.markDirty.call(this, from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n { this.dirty = NODE_DIRTY; }\n };\n\n prototypeAccessors$4.domAtom.get = function () { return false };\n\n Object.defineProperties( TextViewDesc.prototype, prototypeAccessors$4 );\n\n return TextViewDesc;\n}(NodeViewDesc));\n\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nvar TrailingHackViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function TrailingHackViewDesc () {\n ViewDesc.apply(this, arguments);\n }\n\n if ( ViewDesc ) TrailingHackViewDesc.__proto__ = ViewDesc;\n TrailingHackViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n TrailingHackViewDesc.prototype.constructor = TrailingHackViewDesc;\n\n var prototypeAccessors$5 = { domAtom: { configurable: true },ignoreForCoords: { configurable: true } };\n\n TrailingHackViewDesc.prototype.parseRule = function parseRule () { return {ignore: true} };\n TrailingHackViewDesc.prototype.matchesHack = function matchesHack (nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName };\n prototypeAccessors$5.domAtom.get = function () { return true };\n prototypeAccessors$5.ignoreForCoords.get = function () { return this.dom.nodeName == \"IMG\" };\n\n Object.defineProperties( TrailingHackViewDesc.prototype, prototypeAccessors$5 );\n\n return TrailingHackViewDesc;\n}(ViewDesc));\n\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nvar CustomNodeViewDesc = /*@__PURE__*/(function (NodeViewDesc) {\n function CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n\n if ( NodeViewDesc ) CustomNodeViewDesc.__proto__ = NodeViewDesc;\n CustomNodeViewDesc.prototype = Object.create( NodeViewDesc && NodeViewDesc.prototype );\n CustomNodeViewDesc.prototype.constructor = CustomNodeViewDesc;\n\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n CustomNodeViewDesc.prototype.update = function update (node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY) { return false }\n if (this.spec.update) {\n var result = this.spec.update(node, outerDeco, innerDeco);\n if (result) { this.updateInner(node, outerDeco, innerDeco, view); }\n return result\n } else if (!this.contentDOM && !node.isLeaf) {\n return false\n } else {\n return NodeViewDesc.prototype.update.call(this, node, outerDeco, innerDeco, view)\n }\n };\n\n CustomNodeViewDesc.prototype.selectNode = function selectNode () {\n this.spec.selectNode ? this.spec.selectNode() : NodeViewDesc.prototype.selectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.deselectNode = function deselectNode () {\n this.spec.deselectNode ? this.spec.deselectNode() : NodeViewDesc.prototype.deselectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.setSelection = function setSelection (anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root)\n : NodeViewDesc.prototype.setSelection.call(this, anchor, head, root, force);\n };\n\n CustomNodeViewDesc.prototype.destroy = function destroy () {\n if (this.spec.destroy) { this.spec.destroy(); }\n NodeViewDesc.prototype.destroy.call(this);\n };\n\n CustomNodeViewDesc.prototype.stopEvent = function stopEvent (event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false\n };\n\n CustomNodeViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : NodeViewDesc.prototype.ignoreMutation.call(this, mutation)\n };\n\n return CustomNodeViewDesc;\n}(NodeViewDesc));\n\n// : (dom.Node, [ViewDesc])\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n var dom = parentDOM.firstChild, written = false;\n for (var i = 0; i < descs.length; i++) {\n var desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) { dom = rm(dom); written = true; }\n dom = dom.nextSibling;\n } else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n var pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) { dom = rm(dom); written = true; }\n if (written && view.trackWrites == parentDOM) { view.trackWrites = null; }\n}\n\nfunction OuterDecoLevel(nodeName) {\n if (nodeName) { this.nodeName = nodeName; }\n}\nOuterDecoLevel.prototype = Object.create(null);\n\nvar noDeco = [new OuterDecoLevel];\n\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0) { return noDeco }\n\n var top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n\n for (var i = 0; i < outerDeco.length; i++) {\n var attrs = outerDeco[i].type.attrs;\n if (!attrs) { continue }\n if (attrs.nodeName)\n { result.push(top = new OuterDecoLevel(attrs.nodeName)); }\n\n for (var name in attrs) {\n var val = attrs[name];\n if (val == null) { continue }\n if (needsWrap && result.length == 1)\n { result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\")); }\n if (name == \"class\") { top.class = (top.class ? top.class + \" \" : \"\") + val; }\n else if (name == \"style\") { top.style = (top.style ? top.style + \";\" : \"\") + val; }\n else if (name != \"nodeName\") { top[name] = val; }\n }\n }\n\n return result\n}\n\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco) { return nodeDOM }\n\n var curDOM = nodeDOM;\n for (var i = 0; i < curComputed.length; i++) {\n var deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n var parent = (void 0);\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.tagName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n } else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM\n}\n\nfunction patchAttributes(dom, prev, cur) {\n for (var name in prev)\n { if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n { dom.removeAttribute(name); } }\n for (var name$1 in cur)\n { if (name$1 != \"class\" && name$1 != \"style\" && name$1 != \"nodeName\" && cur[name$1] != prev[name$1])\n { dom.setAttribute(name$1, cur[name$1]); } }\n if (prev.class != cur.class) {\n var prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : nothing;\n var curList = cur.class ? cur.class.split(\" \").filter(Boolean) : nothing;\n for (var i = 0; i < prevList.length; i++) { if (curList.indexOf(prevList[i]) == -1)\n { dom.classList.remove(prevList[i]); } }\n for (var i$1 = 0; i$1 < curList.length; i$1++) { if (prevList.indexOf(curList[i$1]) == -1)\n { dom.classList.add(curList[i$1]); } }\n if (dom.classList.length == 0)\n { dom.removeAttribute(\"class\"); }\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n var prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n { dom.style.removeProperty(m[1]); }\n }\n if (cur.style)\n { dom.style.cssText += cur.style; }\n }\n}\n\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1))\n}\n\n// : ([Decoration], [Decoration]) → bool\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++) { if (!a[i].type.eq(b[i].type)) { return false } }\n return true\n}\n\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n var next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next\n}\n\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nvar ViewTreeUpdater = function ViewTreeUpdater(top, lockedNode) {\n this.top = top;\n this.lock = lockedNode;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n\n this.preMatch = preMatch(top.node.content, top);\n};\n\n// Destroy and remove the children between the given indices in\n// `this.top`.\nViewTreeUpdater.prototype.destroyBetween = function destroyBetween (start, end) {\n if (start == end) { return }\n for (var i = start; i < end; i++) { this.top.children[i].destroy(); }\n this.top.children.splice(start, end - start);\n this.changed = true;\n};\n\n// Destroy all remaining children in `this.top`.\nViewTreeUpdater.prototype.destroyRest = function destroyRest () {\n this.destroyBetween(this.index, this.top.children.length);\n};\n\n// : ([Mark], EditorView)\n// Sync the current stack of mark descs with the given array of\n// marks, reusing existing mark descs when possible.\nViewTreeUpdater.prototype.syncToMarks = function syncToMarks (marks, inline, view) {\n var keep = 0, depth = this.stack.length >> 1;\n var maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1]).matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n { keep++; }\n\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n var found = -1;\n for (var i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n if (this.top.children[i].matchesMark(marks[depth])) { found = i; break }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n } else {\n var markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n};\n\n// : (Node, [Decoration], DecorationSource) → bool\n// Try to find a node desc matching the given data. Skip over it and\n// return true when successful.\nViewTreeUpdater.prototype.findNodeMatch = function findNodeMatch (node, outerDeco, innerDeco, index) {\n var found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n } else {\n for (var i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n var child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break\n }\n }\n }\n if (found < 0) { return false }\n this.destroyBetween(this.index, found);\n this.index++;\n return true\n};\n\nViewTreeUpdater.prototype.updateNodeAt = function updateNodeAt (node, outerDeco, innerDeco, index, view) {\n var child = this.top.children[index];\n if (!child.update(node, outerDeco, innerDeco, view)) { return false }\n this.destroyBetween(this.index, index);\n this.index = index + 1;\n return true\n};\n\nViewTreeUpdater.prototype.findIndexWithChild = function findIndexWithChild (domNode) {\n for (;;) {\n var parent = domNode.parentNode;\n if (!parent) { return -1 }\n if (parent == this.top.contentDOM) {\n var desc = domNode.pmViewDesc;\n if (desc) { for (var i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc) { return i }\n } }\n return -1\n }\n domNode = parent;\n }\n};\n\n// : (Node, [Decoration], DecorationSource, EditorView, Fragment, number) → bool\n// Try to update the next node, if any, to the given data. Checks\n// pre-matches to avoid overwriting nodes that could still be used.\nViewTreeUpdater.prototype.updateNextNode = function updateNextNode (node, outerDeco, innerDeco, view, index) {\n for (var i = this.index; i < this.top.children.length; i++) {\n var next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n var preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index) { return false }\n var nextDOM = next.dom;\n\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n var locked = this.lock && (nextDOM == this.lock || nextDOM.nodeType == 1 && nextDOM.contains(this.lock.parentNode)) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM) { this.changed = true; }\n this.index++;\n return true\n }\n break\n }\n }\n return false\n};\n\n// : (Node, [Decoration], DecorationSource, EditorView)\n// Insert the node as a newly created node desc.\nViewTreeUpdater.prototype.addNode = function addNode (node, outerDeco, innerDeco, view, pos) {\n this.top.children.splice(this.index++, 0, NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos));\n this.changed = true;\n};\n\nViewTreeUpdater.prototype.placeWidget = function placeWidget (widget, view, pos) {\n var next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) && (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n } else {\n var desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n};\n\n// Make sure a textblock looks and behaves correctly in\n// contentEditable.\nViewTreeUpdater.prototype.addTextblockHacks = function addTextblockHacks () {\n var lastChild = this.top.children[this.index - 1];\n while (lastChild instanceof MarkViewDesc) { lastChild = lastChild.children[lastChild.children.length - 1]; }\n\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text)) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((result.safari || result.chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n { this.addHackNode(\"IMG\"); }\n this.addHackNode(\"BR\");\n }\n};\n\nViewTreeUpdater.prototype.addHackNode = function addHackNode (nodeName) {\n if (this.index < this.top.children.length && this.top.children[this.index].matchesHack(nodeName)) {\n this.index++;\n } else {\n var dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") { dom.className = \"ProseMirror-separator\"; }\n if (nodeName == \"BR\") { dom.className = \"ProseMirror-trailingBreak\"; }\n this.top.children.splice(this.index++, 0, new TrailingHackViewDesc(this.top, nothing, dom, null));\n this.changed = true;\n }\n};\n\n// : (Fragment, [ViewDesc]) → {index: number, matched: Map, matches: ViewDesc[]}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n var curDesc = parentDesc, descI = curDesc.children.length;\n var fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n var desc = (void 0);\n for (;;) {\n if (descI) {\n var next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n } else {\n desc = next;\n descI--;\n break\n }\n } else if (curDesc == parentDesc) {\n break outer\n } else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n var node = desc.node;\n if (!node) { continue }\n if (node != frag.child(fI - 1)) { break }\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return {index: fI, matched: matched, matches: matches.reverse()}\n}\n\nfunction compareSide(a, b) { return a.type.side - b.type.side }\n\n// : (ViewDesc, DecorationSource, (Decoration, number), (Node, [Decoration], DecorationSource, number))\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n var locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (var i = 0; i < parent.childCount; i++) {\n var child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return\n }\n\n var decoIndex = 0, active = [], restNode = null;\n for (var parentIndex = 0;;) {\n if (decoIndex < locals.length && locals[decoIndex].to == offset) {\n var widget = locals[decoIndex++], widgets = (void 0);\n while (decoIndex < locals.length && locals[decoIndex].to == offset)\n { (widgets || (widgets = [widget])).push(locals[decoIndex++]); }\n if (widgets) {\n widgets.sort(compareSide);\n for (var i$1 = 0; i$1 < widgets.length; i$1++) { onWidget(widgets[i$1], parentIndex, !!restNode); }\n } else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n\n var child$1 = (void 0), index = (void 0);\n if (restNode) {\n index = -1;\n child$1 = restNode;\n restNode = null;\n } else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child$1 = parent.child(parentIndex++);\n } else {\n break\n }\n\n for (var i$2 = 0; i$2 < active.length; i$2++) { if (active[i$2].to <= offset) { active.splice(i$2--, 1); } }\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n { active.push(locals[decoIndex++]); }\n\n var end = offset + child$1.nodeSize;\n if (child$1.isText) {\n var cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt) { cutAt = locals[decoIndex].from; }\n for (var i$3 = 0; i$3 < active.length; i$3++) { if (active[i$3].to < cutAt) { cutAt = active[i$3].to; } }\n if (cutAt < end) {\n restNode = child$1.cut(cutAt - offset);\n child$1 = child$1.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n\n var outerDeco = !active.length ? nothing\n : child$1.isInline && !child$1.isLeaf ? active.filter(function (d) { return !d.inline; })\n : active.slice();\n onNode(child$1, outerDeco, deco.forChild(offset, child$1), index);\n offset = end;\n }\n}\n\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n var oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n\nfunction nearbyTextNode(node, offset) {\n for (;;) {\n if (node.nodeType == 3) { return node }\n if (node.nodeType == 1 && offset > 0) {\n if (node.childNodes.length > offset && node.childNodes[offset].nodeType == 3)\n { return node.childNodes[offset] }\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n } else if (node.nodeType == 1 && offset < node.childNodes.length) {\n node = node.childNodes[offset];\n offset = 0;\n } else {\n return null\n }\n }\n}\n\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (var i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n var child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText) { continue }\n var str = child.text;\n while (i < frag.childCount) {\n var next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText) { break }\n str += next.text;\n }\n if (pos >= from && childStart < to) {\n var found = str.lastIndexOf(text, to - childStart - 1);\n if (found >= 0 && found + text.length + childStart >= from)\n { return childStart + found }\n }\n }\n return -1\n}\n\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n var result = [];\n for (var i = 0, off = 0; i < nodes.length; i++) {\n var child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n } else {\n if (start < from) { result.push(child.slice(0, from - start, view)); }\n if (replacement) {\n result.push(replacement);\n replacement = null;\n }\n if (end > to) { result.push(child.slice(to - start, child.size, view)); }\n }\n }\n return result\n}\n\nfunction selectionFromDOM(view, origin) {\n var domSel = view.root.getSelection(), doc = view.state.doc;\n if (!domSel.focusNode) { return null }\n var nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n var head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset);\n if (head < 0) { return null }\n var $head = doc.resolve(head), $anchor, selection;\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n while (nearestDesc && !nearestDesc.node) { nearestDesc = nearestDesc.parent; }\n if (nearestDesc && nearestDesc.node.isAtom && NodeSelection.isSelectable(nearestDesc.node) && nearestDesc.parent\n && !(nearestDesc.node.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n var pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n } else {\n var anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset);\n if (anchor < 0) { return null }\n $anchor = doc.resolve(anchor);\n }\n\n if (!selection) {\n var bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection\n}\n\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom)\n}\n\nfunction selectionToDOM(view, force) {\n var sel = view.state.selection;\n syncNodeSelection(view, sel);\n\n if (!editorOwnsSelection(view)) { return }\n\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.mouseDown && view.mouseDown.allowDefault && result.chrome) {\n var domSel = view.root.getSelection(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset,\n curSel.anchorNode, curSel.anchorOffset)) {\n view.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return\n }\n }\n\n view.domObserver.disconnectSelection();\n\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n } else {\n var anchor = sel.anchor;\n var head = sel.head;\n var resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n { resetEditableFrom = temporarilyEditableNear(view, sel.from); }\n if (!sel.empty && !sel.$from.parent.inlineContent)\n { resetEditableTo = temporarilyEditableNear(view, sel.to); }\n }\n view.docView.setSelection(anchor, head, view.root, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom) { resetEditable(resetEditableFrom); }\n if (resetEditableTo) { resetEditable(resetEditableTo); }\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n } else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document) { removeClassOnSelectionChange(view); }\n }\n }\n\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\n\nvar brokenSelectBetweenUneditable = result.safari || result.chrome && result.chrome_version < 63;\n\nfunction temporarilyEditableNear(view, pos) {\n var ref = view.docView.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n var after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n var before = offset ? node.childNodes[offset - 1] : null;\n if (result.safari && after && after.contentEditable == \"false\") { return setEditable(after) }\n if ((!after || after.contentEditable == \"false\") && (!before || before.contentEditable == \"false\")) {\n if (after) { return setEditable(after) }\n else if (before) { return setEditable(before) }\n }\n}\n\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (result.safari && element.draggable) { element.draggable = false; element.wasDraggable = true; }\n return element\n}\n\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) { element.draggable = true; element.wasDraggable = null; }\n}\n\nfunction removeClassOnSelectionChange(view) {\n var doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n var domSel = view.root.getSelection();\n var node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.hideSelectionGuard = function () {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n setTimeout(function () {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n { view.dom.classList.remove(\"ProseMirror-hideselection\"); }\n }, 20);\n }\n });\n}\n\nfunction selectCursorWrapper(view) {\n var domSel = view.root.getSelection(), range = document.createRange();\n var node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img) { range.setEnd(node.parentNode, domIndex(node) + 1); }\n else { range.setEnd(node, 0); }\n range.collapse(false);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && result.ie && result.ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\n\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n var desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc) { desc.selectNode(); }\n view.lastSelectedViewDesc = desc;\n }\n } else {\n clearNodeSelection(view);\n }\n}\n\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n { view.lastSelectedViewDesc.deselectNode(); }\n view.lastSelectedViewDesc = null;\n }\n}\n\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", function (f) { return f(view, $anchor, $head); })\n || TextSelection.between($anchor, $head, bias)\n}\n\nfunction hasFocusAndSelection(view) {\n if (view.editable && view.root.activeElement != view.dom) { return false }\n return hasSelection(view)\n}\n\nfunction hasSelection(view) {\n var sel = view.root.getSelection();\n if (!sel.anchorNode) { return false }\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode))\n } catch(_) {\n return false\n }\n}\n\nfunction anchorInRightPlace(view) {\n var anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n var domSel = view.root.getSelection();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset)\n}\n\nfunction moveSelectionBlock(state, dir) {\n var ref = state.selection;\n var $anchor = ref.$anchor;\n var $head = ref.$head;\n var $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n var $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir)\n}\n\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true\n}\n\nfunction selectHorizontally(view, dir, mods) {\n var sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (!sel.empty || mods.indexOf(\"s\") > -1) {\n return false\n } else if (view.endOfTextblock(dir > 0 ? \"right\" : \"left\")) {\n var next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection)) { return apply(view, next) }\n return false\n } else if (!(result.mac && mods.indexOf(\"m\") > -1)) {\n var $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText) { return false }\n var nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM)) { return false }\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head))\n } else if (result.webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)))\n } else {\n return false\n }\n }\n } else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from))\n } else {\n var next$1 = moveSelectionBlock(view.state, dir);\n if (next$1) { return apply(view, next$1) }\n return false\n }\n}\n\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length\n}\n\nfunction isIgnorable(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dom.nextSibling || dom.nodeName != \"BR\")\n}\n\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesLeft(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode, offset = sel.focusOffset;\n if (!node) { return }\n var moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (result.gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset])) { force = true; }\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break\n } else {\n var before = node.childNodes[offset - 1];\n if (isIgnorable(before)) {\n moveNode = node;\n moveOffset = --offset;\n } else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n } else { break }\n }\n } else if (isBlockNode(node)) {\n break\n } else {\n var prev = node.previousSibling;\n while (prev && isIgnorable(prev)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom) { break }\n offset = 0;\n } else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force) { setSelFocus(view, sel, node, offset); }\n else if (moveNode) { setSelFocus(view, sel, moveNode, moveOffset); }\n}\n\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesRight(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode, offset = sel.focusOffset;\n if (!node) { return }\n var len = nodeLen(node);\n var moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1) { break }\n var after = node.childNodes[offset];\n if (isIgnorable(after)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else { break }\n } else if (isBlockNode(node)) {\n break\n } else {\n var next = node.nextSibling;\n while (next && isIgnorable(next)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom) { break }\n offset = len = 0;\n } else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode) { setSelFocus(view, sel, moveNode, moveOffset); }\n}\n\nfunction isBlockNode(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock\n}\n\nfunction setSelFocus(view, sel, node, offset) {\n if (selectionCollapsed(sel)) {\n var range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n var state = view.state;\n // If no state update ends up happening, reset the selection.\n setTimeout(function () {\n if (view.state == state) { selectionToDOM(view); }\n }, 50);\n}\n\n// : (EditorState, number)\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n var sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1) { return false }\n if (result.mac && mods.indexOf(\"m\") > -1) { return false }\n var $from = sel.$from;\n var $to = sel.$to;\n\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n var next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n { return apply(view, next) }\n }\n if (!$from.parent.inlineContent) {\n var side = dir < 0 ? $from : $to;\n var beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false\n }\n return false\n}\n\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection)) { return true }\n var ref = view.state.selection;\n var $head = ref.$head;\n var $anchor = ref.$anchor;\n var empty = ref.empty;\n if (!$head.sameParent($anchor)) { return true }\n if (!empty) { return false }\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) { return true }\n var nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n var tr = view.state.tr;\n if (dir < 0) { tr.delete($head.pos - nextNode.nodeSize, $head.pos); }\n else { tr.delete($head.pos, $head.pos + nextNode.nodeSize); }\n view.dispatch(tr);\n return true\n }\n return false\n}\n\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!result.safari || view.state.selection.$head.parentOffset > 0) { return }\n var ref = view.root.getSelection();\n var focusNode = ref.focusNode;\n var focusOffset = ref.focusOffset;\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n var child = focusNode.firstChild;\n switchEditable(view, child, true);\n setTimeout(function () { return switchEditable(view, child, false); }, 20);\n }\n}\n\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\n\nfunction getMods(event) {\n var result = \"\";\n if (event.ctrlKey) { result += \"c\"; }\n if (event.metaKey) { result += \"m\"; }\n if (event.altKey) { result += \"a\"; }\n if (event.shiftKey) { result += \"s\"; }\n return result\n}\n\nfunction captureKeyDown(view, event) {\n var code = event.keyCode, mods = getMods(event);\n if (code == 8 || (result.mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodesLeft(view)\n } else if (code == 46 || (result.mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodesRight(view)\n } else if (code == 13 || code == 27) { // Enter, Esc\n return true\n } else if (code == 37) { // Left arrow\n return selectHorizontally(view, -1, mods) || skipIgnoredNodesLeft(view)\n } else if (code == 39) { // Right arrow\n return selectHorizontally(view, 1, mods) || skipIgnoredNodesRight(view)\n } else if (code == 38) { // Up arrow\n return selectVertically(view, -1, mods) || skipIgnoredNodesLeft(view)\n } else if (code == 40) { // Down arrow\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodesRight(view)\n } else if (mods == (result.mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true\n }\n return false\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\n\nfunction parseBetween(view, from_, to_) {\n var ref = view.docView.parseRange(from_, to_);\n var parent = ref.node;\n var fromOffset = ref.fromOffset;\n var toOffset = ref.toOffset;\n var from = ref.from;\n var to = ref.to;\n\n var domSel = view.root.getSelection(), find = null, anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{node: anchor, offset: domSel.anchorOffset}];\n if (!selectionCollapsed(domSel))\n { find.push({node: domSel.focusNode, offset: domSel.focusOffset}); }\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (result.chrome && view.lastKeyCode === 8) {\n for (var off = toOffset; off > fromOffset; off--) {\n var node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) { toOffset = off; break }\n if (!desc || desc.size) { break }\n }\n }\n var startDoc = view.state.doc;\n var parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n var $from = startDoc.resolve(from);\n\n var sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n editableContent: true,\n findPositions: find,\n ruleFromNode: ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n var anchor$1 = find[0].pos, head = find[1] && find[1].pos;\n if (head == null) { head = anchor$1; }\n sel = {anchor: anchor$1 + from, head: head + from};\n }\n return {doc: doc, sel: sel, from: from, to: to}\n}\n\nfunction ruleFromNode(dom) {\n var desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule()\n } else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (result.safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n var skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return {skip: skip}\n } else if (dom.parentNode.lastChild == dom || result.safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return {ignore: true}\n }\n } else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return {ignore: true}\n }\n}\n\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n if (from < 0) {\n var origin = view.lastSelectionTime > Date.now() - 50 ? view.lastSelectionOrigin : null;\n var newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n var tr$1 = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\") { tr$1.setMeta(\"pointer\", true); }\n else if (origin == \"key\") { tr$1.scrollIntoView(); }\n view.dispatch(tr$1);\n }\n return\n }\n\n var $before = view.state.doc.resolve(from);\n var shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n\n var sel = view.state.selection;\n var parse = parseBetween(view, from, to);\n // Chrome sometimes leaves the cursor before the inserted text when\n // composing after a cursor wrapper. This moves it forward.\n if (result.chrome && view.cursorWrapper && parse.sel && parse.sel.anchor == view.cursorWrapper.deco.from) {\n var text = view.cursorWrapper.deco.type.toDOM.nextSibling;\n var size = text && text.nodeValue ? text.nodeValue.length : 1;\n parse.sel = {anchor: parse.sel.anchor + size, head: parse.sel.anchor + size};\n }\n\n var doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n var preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.lastKeyCode === 8 && Date.now() - 100 < view.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n } else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.lastKeyCode = null;\n\n var change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = {start: sel.from, endA: sel.to, endB: sel.to};\n } else if ((result.ios && view.lastIOSEnter > Date.now() - 225 || result.android) &&\n addedNodes.some(function (n) { return n.nodeName == \"DIV\" || n.nodeName == \"P\"; }) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); })) {\n view.lastIOSEnter = 0;\n return\n } else {\n if (parse.sel) {\n var sel$1 = resolveSelection(view, view.state.doc, parse.sel);\n if (sel$1 && !sel$1.eq(view.state.selection)) { view.dispatch(view.state.tr.setSelection(sel$1)); }\n }\n return\n }\n }\n view.domChangeCount++;\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2) {\n change.start = view.state.selection.from;\n } else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (result.ie && result.ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n\n var $from = parse.doc.resolveNoCache(change.start - parse.from);\n var $to = parse.doc.resolveNoCache(change.endB - parse.from);\n var inlineChange = $from.sameParent($to) && $from.parent.inlineContent;\n var nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((result.ios && view.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(function (n) { return n.nodeName == \"DIV\" || n.nodeName == \"P\"; }))) ||\n (!inlineChange && $from.pos < parse.doc.content.size &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); })) {\n view.lastIOSEnter = 0;\n return\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeJoin(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(8, \"Backspace\")); })) {\n if (result.android && result.chrome) { view.domObserver.suppressSelectionUpdates(); } // #820\n return\n }\n\n // Chrome Android will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (result.chrome && result.android && change.toB == change.from)\n { view.lastAndroidDelete = Date.now(); }\n\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (result.android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(function () {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n\n var chFrom = change.start, chTo = change.endA;\n\n var tr, storedMarks, markChange, $from1;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (result.ie && result.ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(function () { return selectionToDOM(view); }, 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n } else if ( // Adding or removing a mark\n change.endA == change.endB && ($from1 = doc.resolve(change.start)) &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset),\n $from1.parent.content.cut($from1.parentOffset, change.endA - $from1.start())))\n ) {\n tr = view.state.tr;\n if (markChange.type == \"add\") { tr.addMark(chFrom, chTo, markChange.mark); }\n else { tr.removeMark(chFrom, chTo, markChange.mark); }\n } else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n var text$1 = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", function (f) { return f(view, chFrom, chTo, text$1); })) { return }\n tr = view.state.tr.insertText(text$1, chFrom, chTo);\n }\n }\n\n if (!tr)\n { tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from)); }\n if (parse.sel) {\n var sel$2 = resolveSelection(view, tr.doc, parse.sel);\n // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel$2 && !(result.chrome && result.android && view.composing && sel$2.empty &&\n (change.start != change.endB || view.lastAndroidDelete < Date.now() - 100) &&\n (sel$2.head == chFrom || sel$2.head == tr.mapping.map(chTo) - 1) ||\n result.ie && sel$2.empty && sel$2.head == chFrom))\n { tr.setSelection(sel$2); }\n }\n if (storedMarks) { tr.ensureMarks(storedMarks); }\n view.dispatch(tr.scrollIntoView());\n}\n\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size) { return null }\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head))\n}\n\n// : (Fragment, Fragment) → ?{mark: Mark, type: string}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n var curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n var added = curMarks, removed = prevMarks, type, mark, update;\n for (var i = 0; i < prevMarks.length; i++) { added = prevMarks[i].removeFromSet(added); }\n for (var i$1 = 0; i$1 < curMarks.length; i$1++) { removed = curMarks[i$1].removeFromSet(removed); }\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = function (node) { return node.mark(mark.addToSet(node.marks)); };\n } else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = function (node) { return node.mark(mark.removeFromSet(node.marks)); };\n } else {\n return null\n }\n var updated = [];\n for (var i$2 = 0; i$2 < prev.childCount; i$2++) { updated.push(update(prev.child(i$2))); }\n if (Fragment.from(updated).eq(cur)) { return {mark: mark, type: type} }\n}\n\nfunction looksLikeJoin(old, start, end, $newStart, $newEnd) {\n if (!$newStart.parent.isTextblock ||\n // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n { return false }\n\n var $start = old.resolve(start);\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n { return false }\n var $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n { return false }\n\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content)\n}\n\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n var depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n var next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end\n}\n\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n var start = a.findDiffStart(b, pos);\n if (start == null) { return null }\n var ref = a.findDiffEnd(b, pos + a.size, pos + b.size);\n var endA = ref.a;\n var endB = ref.b;\n if (preferredSide == \"end\") {\n var adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n var move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n endB = start + (endB - endA);\n endA = start;\n } else if (endB < start) {\n var move$1 = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move$1;\n endA = start + (endA - endB);\n endB = start;\n }\n return {start: start, endA: endA, endB: endB}\n}\n\nfunction serializeForClipboard(view, slice) {\n var context = [];\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n var node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n\n var serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n var doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, {document: doc}));\n\n var firstChild = wrap.firstChild, needsWrap;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (var i = needsWrap.length - 1; i >= 0; i--) {\n var wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild) { wrapper.appendChild(wrap.firstChild); }\n wrap.appendChild(wrapper);\n if (needsWrap[i] != \"tbody\") {\n openStart++;\n openEnd++;\n }\n }\n firstChild = wrap.firstChild;\n }\n\n if (firstChild && firstChild.nodeType == 1)\n { firstChild.setAttribute(\"data-pm-slice\", (openStart + \" \" + openEnd + \" \" + (JSON.stringify(context)))); }\n\n var text = view.someProp(\"clipboardTextSerializer\", function (f) { return f(slice); }) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n\n return {dom: wrap, text: text}\n}\n\n// : (EditorView, string, string, ?bool, ResolvedPos) → ?Slice\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n var dom, inCode = $context.parent.type.spec.code, slice;\n if (!html && !text) { return null }\n var asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", function (f) { text = f(text, inCode || plainText); });\n if (inCode) { return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty }\n var parsed = view.someProp(\"clipboardTextParser\", function (f) { return f(text, $context, plainText); });\n if (parsed) {\n slice = parsed;\n } else {\n var marks = $context.marks();\n var ref = view.state;\n var schema = ref.schema;\n var serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(function (block) {\n var p = dom.appendChild(document.createElement(\"p\"));\n if (block) { p.appendChild(serializer.serializeNode(schema.text(block, marks))); }\n });\n }\n } else {\n view.someProp(\"transformPastedHTML\", function (f) { html = f(html); });\n dom = readHTML(html);\n if (result.webkit) { restoreReplacedSpaces(dom); }\n }\n\n var contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n var sliceData = contextNode && /^(\\d+) (\\d+) (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\"));\n if (!slice) {\n var parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode: function ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName)) { return {ignore: true} }\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[3]);\n } else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n var openStart = 0, openEnd = 0;\n for (var node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating;\n openStart++, node = node.firstChild) {}\n for (var node$1 = slice.content.lastChild; openEnd < slice.openEnd && !node$1.type.spec.isolating;\n openEnd++, node$1 = node$1.lastChild) {}\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n\n view.someProp(\"transformPasted\", function (f) { slice = f(slice); });\n return slice\n}\n\nvar inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2) { return fragment }\n var loop = function ( d ) {\n var parent = $context.node(d);\n var match = parent.contentMatchAt($context.index(d));\n var lastWrap = (void 0), result = [];\n fragment.forEach(function (node) {\n if (!result) { return }\n var wrap = match.findWrapping(node.type), inLast;\n if (!wrap) { return result = null }\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n } else {\n if (result.length) { result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length); }\n var wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type, wrapped.attrs);\n lastWrap = wrap;\n }\n });\n if (result) { return { v: Fragment.from(result) } }\n };\n\n for (var d = $context.depth; d >= 0; d--) {\n var returned = loop( d );\n\n if ( returned ) return returned.v;\n }\n return fragment\n}\n\nfunction withWrappers(node, wrap, from) {\n if ( from === void 0 ) from = 0;\n\n for (var i = wrap.length - 1; i >= from; i--)\n { node = wrap[i].create(null, Fragment.from(node)); }\n return node\n}\n\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n var inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner) { return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner)) }\n var match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n { return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1)))) }\n }\n}\n\nfunction closeRight(node, depth) {\n if (depth == 0) { return node }\n var fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n var fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill))\n}\n\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n var node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (depth < to - 1) { inner = closeRange(inner, side, from, to, depth + 1, openEnd); }\n if (depth >= from)\n { inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, fragment.childCount > 1 || openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true)); }\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner))\n}\n\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n { slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd); }\n if (openEnd < slice.openEnd)\n { slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd); }\n return slice\n}\n\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\nvar wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\n\nvar _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"))\n}\n\nfunction readHTML(html) {\n var metas = /^(\\s*]*>)*/.exec(html);\n if (metas) { html = html.slice(metas[0].length); }\n var elt = detachedDoc().createElement(\"div\");\n var firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n { html = wrap.map(function (n) { return \"<\" + n + \">\"; }).join(\"\") + html + wrap.map(function (n) { return \"\"; }).reverse().join(\"\"); }\n elt.innerHTML = html;\n if (wrap) { for (var i = 0; i < wrap.length; i++) { elt = elt.querySelector(wrap[i]) || elt; } }\n return elt\n}\n\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n var nodes = dom.querySelectorAll(result.chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n { node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node); }\n }\n}\n\nfunction addContext(slice, context) {\n if (!slice.size) { return slice }\n var schema = slice.content.firstChild.type.schema, array;\n try { array = JSON.parse(context); }\n catch(e) { return slice }\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n for (var i = array.length - 2; i >= 0; i -= 2) {\n var type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs()) { break }\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++; openEnd++;\n }\n return new Slice(content, openStart, openEnd)\n}\n\nvar observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nvar useCharData = result.ie && result.ie_version <= 11;\n\nvar SelectionState = function SelectionState() {\n this.anchorNode = this.anchorOffset = this.focusNode = this.focusOffset = null;\n};\n\nSelectionState.prototype.set = function set (sel) {\n this.anchorNode = sel.anchorNode; this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode; this.focusOffset = sel.focusOffset;\n};\n\nSelectionState.prototype.eq = function eq (sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset\n};\n\nvar DOMObserver = function DOMObserver(view, handleDOMChange) {\n var this$1 = this;\n\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(function (mutations) {\n for (var i = 0; i < mutations.length; i++) { this$1.queue.push(mutations[i]); }\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (result.ie && result.ie_version <= 11 && mutations.some(\n function (m) { return m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length; }))\n { this$1.flushSoon(); }\n else\n { this$1.flush(); }\n });\n this.currentSelection = new SelectionState;\n if (useCharData) {\n this.onCharData = function (e) {\n this$1.queue.push({target: e.target, type: \"characterData\", oldValue: e.prevValue});\n this$1.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n this.suppressingSelectionUpdates = false;\n};\n\nDOMObserver.prototype.flushSoon = function flushSoon () {\n var this$1 = this;\n\n if (this.flushingSoon < 0)\n { this.flushingSoon = window.setTimeout(function () { this$1.flushingSoon = -1; this$1.flush(); }, 20); }\n};\n\nDOMObserver.prototype.forceFlush = function forceFlush () {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n};\n\nDOMObserver.prototype.start = function start () {\n if (this.observer)\n { this.observer.observe(this.view.dom, observeOptions); }\n if (useCharData)\n { this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData); }\n this.connectSelection();\n};\n\nDOMObserver.prototype.stop = function stop () {\n var this$1 = this;\n\n if (this.observer) {\n var take = this.observer.takeRecords();\n if (take.length) {\n for (var i = 0; i < take.length; i++) { this.queue.push(take[i]); }\n window.setTimeout(function () { return this$1.flush(); }, 20);\n }\n this.observer.disconnect();\n }\n if (useCharData) { this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData); }\n this.disconnectSelection();\n};\n\nDOMObserver.prototype.connectSelection = function connectSelection () {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.disconnectSelection = function disconnectSelection () {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.suppressSelectionUpdates = function suppressSelectionUpdates () {\n var this$1 = this;\n\n this.suppressingSelectionUpdates = true;\n setTimeout(function () { return this$1.suppressingSelectionUpdates = false; }, 50);\n};\n\nDOMObserver.prototype.onSelectionChange = function onSelectionChange () {\n if (!hasFocusAndSelection(this.view)) { return }\n if (this.suppressingSelectionUpdates) { return selectionToDOM(this.view) }\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (result.ie && result.ie_version <= 11 && !this.view.state.selection.empty) {\n var sel = this.view.root.getSelection();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n { return this.flushSoon() }\n }\n this.flush();\n};\n\nDOMObserver.prototype.setCurSelection = function setCurSelection () {\n this.currentSelection.set(this.view.root.getSelection());\n};\n\nDOMObserver.prototype.ignoreSelectionChange = function ignoreSelectionChange (sel) {\n if (sel.rangeCount == 0) { return true }\n var container = sel.getRangeAt(0).commonAncestorContainer;\n var desc = this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({type: \"selection\", target: container.nodeType == 3 ? container.parentNode : container})) {\n this.setCurSelection();\n return true\n }\n};\n\nDOMObserver.prototype.flush = function flush () {\n if (!this.view.docView || this.flushingSoon > -1) { return }\n var mutations = this.observer ? this.observer.takeRecords() : [];\n if (this.queue.length) {\n mutations = this.queue.concat(mutations);\n this.queue.length = 0;\n }\n\n var sel = this.view.root.getSelection();\n var newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasSelection(this.view) && !this.ignoreSelectionChange(sel);\n\n var from = -1, to = -1, typeOver = false, added = [];\n if (this.view.editable) {\n for (var i = 0; i < mutations.length; i++) {\n var result$1 = this.registerMutation(mutations[i], added);\n if (result$1) {\n from = from < 0 ? result$1.from : Math.min(result$1.from, from);\n to = to < 0 ? result$1.to : Math.max(result$1.to, to);\n if (result$1.typeOver) { typeOver = true; }\n }\n }\n }\n\n if (result.gecko && added.length > 1) {\n var brs = added.filter(function (n) { return n.nodeName == \"BR\"; });\n if (brs.length == 2) {\n var a = brs[0];\n var b = brs[1];\n if (a.parentNode && a.parentNode.parentNode == b.parentNode) { b.remove(); }\n else { a.remove(); }\n }\n }\n\n if (from > -1 || newSel) {\n if (from > -1) {\n this.view.docView.markDirty(from, to);\n checkCSS(this.view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (this.view.docView.dirty) { this.view.updateState(this.view.state); }\n else if (!this.currentSelection.eq(sel)) { selectionToDOM(this.view); }\n this.currentSelection.set(sel);\n }\n};\n\nDOMObserver.prototype.registerMutation = function registerMutation (mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1) { return null }\n var desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n { return null }\n if (!desc || desc.ignoreMutation(mut)) { return null }\n\n if (mut.type == \"childList\") {\n for (var i = 0; i < mut.addedNodes.length; i++) { added.push(mut.addedNodes[i]); }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n { return {from: desc.posBefore, to: desc.posAfter} }\n var prev = mut.previousSibling, next = mut.nextSibling;\n if (result.ie && result.ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (var i$1 = 0; i$1 < mut.addedNodes.length; i$1++) {\n var ref = mut.addedNodes[i$1];\n var previousSibling = ref.previousSibling;\n var nextSibling = ref.nextSibling;\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0) { prev = previousSibling; }\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0) { next = nextSibling; }\n }\n }\n var fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n var from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n var toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n var to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return {from: from, to: to}\n } else if (mut.type == \"attributes\") {\n return {from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border}\n } else { // \"characterData\"\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n }\n }\n};\n\nvar cssChecked = false;\n\nfunction checkCSS(view) {\n if (cssChecked) { return }\n cssChecked = true;\n if (getComputedStyle(view.dom).whiteSpace == \"normal\")\n { console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\"); }\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nvar handlers = {}, editHandlers = {};\n\nfunction initInput(view) {\n view.shiftKey = false;\n view.mouseDown = null;\n view.lastKeyCode = null;\n view.lastKeyCodeTime = 0;\n view.lastClick = {time: 0, x: 0, y: 0, type: \"\"};\n view.lastSelectionOrigin = null;\n view.lastSelectionTime = 0;\n\n view.lastIOSEnter = 0;\n view.lastIOSEnterFallbackTimeout = null;\n view.lastAndroidDelete = 0;\n\n view.composing = false;\n view.composingTimeout = null;\n view.compositionNodes = [];\n view.compositionEndedAt = -2e8;\n\n view.domObserver = new DOMObserver(view, function (from, to, typeOver, added) { return readDOMChange(view, from, to, typeOver, added); });\n view.domObserver.start();\n // Used by hacks like the beforeinput handler to check whether anything happened in the DOM\n view.domChangeCount = 0;\n\n view.eventHandlers = Object.create(null);\n var loop = function ( event ) {\n var handler = handlers[event];\n view.dom.addEventListener(event, view.eventHandlers[event] = function (event) {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n { handler(view, event); }\n });\n };\n\n for (var event in handlers) loop( event );\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (result.safari) { view.dom.addEventListener(\"input\", function () { return null; }); }\n\n ensureListeners(view);\n}\n\nfunction setSelectionOrigin(view, origin) {\n view.lastSelectionOrigin = origin;\n view.lastSelectionTime = Date.now();\n}\n\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (var type in view.eventHandlers)\n { view.dom.removeEventListener(type, view.eventHandlers[type]); }\n clearTimeout(view.composingTimeout);\n clearTimeout(view.lastIOSEnterFallbackTimeout);\n}\n\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", function (currentHandlers) {\n for (var type in currentHandlers) { if (!view.eventHandlers[type])\n { view.dom.addEventListener(type, view.eventHandlers[type] = function (event) { return runCustomHandler(view, event); }); } }\n });\n}\n\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", function (handlers) {\n var handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false\n })\n}\n\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles) { return true }\n if (event.defaultPrevented) { return false }\n for (var node = event.target; node != view.dom; node = node.parentNode)\n { if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n { return false } }\n return true\n}\n\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n { handlers[event.type](view, event); }\n}\n\neditHandlers.keydown = function (view, event) {\n view.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event)) { return }\n view.lastKeyCode = event.keyCode;\n view.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (result.android && result.chrome && event.keyCode == 13) { return }\n if (event.keyCode != 229) { view.domObserver.forceFlush(); }\n\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (result.ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n var now = Date.now();\n view.lastIOSEnter = now;\n view.lastIOSEnterFallbackTimeout = setTimeout(function () {\n if (view.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n view.lastIOSEnter = 0;\n }\n }, 200);\n } else if (view.someProp(\"handleKeyDown\", function (f) { return f(view, event); }) || captureKeyDown(view, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"key\");\n }\n};\n\neditHandlers.keyup = function (view, e) {\n if (e.keyCode == 16) { view.shiftKey = false; }\n};\n\neditHandlers.keypress = function (view, event) {\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || result.mac && event.metaKey) { return }\n\n if (view.someProp(\"handleKeyPress\", function (f) { return f(view, event); })) {\n event.preventDefault();\n return\n }\n\n var sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n var text = String.fromCharCode(event.charCode);\n if (!view.someProp(\"handleTextInput\", function (f) { return f(view, sel.$from.pos, sel.$to.pos, text); }))\n { view.dispatch(view.state.tr.insertText(text).scrollIntoView()); }\n event.preventDefault();\n }\n};\n\nfunction eventCoords(event) { return {left: event.clientX, top: event.clientY} }\n\nfunction isNear(event, click) {\n var dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100\n}\n\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1) { return false }\n var $pos = view.state.doc.resolve(inside);\n var loop = function ( i ) {\n if (view.someProp(propName, function (f) { return i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false); }))\n { return { v: true } }\n };\n\n for (var i = $pos.depth + 1; i > 0; i--) {\n var returned = loop( i );\n\n if ( returned ) return returned.v;\n }\n return false\n}\n\nfunction updateSelection(view, selection, origin) {\n if (!view.focused) { view.focus(); }\n var tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\") { tr.setMeta(\"pointer\", true); }\n view.dispatch(tr);\n}\n\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1) { return false }\n var $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true\n }\n return false\n}\n\nfunction selectClickedNode(view, inside) {\n if (inside == -1) { return false }\n var sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection) { selectedNode = sel.node; }\n\n var $pos = view.state.doc.resolve(inside);\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n { selectAt = $pos.before(sel.$from.depth); }\n else\n { selectAt = $pos.before(i); }\n break\n }\n }\n\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true\n } else {\n return false\n }\n}\n\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", function (f) { return f(view, pos, event); }) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside))\n}\n\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", function (f) { return f(view, pos, event); })\n}\n\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", function (f) { return f(view, pos, event); }) ||\n defaultTripleClick(view, inside, event)\n}\n\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0) { return false }\n var doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true\n }\n return false\n }\n\n var $pos = doc.resolve(inside);\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n var nodePos = $pos.before(i);\n if (node.inlineContent)\n { updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\"); }\n else if (NodeSelection.isSelectable(node))\n { updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\"); }\n else\n { continue }\n return true\n }\n}\n\nfunction forceDOMFlush(view) {\n return endComposition(view)\n}\n\nvar selectNodeModifier = result.mac ? \"metaKey\" : \"ctrlKey\";\n\nhandlers.mousedown = function (view, event) {\n view.shiftKey = event.shiftKey;\n var flushed = forceDOMFlush(view);\n var now = Date.now(), type = \"singleClick\";\n if (now - view.lastClick.time < 500 && isNear(event, view.lastClick) && !event[selectNodeModifier]) {\n if (view.lastClick.type == \"singleClick\") { type = \"doubleClick\"; }\n else if (view.lastClick.type == \"doubleClick\") { type = \"tripleClick\"; }\n }\n view.lastClick = {time: now, x: event.clientX, y: event.clientY, type: type};\n\n var pos = view.posAtCoords(eventCoords(event));\n if (!pos) { return }\n\n if (type == \"singleClick\") {\n if (view.mouseDown) { view.mouseDown.done(); }\n view.mouseDown = new MouseDown(view, pos, event, flushed);\n } else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\n\nvar MouseDown = function MouseDown(view, pos, event, flushed) {\n var this$1 = this;\n\n this.view = view;\n this.startDoc = view.state.doc;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.selectNode = event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n this.delayedSelectionSync = false;\n\n var targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n } else {\n var $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n\n this.mightDrag = null;\n\n var target = flushed ? null : event.target;\n var targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc ? targetDesc.dom : null;\n\n var ref = view.state;\n var selection = ref.selection;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n { this.mightDrag = {node: targetNode,\n pos: targetPos,\n addAttr: this.target && !this.target.draggable,\n setUneditable: this.target && result.gecko && !this.target.hasAttribute(\"contentEditable\")}; }\n\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr) { this.target.draggable = true; }\n if (this.mightDrag.setUneditable)\n { setTimeout(function () {\n if (this$1.view.mouseDown == this$1) { this$1.target.setAttribute(\"contentEditable\", \"false\"); }\n }, 20); }\n this.view.domObserver.start();\n }\n\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n};\n\nMouseDown.prototype.done = function done () {\n var this$1 = this;\n\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr) { this.target.removeAttribute(\"draggable\"); }\n if (this.mightDrag.setUneditable) { this.target.removeAttribute(\"contentEditable\"); }\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync) { setTimeout(function () { return selectionToDOM(this$1.view); }); }\n this.view.mouseDown = null;\n};\n\nMouseDown.prototype.up = function up (event) {\n this.done();\n\n if (!this.view.dom.contains(event.target.nodeType == 3 ? event.target.parentNode : event.target))\n { return }\n\n var pos = this.pos;\n if (this.view.state.doc != this.startDoc) { pos = this.view.posAtCoords(eventCoords(event)); }\n\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n } else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n } else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (result.safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (result.chrome && !(this.view.state.selection instanceof TextSelection) &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from),\n Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n } else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n};\n\nMouseDown.prototype.move = function move (event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n { this.allowDefault = true; }\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0) { this.done(); }\n};\n\nhandlers.touchdown = function (view) {\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\n\nhandlers.contextmenu = function (view) { return forceDOMFlush(view); };\n\nfunction inOrNearComposition(view, event) {\n if (view.composing) { return true }\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (result.safari && Math.abs(event.timeStamp - view.compositionEndedAt) < 500) {\n view.compositionEndedAt = -2e8;\n return true\n }\n return false\n}\n\n// Drop active composition after 5 seconds of inactivity on Android\nvar timeoutComposition = result.android ? 5000 : -1;\n\neditHandlers.compositionstart = editHandlers.compositionupdate = function (view) {\n if (!view.composing) {\n view.domObserver.flush();\n var state = view.state;\n var $pos = state.selection.$from;\n if (state.selection.empty &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(function (m) { return m.type.spec.inclusive === false; })))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n } else {\n endComposition(view);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (result.gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n var sel = view.root.getSelection();\n for (var node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n var before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before) { break }\n if (before.nodeType == 3) {\n sel.collapse(before, before.nodeValue.length);\n break\n } else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\n\neditHandlers.compositionend = function (view, event) {\n if (view.composing) {\n view.composing = false;\n view.compositionEndedAt = event.timeStamp;\n scheduleComposeEnd(view, 20);\n }\n};\n\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.composingTimeout);\n if (delay > -1) { view.composingTimeout = setTimeout(function () { return endComposition(view); }, delay); }\n}\n\nfunction clearComposition(view) {\n if (view.composing) {\n view.composing = false;\n view.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.compositionNodes.length > 0) { view.compositionNodes.pop().markParentsDirty(); }\n}\n\nfunction timestampFromCustomEvent() {\n var event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp\n}\n\nfunction endComposition(view, forceUpdate) {\n if (result.android && view.domObserver.flushingSoon >= 0) { return }\n view.domObserver.forceFlush();\n clearComposition(view);\n if (forceUpdate || view.docView.dirty) {\n var sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection)) { view.dispatch(view.state.tr.setSelection(sel)); }\n else { view.updateState(view.state); }\n return true\n }\n return false\n}\n\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode) { return }\n var wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n var sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(function () {\n if (wrap.parentNode) { wrap.parentNode.removeChild(wrap); }\n view.focus();\n }, 50);\n}\n\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nvar brokenClipboardAPI = (result.ie && result.ie_version < 15) ||\n (result.ios && result.webkit_version < 604);\n\nhandlers.copy = editHandlers.cut = function (view, e) {\n var sel = view.state.selection, cut = e.type == \"cut\";\n if (sel.empty) { return }\n\n // IE and Edge's clipboard interface is completely broken\n var data = brokenClipboardAPI ? null : e.clipboardData;\n var slice = sel.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n if (data) {\n e.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n } else {\n captureCopy(view, dom);\n }\n if (cut) { view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\")); }\n};\n\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null\n}\n\nfunction capturePaste(view, e) {\n if (!view.dom.parentNode) { return }\n var plainText = view.shiftKey || view.state.selection.$from.parent.type.spec.code;\n var target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText) { target.contentEditable = \"true\"; }\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n setTimeout(function () {\n view.focus();\n if (target.parentNode) { target.parentNode.removeChild(target); }\n if (plainText) { doPaste(view, target.value, null, e); }\n else { doPaste(view, target.textContent, target.innerHTML, e); }\n }, 50);\n}\n\nfunction doPaste(view, text, html, e) {\n var slice = parseFromClipboard(view, text, html, view.shiftKey, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", function (f) { return f(view, e, slice || Slice.empty); })) { return true }\n if (!slice) { return false }\n\n var singleNode = sliceSingleNode(slice);\n var tr = singleNode ? view.state.tr.replaceSelectionWith(singleNode, view.shiftKey) : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true\n}\n\neditHandlers.paste = function (view, e) {\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !result.android) { return }\n var data = brokenClipboardAPI ? null : e.clipboardData;\n if (data && doPaste(view, data.getData(\"text/plain\"), data.getData(\"text/html\"), e)) { e.preventDefault(); }\n else { capturePaste(view, e); }\n};\n\nvar Dragging = function Dragging(slice, move) {\n this.slice = slice;\n this.move = move;\n};\n\nvar dragCopyModifier = result.mac ? \"altKey\" : \"ctrlKey\";\n\nhandlers.dragstart = function (view, e) {\n var mouseDown = view.mouseDown;\n if (mouseDown) { mouseDown.done(); }\n if (!e.dataTransfer) { return }\n\n var sel = view.state.selection;\n var pos = sel.empty ? null : view.posAtCoords(eventCoords(e));\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1: sel.to)) ; else if (mouseDown && mouseDown.mightDrag) {\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos)));\n } else if (e.target && e.target.nodeType == 1) {\n var desc = view.docView.nearestDesc(e.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n { view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, desc.posBefore))); }\n }\n var slice = view.state.selection.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n e.dataTransfer.clearData();\n e.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n e.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI) { e.dataTransfer.setData(\"text/plain\", text); }\n view.dragging = new Dragging(slice, !e[dragCopyModifier]);\n};\n\nhandlers.dragend = function (view) {\n var dragging = view.dragging;\n window.setTimeout(function () {\n if (view.dragging == dragging) { view.dragging = null; }\n }, 50);\n};\n\neditHandlers.dragover = editHandlers.dragenter = function (_, e) { return e.preventDefault(); };\n\neditHandlers.drop = function (view, e) {\n var dragging = view.dragging;\n view.dragging = null;\n\n if (!e.dataTransfer) { return }\n\n var eventPos = view.posAtCoords(eventCoords(e));\n if (!eventPos) { return }\n var $mouse = view.state.doc.resolve(eventPos.pos);\n if (!$mouse) { return }\n var slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", function (f) { slice = f(slice); });\n } else {\n slice = parseFromClipboard(view, e.dataTransfer.getData(brokenClipboardAPI ? \"Text\" : \"text/plain\"),\n brokenClipboardAPI ? null : e.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n var move = dragging && !e[dragCopyModifier];\n if (view.someProp(\"handleDrop\", function (f) { return f(view, e, slice || Slice.empty, move); })) {\n e.preventDefault();\n return\n }\n if (!slice) { return }\n\n e.preventDefault();\n var insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null) { insertPos = $mouse.pos; }\n\n var tr = view.state.tr;\n if (move) { tr.deleteSelection(); }\n\n var pos = tr.mapping.map(insertPos);\n var isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n var beforeInsert = tr.doc;\n if (isNode)\n { tr.replaceRangeWith(pos, pos, slice.content.firstChild); }\n else\n { tr.replaceRange(pos, pos, slice); }\n if (tr.doc.eq(beforeInsert)) { return }\n\n var $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n } else {\n var end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach(function (_from, _to, _newFrom, newTo) { return end = newTo; });\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\n\nhandlers.focus = function (view) {\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(function () {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.root.getSelection()))\n { selectionToDOM(view); }\n }, 20);\n }\n};\n\nhandlers.blur = function (view, e) {\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (e.relatedTarget && view.dom.contains(e.relatedTarget))\n { view.domObserver.currentSelection.set({}); }\n view.focused = false;\n }\n};\n\nhandlers.beforeinput = function (view, event) {\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (result.chrome && result.android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n var domChangeCount = view.domChangeCount;\n setTimeout(function () {\n if (view.domChangeCount != domChangeCount) { return } // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(8, \"Backspace\")); })) { return }\n var ref = view.state.selection;\n var $cursor = ref.$cursor;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0) { view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView()); }\n }, 50);\n }\n};\n\n// Make sure all handlers get registered\nfor (var prop in editHandlers) { handlers[prop] = editHandlers[prop]; }\n\nfunction compareObjs(a, b) {\n if (a == b) { return true }\n for (var p in a) { if (a[p] !== b[p]) { return false } }\n for (var p$1 in b) { if (!(p$1 in a)) { return false } }\n return true\n}\n\nvar WidgetType = function WidgetType(toDOM, spec) {\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n this.toDOM = toDOM;\n};\n\nWidgetType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var ref = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n var pos = ref.pos;\n var deleted = ref.deleted;\n return deleted ? null : new Decoration(pos - offset, pos - offset, this)\n};\n\nWidgetType.prototype.valid = function valid () { return true };\n\nWidgetType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)))\n};\n\nWidgetType.prototype.destroy = function destroy (node) {\n if (this.spec.destroy) { this.spec.destroy(node); }\n};\n\nvar InlineType = function InlineType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nInlineType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n var to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this)\n};\n\nInlineType.prototype.valid = function valid (_, span) { return span.from < span.to };\n\nInlineType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec))\n};\n\nInlineType.is = function is (span) { return span.type instanceof InlineType };\n\nvar NodeType = function NodeType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nNodeType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted) { return null }\n var to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos) { return null }\n return new Decoration(from.pos - offset, to.pos - offset, this)\n};\n\nNodeType.prototype.valid = function valid (node, span) {\n var ref = node.content.findIndex(span.from);\n var index = ref.index;\n var offset = ref.offset;\n var child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to\n};\n\nNodeType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec))\n};\n\n// ::- Decoration objects can be provided to the view through the\n// [`decorations` prop](#view.EditorProps.decorations). They come in\n// several variants—see the static members of this class for details.\nvar Decoration = function Decoration(from, to, type) {\n // :: number\n // The start position of the decoration.\n this.from = from;\n // :: number\n // The end position. Will be the same as `from` for [widget\n // decorations](#view.Decoration^widget).\n this.to = to;\n this.type = type;\n};\n\nvar prototypeAccessors$1 = { spec: { configurable: true },inline: { configurable: true } };\n\nDecoration.prototype.copy = function copy (from, to) {\n return new Decoration(from, to, this.type)\n};\n\nDecoration.prototype.eq = function eq (other, offset) {\n if ( offset === void 0 ) offset = 0;\n\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to\n};\n\nDecoration.prototype.map = function map (mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset)\n};\n\n// :: (number, union<(view: EditorView, getPos: () → number) → dom.Node, dom.Node>, ?Object) → Decoration\n// Creates a widget decoration, which is a DOM node that's shown in\n// the document at the given position. It is recommended that you\n// delay rendering the widget by passing a function that will be\n// called when the widget is actually drawn in a view, but you can\n// also directly pass a DOM node. `getPos` can be used to find the\n// widget's current document position.\n//\n// spec::- These options are supported:\n//\n// side:: ?number\n// Controls which side of the document position this widget is\n// associated with. When negative, it is drawn before a cursor\n// at its position, and content inserted at that position ends\n// up after the widget. When zero (the default) or positive, the\n// widget is drawn after the cursor and content inserted there\n// ends up before the widget.\n//\n// When there are multiple widgets at a given position, their\n// `side` values determine the order in which they appear. Those\n// with lower values appear first. The ordering of widgets with\n// the same `side` value is unspecified.\n//\n// When `marks` is null, `side` also determines the marks that\n// the widget is wrapped in—those of the node before when\n// negative, those of the node after when positive.\n//\n// marks:: ?[Mark]\n// The precise set of marks to draw around the widget.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to control which DOM events, when they bubble out\n// of this widget, the editor view should ignore.\n//\n// ignoreSelection:: ?bool\n// When set (defaults to false), selection changes inside the\n// widget are ignored, and don't cause ProseMirror to try and\n// re-sync the selection with its selection state.\n//\n// key:: ?string\n// When comparing decorations of this type (in order to decide\n// whether it needs to be redrawn), ProseMirror will by default\n// compare the widget DOM node by identity. If you pass a key,\n// that key will be compared instead, which can be useful when\n// you generate decorations on the fly and don't want to store\n// and reuse DOM nodes. Make sure that any widgets with the same\n// key are interchangeable—if widgets differ in, for example,\n// the behavior of some event handler, they should get\n// different keys.\n//\n// destroy:: ?(node: dom.Node)\n// Called when the widget decoration is removed as a result of\n// mapping\nDecoration.widget = function widget (pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec))\n};\n\n// :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates an inline decoration, which adds the given attributes to\n// each inline node between `from` and `to`.\n//\n// spec::- These options are recognized:\n//\n// inclusiveStart:: ?bool\n// Determines how the left side of the decoration is\n// [mapped](#transform.Position_Mapping) when content is\n// inserted directly at that position. By default, the decoration\n// won't include the new content, but you can set this to `true`\n// to make it inclusive.\n//\n// inclusiveEnd:: ?bool\n// Determines how the right side of the decoration is mapped.\n// See\n// [`inclusiveStart`](#view.Decoration^inline^spec.inclusiveStart).\nDecoration.inline = function inline (from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec))\n};\n\n// :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates a node decoration. `from` and `to` should point precisely\n// before and after a node in the document. That node, and only that\n// node, will receive the given attributes.\n//\n// spec::-\n//\n// Optional information to store with the decoration. It\n// is also used when comparing decorators for equality.\nDecoration.node = function node (from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec))\n};\n\n// :: Object\n// The spec provided when creating this decoration. Can be useful\n// if you've stored extra information in that object.\nprototypeAccessors$1.spec.get = function () { return this.type.spec };\n\nprototypeAccessors$1.inline.get = function () { return this.type instanceof InlineType };\n\nObject.defineProperties( Decoration.prototype, prototypeAccessors$1 );\n\n// DecorationAttrs:: interface\n// A set of attributes to add to a decorated node. Most properties\n// simply directly correspond to DOM attributes of the same name,\n// which will be set to the property's value. These are exceptions:\n//\n// class:: ?string\n// A CSS class name or a space-separated set of class names to be\n// _added_ to the classes that the node already had.\n//\n// style:: ?string\n// A string of CSS to be _added_ to the node's existing `style` property.\n//\n// nodeName:: ?string\n// When non-null, the target node is wrapped in a DOM element of\n// this type (and the other attributes are applied to this element).\n\nvar none = [], noSpec = {};\n\n// :: class extends DecorationSource\n// A collection of [decorations](#view.Decoration), organized in\n// such a way that the drawing algorithm can efficiently use and\n// compare them. This is a persistent data structure—it is not\n// modified, updates create a new value.\nvar DecorationSet = function DecorationSet(local, children) {\n this.local = local && local.length ? local : none;\n this.children = children && children.length ? children : none;\n};\n\n// :: (Node, [Decoration]) → DecorationSet\n// Create a set of decorations, using the structure of the given\n// document.\nDecorationSet.create = function create (doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty\n};\n\n// :: (?number, ?number, ?(spec: Object) → bool) → [Decoration]\n// Find all decorations in this set which touch the given range\n// (including decorations that start or end directly at the\n// boundaries) and match the given predicate on their spec. When\n// `start` and `end` are omitted, all decorations in the set are\n// considered. When `predicate` isn't given, all decorations are\n// assumed to match.\nDecorationSet.prototype.find = function find (start, end, predicate) {\n var result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result\n};\n\nDecorationSet.prototype.findInner = function findInner (start, end, result, offset, predicate) {\n for (var i = 0; i < this.local.length; i++) {\n var span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n { result.push(span.copy(span.from + offset, span.to + offset)); }\n }\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3) {\n if (this.children[i$1] < end && this.children[i$1 + 1] > start) {\n var childOff = this.children[i$1] + 1;\n this.children[i$1 + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n};\n\n// :: (Mapping, Node, ?Object) → DecorationSet\n// Map the set of decorations in response to a change in the\n// document.\n//\n// options::- An optional set of options.\n//\n// onRemove:: ?(decorationSpec: Object)\n// When given, this function will be called for each decoration\n// that gets dropped as a result of the mapping, passing the\n// spec of that decoration.\nDecorationSet.prototype.map = function map (mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0) { return this }\n return this.mapInner(mapping, doc, 0, 0, options || noSpec)\n};\n\nDecorationSet.prototype.mapInner = function mapInner (mapping, node, offset, oldOffset, options) {\n var newLocal;\n for (var i = 0; i < this.local.length; i++) {\n var mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped)) { (newLocal || (newLocal = [])).push(mapped); }\n else if (options.onRemove) { options.onRemove(this.local[i].spec); }\n }\n\n if (this.children.length)\n { return mapChildren(this.children, newLocal, mapping, node, offset, oldOffset, options) }\n else\n { return newLocal ? new DecorationSet(newLocal.sort(byPos)) : empty }\n};\n\n// :: (Node, [Decoration]) → DecorationSet\n// Add the given array of decorations to the ones in the set,\n// producing a new set. Needs access to the current document to\n// create the appropriate tree structure.\nDecorationSet.prototype.add = function add (doc, decorations) {\n if (!decorations.length) { return this }\n if (this == empty) { return DecorationSet.create(doc, decorations) }\n return this.addInner(doc, decorations, 0)\n};\n\nDecorationSet.prototype.addInner = function addInner (doc, decorations, offset) {\n var this$1 = this;\n\n var children, childIndex = 0;\n doc.forEach(function (childNode, childOffset) {\n var baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset))) { return }\n\n if (!children) { children = this$1.children.slice(); }\n while (childIndex < children.length && children[childIndex] < childOffset) { childIndex += 3; }\n if (children[childIndex] == childOffset)\n { children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1); }\n else\n { children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec)); }\n childIndex += 3;\n });\n\n var local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (var i = 0; i < local.length; i++) { if (!local[i].type.valid(doc, local[i])) { local.splice(i--, 1); } }\n\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local,\n children || this.children)\n};\n\n// :: ([Decoration]) → DecorationSet\n// Create a new set that contains the decorations in this set, minus\n// the ones in the given array.\nDecorationSet.prototype.remove = function remove (decorations) {\n if (decorations.length == 0 || this == empty) { return this }\n return this.removeInner(decorations, 0)\n};\n\nDecorationSet.prototype.removeInner = function removeInner (decorations, offset) {\n var children = this.children, local = this.local;\n for (var i = 0; i < children.length; i += 3) {\n var found = (void 0), from = children[i] + offset, to = children[i + 1] + offset;\n for (var j = 0, span = (void 0); j < decorations.length; j++) { if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null\n ;(found || (found = [])).push(span);\n }\n } }\n if (!found) { continue }\n if (children == this.children) { children = this.children.slice(); }\n var removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n } else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length) { for (var i$1 = 0, span$1 = (void 0); i$1 < decorations.length; i$1++) { if (span$1 = decorations[i$1]) {\n for (var j$1 = 0; j$1 < local.length; j$1++) { if (local[j$1].eq(span$1, offset)) {\n if (local == this.local) { local = this.local.slice(); }\n local.splice(j$1--, 1);\n } }\n } } }\n if (children == this.children && local == this.local) { return this }\n return local.length || children.length ? new DecorationSet(local, children) : empty\n};\n\nDecorationSet.prototype.forChild = function forChild (offset, node) {\n if (this == empty) { return this }\n if (node.isLeaf) { return DecorationSet.empty }\n\n var child, local;\n for (var i = 0; i < this.children.length; i += 3) { if (this.children[i] >= offset) {\n if (this.children[i] == offset) { child = this.children[i + 2]; }\n break\n } }\n var start = offset + 1, end = start + node.content.size;\n for (var i$1 = 0; i$1 < this.local.length; i$1++) {\n var dec = this.local[i$1];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n var from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to) { (local || (local = [])).push(dec.copy(from, to)); }\n }\n }\n if (local) {\n var localSet = new DecorationSet(local.sort(byPos));\n return child ? new DecorationGroup([localSet, child]) : localSet\n }\n return child || empty\n};\n\nDecorationSet.prototype.eq = function eq (other) {\n if (this == other) { return true }\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length) { return false }\n for (var i = 0; i < this.local.length; i++)\n { if (!this.local[i].eq(other.local[i])) { return false } }\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3)\n { if (this.children[i$1] != other.children[i$1] ||\n this.children[i$1 + 1] != other.children[i$1 + 1] ||\n !this.children[i$1 + 2].eq(other.children[i$1 + 2])) { return false } }\n return true\n};\n\nDecorationSet.prototype.locals = function locals (node) {\n return removeOverlap(this.localsInner(node))\n};\n\nDecorationSet.prototype.localsInner = function localsInner (node) {\n if (this == empty) { return none }\n if (node.inlineContent || !this.local.some(InlineType.is)) { return this.local }\n var result = [];\n for (var i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n { result.push(this.local[i]); }\n }\n return result\n};\n\n// DecorationSource:: interface\n// An object that can [provide](#view.EditorProps.decorations)\n// decorations. Implemented by [`DecorationSet`](#view.DecorationSet),\n// and passed to [node views](#view.EditorProps.nodeViews).\n//\n// map:: (Mapping, Node) → DecorationSource\n// Map the set of decorations in response to a change in the\n// document.\n\nvar empty = new DecorationSet();\n\n// :: DecorationSet\n// The empty set of decorations.\nDecorationSet.empty = empty;\n\nDecorationSet.removeOverlap = removeOverlap;\n\n// :- An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nvar DecorationGroup = function DecorationGroup(members) {\n this.members = members;\n};\n\nDecorationGroup.prototype.map = function map (mapping, doc) {\n var mappedDecos = this.members.map(\n function (member) { return member.map(mapping, doc, noSpec); }\n );\n return DecorationGroup.from(mappedDecos)\n};\n\nDecorationGroup.prototype.forChild = function forChild (offset, child) {\n if (child.isLeaf) { return DecorationSet.empty }\n var found = [];\n for (var i = 0; i < this.members.length; i++) {\n var result = this.members[i].forChild(offset, child);\n if (result == empty) { continue }\n if (result instanceof DecorationGroup) { found = found.concat(result.members); }\n else { found.push(result); }\n }\n return DecorationGroup.from(found)\n};\n\nDecorationGroup.prototype.eq = function eq (other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length) { return false }\n for (var i = 0; i < this.members.length; i++)\n { if (!this.members[i].eq(other.members[i])) { return false } }\n return true\n};\n\nDecorationGroup.prototype.locals = function locals (node) {\n var result, sorted = true;\n for (var i = 0; i < this.members.length; i++) {\n var locals = this.members[i].localsInner(node);\n if (!locals.length) { continue }\n if (!result) {\n result = locals;\n } else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (var j = 0; j < locals.length; j++) { result.push(locals[j]); }\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none\n};\n\n// : ([DecorationSet]) → union\n// Create a group for the given array of decoration sets, or return\n// a single set when possible.\nDecorationGroup.from = function from (members) {\n switch (members.length) {\n case 0: return empty\n case 1: return members[0]\n default: return new DecorationGroup(members)\n }\n};\n\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n var children = oldChildren.slice();\n\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n var shift = function (oldStart, oldEnd, newStart, newEnd) {\n for (var i = 0; i < children.length; i += 3) {\n var end = children[i + 1], dSize = (void 0);\n if (end == -1 || oldStart > end + oldOffset) { continue }\n if (oldEnd >= children[i] + oldOffset) {\n children[i + 1] = -1;\n } else if (newStart >= offset && (dSize = (newEnd - newStart) - (oldEnd - oldStart))) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n };\n for (var i = 0; i < mapping.maps.length; i++) { mapping.maps[i].forEach(shift); }\n\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n var mustRebuild = false;\n for (var i$1 = 0; i$1 < children.length; i$1 += 3) { if (children[i$1 + 1] == -1) { // Touched nodes\n var from = mapping.map(oldChildren[i$1] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue\n }\n // Must read oldChildren because children was tagged with -1\n var to = mapping.map(oldChildren[i$1 + 1] + oldOffset, -1), toLocal = to - offset;\n var ref = node.content.findIndex(fromLocal);\n var index = ref.index;\n var childOffset = ref.offset;\n var childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n var mapped = children[i$1 + 2].mapInner(mapping, childNode, from + 1, oldChildren[i$1] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i$1] = fromLocal;\n children[i$1 + 1] = toLocal;\n children[i$1 + 2] = mapped;\n } else {\n children[i$1 + 1] = -2;\n mustRebuild = true;\n }\n } else {\n mustRebuild = true;\n }\n } }\n\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n var decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal || [], mapping,\n offset, oldOffset, options);\n var built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (var i$2 = 0; i$2 < children.length; i$2 += 3) { if (children[i$2 + 1] < 0) {\n children.splice(i$2, 3);\n i$2 -= 3;\n } }\n for (var i$3 = 0, j = 0; i$3 < built.children.length; i$3 += 3) {\n var from$1 = built.children[i$3];\n while (j < children.length && children[j] < from$1) { j += 3; }\n children.splice(j, 0, built.children[i$3], built.children[i$3 + 1], built.children[i$3 + 2]);\n }\n }\n\n return new DecorationSet(newLocal && newLocal.sort(byPos), children)\n}\n\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length) { return spans }\n var result = [];\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result\n}\n\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (var i = 0; i < set.local.length; i++) {\n var mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped) { decorations.push(mapped); }\n else if (options.onRemove) { options.onRemove(set.local[i].spec); }\n }\n for (var i$1 = 0; i$1 < set.children.length; i$1 += 3)\n { gather(set.children[i$1 + 2], set.children[i$1] + oldOffset + 1); }\n }\n for (var i = 0; i < children.length; i += 3) { if (children[i + 1] == -1)\n { gather(children[i + 2], oldChildren[i] + oldOffset + 1); } }\n\n return decorations\n}\n\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf) { return null }\n var end = offset + node.nodeSize, found = null;\n for (var i = 0, span = (void 0); i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n(found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found\n}\n\nfunction withoutNulls(array) {\n var result = [];\n for (var i = 0; i < array.length; i++)\n { if (array[i] != null) { result.push(array[i]); } }\n return result\n}\n\n// : ([Decoration], Node, number) → DecorationSet\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n var children = [], hasNulls = false;\n node.forEach(function (childNode, localStart) {\n var found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n var subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n { children.push(localStart, localStart + childNode.nodeSize, subtree); }\n }\n });\n var locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (var i = 0; i < locals.length; i++) { if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove) { options.onRemove(locals[i].spec); }\n locals.splice(i--, 1);\n } }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty\n}\n\n// : (Decoration, Decoration) → number\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to\n}\n\n// : ([Decoration]) → [Decoration]\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n var working = spans;\n for (var i = 0; i < working.length - 1; i++) {\n var span = working[i];\n if (span.from != span.to) { for (var j = i + 1; j < working.length; j++) {\n var next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans) { working = spans.slice(); }\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue\n } else {\n if (next.from < span.to) {\n if (working == spans) { working = spans.slice(); }\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break\n }\n } }\n }\n return working\n}\n\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0) { i++; }\n array.splice(i, 0, deco);\n}\n\n// : (EditorView) → union\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n var found = [];\n view.someProp(\"decorations\", function (f) {\n var result = f(view.state);\n if (result && result != empty) { found.push(result); }\n });\n if (view.cursorWrapper)\n { found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco])); }\n return DecorationGroup.from(found)\n}\n\n// ::- An editor view manages the DOM structure that represents an\n// editable document. Its state and behavior are determined by its\n// [props](#view.DirectEditorProps).\nvar EditorView = function EditorView(place, props) {\n this._props = props;\n // :: EditorState\n // The view's current [state](#state.EditorState).\n this.state = props.state;\n\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n\n this.dispatch = this.dispatch.bind(this);\n\n this._root = null;\n this.focused = false;\n // Kludge used to work around a Chrome bug\n this.trackWrites = null;\n\n // :: dom.Element\n // An editable DOM node containing the document. (You probably\n // should not directly interfere with its content.)\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild) { place.appendChild(this.dom); }\n else if (place.apply) { place(this.dom); }\n else if (place.mount) { this.mounted = true; }\n }\n\n // :: bool\n // Indicates whether the editor is currently [editable](#view.EditorProps.editable).\n this.editable = getEditable(this);\n this.markCursor = null;\n this.cursorWrapper = null;\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n\n this.lastSelectedViewDesc = null;\n // :: ?{slice: Slice, move: bool}\n // When editor content is being dragged, this object contains\n // information about the dragged slice and whether it is being\n // copied or moved. At any other time, it is null.\n this.dragging = null;\n\n initInput(this);\n\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n this.updatePluginViews();\n};\n\nvar prototypeAccessors$2 = { props: { configurable: true },root: { configurable: true },isDestroyed: { configurable: true } };\n\n// composing:: boolean\n// Holds `true` when a\n// [composition](https://developer.mozilla.org/en-US/docs/Mozilla/IME_handling_guide)\n// is active.\n\n// :: DirectEditorProps\n// The view's current [props](#view.EditorProps).\nprototypeAccessors$2.props.get = function () {\n if (this._props.state != this.state) {\n var prev = this._props;\n this._props = {};\n for (var name in prev) { this._props[name] = prev[name]; }\n this._props.state = this.state;\n }\n return this._props\n};\n\n// :: (DirectEditorProps)\n// Update the view's props. Will immediately cause an update to\n// the DOM.\nEditorView.prototype.update = function update (props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents) { ensureListeners(this); }\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, true);\n};\n\n// :: (DirectEditorProps)\n// Update the view by updating existing props object with the object\n// given as argument. Equivalent to `view.update(Object.assign({},\n// view.props, props))`.\nEditorView.prototype.setProps = function setProps (props) {\n var updated = {};\n for (var name in this._props) { updated[name] = this._props[name]; }\n updated.state = this.state;\n for (var name$1 in props) { updated[name$1] = props[name$1]; }\n this.update(updated);\n};\n\n// :: (EditorState)\n// Update the editor's `state` prop, without touching any of the\n// other props.\nEditorView.prototype.updateState = function updateState (state) {\n this.updateStateInner(state, this.state.plugins != state.plugins);\n};\n\nEditorView.prototype.updateStateInner = function updateStateInner (state, reconfigured) {\n var this$1 = this;\n\n var prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n if (reconfigured) {\n var nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n ensureListeners(this);\n }\n\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n var innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n\n var scroll = reconfigured ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n var updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection)) { updateSel = true; }\n var oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n var forceSelUpdate = updateDoc && (result.ie || result.chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n var chromeKludge = result.chrome ? (this.trackWrites = this.root.getSelection().focusNode) : null;\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco([]);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites) { forceSelUpdate = true; }\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.mouseDown && this.domObserver.currentSelection.eq(this.root.getSelection()) && anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n } else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n\n this.updatePluginViews(prev);\n\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n } else if (scroll == \"to selection\") {\n var startDOM = this.root.getSelection().focusNode;\n if (this.someProp(\"handleScrollToSelection\", function (f) { return f(this$1); }))\n ; // Handled\n else if (state.selection instanceof NodeSelection)\n { scrollRectIntoView(this, this.docView.domAfterPos(state.selection.from).getBoundingClientRect(), startDOM); }\n else\n { scrollRectIntoView(this, this.coordsAtPos(state.selection.head, 1), startDOM); }\n } else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n};\n\nEditorView.prototype.destroyPluginViews = function destroyPluginViews () {\n var view;\n while (view = this.pluginViews.pop()) { if (view.destroy) { view.destroy(); } }\n};\n\nEditorView.prototype.updatePluginViews = function updatePluginViews (prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (var i = 0; i < this.directPlugins.length; i++) {\n var plugin = this.directPlugins[i];\n if (plugin.spec.view) { this.pluginViews.push(plugin.spec.view(this)); }\n }\n for (var i$1 = 0; i$1 < this.state.plugins.length; i$1++) {\n var plugin$1 = this.state.plugins[i$1];\n if (plugin$1.spec.view) { this.pluginViews.push(plugin$1.spec.view(this)); }\n }\n } else {\n for (var i$2 = 0; i$2 < this.pluginViews.length; i$2++) {\n var pluginView = this.pluginViews[i$2];\n if (pluginView.update) { pluginView.update(this, prevState); }\n }\n }\n};\n\n// :: (string, ?(prop: *) → *) → *\n// Goes over the values of a prop, first those provided directly,\n// then those from plugins given to the view, then from plugins in\n// the state (in order), and calls `f` every time a non-undefined\n// value is found. When `f` returns a truthy value, that is\n// immediately returned. When `f` isn't provided, it is treated as\n// the identity function (the prop value is returned directly).\nEditorView.prototype.someProp = function someProp (propName, f) {\n var prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop)) { return value }\n for (var i = 0; i < this.directPlugins.length; i++) {\n var prop$1 = this.directPlugins[i].props[propName];\n if (prop$1 != null && (value = f ? f(prop$1) : prop$1)) { return value }\n }\n var plugins = this.state.plugins;\n if (plugins) { for (var i$1 = 0; i$1 < plugins.length; i$1++) {\n var prop$2 = plugins[i$1].props[propName];\n if (prop$2 != null && (value = f ? f(prop$2) : prop$2)) { return value }\n } }\n};\n\n// :: () → bool\n// Query whether the view has focus.\nEditorView.prototype.hasFocus = function hasFocus () {\n return this.root.activeElement == this.dom\n};\n\n// :: ()\n// Focus the editor.\nEditorView.prototype.focus = function focus () {\n this.domObserver.stop();\n if (this.editable) { focusPreventScroll(this.dom); }\n selectionToDOM(this);\n this.domObserver.start();\n};\n\n// :: union\n// Get the document root in which the editor exists. This will\n// usually be the top-level `document`, but might be a [shadow\n// DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n// root if the editor is inside one.\nprototypeAccessors$2.root.get = function () {\n var cached = this._root;\n if (cached == null) { for (var search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection) { Object.getPrototypeOf(search).getSelection = function () { return document.getSelection(); }; }\n return this._root = search\n }\n } }\n return cached || document\n};\n\n// :: ({left: number, top: number}) → ?{pos: number, inside: number}\n// Given a pair of viewport coordinates, return the document\n// position that corresponds to them. May return null if the given\n// coordinates aren't inside of the editor. When an object is\n// returned, its `pos` property is the position nearest to the\n// coordinates, and its `inside` property holds the position of the\n// inner node that the position falls inside of, or -1 if it is at\n// the top level, not in any node.\nEditorView.prototype.posAtCoords = function posAtCoords$1 (coords) {\n return posAtCoords(this, coords)\n};\n\n// :: (number, number) → {left: number, right: number, top: number, bottom: number}\n// Returns the viewport rectangle at a given document position.\n// `left` and `right` will be the same number, as this returns a\n// flat cursor-ish rectangle. If the position is between two things\n// that aren't directly adjacent, `side` determines which element is\n// used. When < 0, the element before the position is used,\n// otherwise the element after.\nEditorView.prototype.coordsAtPos = function coordsAtPos$1 (pos, side) {\n if ( side === void 0 ) side = 1;\n\n return coordsAtPos(this, pos, side)\n};\n\n// :: (number, number) → {node: dom.Node, offset: number}\n// Find the DOM position that corresponds to the given document\n// position. When `side` is negative, find the position as close as\n// possible to the content before the position. When positive,\n// prefer positions close to the content after the position. When\n// zero, prefer as shallow a position as possible.\n//\n// Note that you should **not** mutate the editor's internal DOM,\n// only inspect it (and even that is usually not necessary).\nEditorView.prototype.domAtPos = function domAtPos (pos, side) {\n if ( side === void 0 ) side = 0;\n\n return this.docView.domFromPos(pos, side)\n};\n\n// :: (number) → ?dom.Node\n// Find the DOM node that represents the document node after the\n// given position. May return `null` when the position doesn't point\n// in front of a node or if the node is inside an opaque node view.\n//\n// This is intended to be able to call things like\n// `getBoundingClientRect` on that DOM node. Do **not** mutate the\n// editor DOM directly, or add styling this way, since that will be\n// immediately overriden by the editor as it redraws the node.\nEditorView.prototype.nodeDOM = function nodeDOM (pos) {\n var desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null\n};\n\n// :: (dom.Node, number, ?number) → number\n// Find the document position that corresponds to a given DOM\n// position. (Whenever possible, it is preferable to inspect the\n// document structure directly, rather than poking around in the\n// DOM, but sometimes—for example when interpreting an event\n// target—you don't have a choice.)\n//\n// The `bias` parameter can be used to influence which side of a DOM\n// node to use when the position is inside a leaf node.\nEditorView.prototype.posAtDOM = function posAtDOM (node, offset, bias) {\n if ( bias === void 0 ) bias = -1;\n\n var pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null) { throw new RangeError(\"DOM position not inside the editor\") }\n return pos\n};\n\n// :: (union<\"up\", \"down\", \"left\", \"right\", \"forward\", \"backward\">, ?EditorState) → bool\n// Find out whether the selection is at the end of a textblock when\n// moving in a given direction. When, for example, given `\"left\"`,\n// it will return true if moving left from the current cursor\n// position would leave that position's parent textblock. Will apply\n// to the view's current state by default, but it is possible to\n// pass a different state.\nEditorView.prototype.endOfTextblock = function endOfTextblock$1 (dir, state) {\n return endOfTextblock(this, state || this.state, dir)\n};\n\n// :: ()\n// Removes the editor from the DOM and destroys all [node\n// views](#view.NodeView).\nEditorView.prototype.destroy = function destroy () {\n if (!this.docView) { return }\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n } else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n};\n\n// :: boolean\n// This is true when the view has been\n// [destroyed](#view.EditorView.destroy) (and thus should not be\n// used anymore).\nprototypeAccessors$2.isDestroyed.get = function () {\n return this.docView == null\n};\n\n// Used for testing.\nEditorView.prototype.dispatchEvent = function dispatchEvent$1 (event) {\n return dispatchEvent(this, event)\n};\n\n// :: (Transaction)\n// Dispatch a transaction. Will call\n// [`dispatchTransaction`](#view.DirectEditorProps.dispatchTransaction)\n// when given, and otherwise defaults to applying the transaction to\n// the current state and calling\n// [`updateState`](#view.EditorView.updateState) with the result.\n// This method is bound to the view instance, so that it can be\n// easily passed around.\nEditorView.prototype.dispatch = function dispatch (tr) {\n var dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction) { dispatchTransaction.call(this, tr); }\n else { this.updateState(this.state.apply(tr)); }\n};\n\nObject.defineProperties( EditorView.prototype, prototypeAccessors$2 );\n\nfunction computeDocDeco(view) {\n var attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n attrs.translate = \"no\";\n\n view.someProp(\"attributes\", function (value) {\n if (typeof value == \"function\") { value = value(view.state); }\n if (value) { for (var attr in value) {\n if (attr == \"class\")\n { attrs.class += \" \" + value[attr]; }\n if (attr == \"style\") {\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n }\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n { attrs[attr] = String(value[attr]); }\n } }\n });\n\n return [Decoration.node(0, view.state.doc.content.size, attrs)]\n}\n\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n var dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n view.cursorWrapper = {dom: dom, deco: Decoration.widget(view.state.selection.head, dom, {raw: true, marks: view.markCursor})};\n } else {\n view.cursorWrapper = null;\n }\n}\n\nfunction getEditable(view) {\n return !view.someProp(\"editable\", function (value) { return value(view.state) === false; })\n}\n\nfunction selectionContextChanged(sel1, sel2) {\n var depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth)\n}\n\nfunction buildNodeViews(view) {\n var result = {};\n view.someProp(\"nodeViews\", function (obj) {\n for (var prop in obj) { if (!Object.prototype.hasOwnProperty.call(result, prop))\n { result[prop] = obj[prop]; } }\n });\n return result\n}\n\nfunction changedNodeViews(a, b) {\n var nA = 0, nB = 0;\n for (var prop in a) {\n if (a[prop] != b[prop]) { return true }\n nA++;\n }\n for (var _ in b) { nB++; }\n return nA != nB\n}\n\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n { throw new RangeError(\"Plugins passed directly to the view must not have a state component\") }\n}\n\n// EditorProps:: interface\n//\n// Props are configuration values that can be passed to an editor view\n// or included in a plugin. This interface lists the supported props.\n//\n// The various event-handling functions may all return `true` to\n// indicate that they handled the given event. The view will then take\n// care to call `preventDefault` on the event, except with\n// `handleDOMEvents`, where the handler itself is responsible for that.\n//\n// How a prop is resolved depends on the prop. Handler functions are\n// called one at a time, starting with the base props and then\n// searching through the plugins (in order of appearance) until one of\n// them returns true. For some props, the first plugin that yields a\n// value gets precedence.\n//\n// handleDOMEvents:: ?Object<(view: EditorView, event: dom.Event) → bool>\n// Can be an object mapping DOM event type names to functions that\n// handle them. Such functions will be called before any handling\n// ProseMirror does of events fired on the editable DOM element.\n// Contrary to the other event handling props, when returning true\n// from such a function, you are responsible for calling\n// `preventDefault` yourself (or not, if you want to allow the\n// default behavior).\n//\n// handleKeyDown:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Called when the editor receives a `keydown` event.\n//\n// handleKeyPress:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Handler for `keypress` events.\n//\n// handleTextInput:: ?(view: EditorView, from: number, to: number, text: string) → bool\n// Whenever the user directly input text, this handler is called\n// before the input is applied. If it returns `true`, the default\n// behavior of actually inserting the text is suppressed.\n//\n// handleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a click, from the inside out. The\n// `direct` flag will be true for the inner node.\n//\n// handleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is clicked, after `handleClickOn` handlers\n// have been called.\n//\n// handleDoubleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a double click.\n//\n// handleDoubleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is double-clicked, after `handleDoubleClickOn`.\n//\n// handleTripleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a triple click.\n//\n// handleTripleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is triple-clicked, after `handleTripleClickOn`.\n//\n// handlePaste:: ?(view: EditorView, event: dom.ClipboardEvent, slice: Slice) → bool\n// Can be used to override the behavior of pasting. `slice` is the\n// pasted content parsed by the editor, but you can directly access\n// the event to get at the raw content.\n//\n// handleDrop:: ?(view: EditorView, event: dom.Event, slice: Slice, moved: bool) → bool\n// Called when something is dropped on the editor. `moved` will be\n// true if this drop moves from the current selection (which should\n// thus be deleted).\n//\n// handleScrollToSelection:: ?(view: EditorView) → bool\n// Called when the view, after updating its state, tries to scroll\n// the selection into view. A handler function may return false to\n// indicate that it did not handle the scrolling and further\n// handlers or the default behavior should be tried.\n//\n// createSelectionBetween:: ?(view: EditorView, anchor: ResolvedPos, head: ResolvedPos) → ?Selection\n// Can be used to override the way a selection is created when\n// reading a DOM selection between the given anchor and head.\n//\n// domParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading editor changes\n// from the DOM. Defaults to calling\n// [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) on the\n// editor's schema.\n//\n// transformPastedHTML:: ?(html: string) → string\n// Can be used to transform pasted HTML text, _before_ it is parsed,\n// for example to clean it up.\n//\n// clipboardParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading content from\n// the clipboard. When not given, the value of the\n// [`domParser`](#view.EditorProps.domParser) prop is used.\n//\n// transformPastedText:: ?(text: string, plain: bool) → string\n// Transform pasted plain text. The `plain` flag will be true when\n// the text is pasted as plain text.\n//\n// clipboardTextParser:: ?(text: string, $context: ResolvedPos, plain: bool) → Slice\n// A function to parse text from the clipboard into a document\n// slice. Called after\n// [`transformPastedText`](#view.EditorProps.transformPastedText).\n// The default behavior is to split the text into lines, wrap them\n// in `

` tags, and call\n// [`clipboardParser`](#view.EditorProps.clipboardParser) on it.\n// The `plain` flag will be true when the text is pasted as plain text.\n//\n// transformPasted:: ?(Slice) → Slice\n// Can be used to transform pasted content before it is applied to\n// the document.\n//\n// nodeViews:: ?Object<(node: Node, view: EditorView, getPos: () → number, decorations: [Decoration], innerDecorations: DecorationSource) → NodeView>\n// Allows you to pass custom rendering and behavior logic for nodes\n// and marks. Should map node and mark names to constructor\n// functions that produce a [`NodeView`](#view.NodeView) object\n// implementing the node's display behavior. For nodes, the third\n// argument `getPos` is a function that can be called to get the\n// node's current position, which can be useful when creating\n// transactions to update it. For marks, the third argument is a\n// boolean that indicates whether the mark's content is inline.\n//\n// `decorations` is an array of node or inline decorations that are\n// active around the node. They are automatically drawn in the\n// normal way, and you will usually just want to ignore this, but\n// they can also be used as a way to provide context information to\n// the node view without adding it to the document itself.\n//\n// `innerDecorations` holds the decorations for the node's content.\n// You can safely ignore this if your view has no content or a\n// `contentDOM` property, since the editor will draw the decorations\n// on the content. But if you, for example, want to create a nested\n// editor with the content, it may make sense to provide it with the\n// inner decorations.\n//\n// clipboardSerializer:: ?DOMSerializer\n// The DOM serializer to use when putting content onto the\n// clipboard. If not given, the result of\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)\n// will be used.\n//\n// clipboardTextSerializer:: ?(Slice) → string\n// A function that will be called to get the text for the current\n// selection when copying text to the clipboard. By default, the\n// editor will use [`textBetween`](#model.Node.textBetween) on the\n// selected range.\n//\n// decorations:: ?(state: EditorState) → ?DecorationSource\n// A set of [document decorations](#view.Decoration) to show in the\n// view.\n//\n// editable:: ?(state: EditorState) → bool\n// When this returns false, the content of the view is not directly\n// editable.\n//\n// attributes:: ?union, (EditorState) → ?Object>\n// Control the DOM attributes of the editable element. May be either\n// an object or a function going from an editor state to an object.\n// By default, the element will get a class `\"ProseMirror\"`, and\n// will have its `contentEditable` attribute determined by the\n// [`editable` prop](#view.EditorProps.editable). Additional classes\n// provided here will be added to the class. For other attributes,\n// the value provided first (as in\n// [`someProp`](#view.EditorView.someProp)) will be used.\n//\n// scrollThreshold:: ?union\n// Determines the distance (in pixels) between the cursor and the\n// end of the visible viewport at which point, when scrolling the\n// cursor into view, scrolling takes place. Defaults to 0.\n//\n// scrollMargin:: ?union\n// Determines the extra space (in pixels) that is left above or\n// below the cursor when it is scrolled into view. Defaults to 5.\n\n// DirectEditorProps:: interface extends EditorProps\n//\n// The props object given directly to the editor view supports two\n// fields that can't be used in plugins:\n//\n// state:: EditorState\n// The current state of the editor.\n//\n// plugins:: [Plugin]\n// A set of plugins to use in the view, applying their [plugin\n// view](#state.PluginSpec.view) and\n// [props](#state.PluginSpec.props). Passing plugins with a state\n// component (a [state field](#state.PluginSpec.state) field or a\n// [transaction](#state.PluginSpec.filterTransaction) filter or\n// appender) will result in an error, since such plugins must be\n// present in the state to work.\n//\n// dispatchTransaction:: ?(tr: Transaction)\n// The callback over which to send transactions (state updates)\n// produced by the view. If you specify this, you probably want to\n// make sure this ends up calling the view's\n// [`updateState`](#view.EditorView.updateState) method with a new\n// state that has the transaction\n// [applied](#state.EditorState.apply). The callback will be bound to have\n// the view instance as its `this` binding.\n\nexport { Decoration, DecorationSet, EditorView, endComposition as __endComposition, parseFromClipboard as __parseFromClipboard, serializeForClipboard as __serializeForClipboard };\n//# sourceMappingURL=index.es.js.map\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getFlags(searchValue)\n ));\n if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","module.exports = {\n \"version\": \"0.25.0\"\n};","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","module.exports = typeof window == 'object';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","import { Node, mergeAttributes, wrappingInputRule } from '@tiptap/core';\n\nconst inputRegex = /^\\s*>\\s$/;\r\nconst Blockquote = Node.create({\r\n name: 'blockquote',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'block+',\r\n group: 'block',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n { tag: 'blockquote' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['blockquote', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setBlockquote: () => ({ commands }) => {\r\n return commands.wrapIn(this.name);\r\n },\r\n toggleBlockquote: () => ({ commands }) => {\r\n return commands.toggleWrap(this.name);\r\n },\r\n unsetBlockquote: () => ({ commands }) => {\r\n return commands.lift(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-b': () => this.editor.commands.toggleBlockquote(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n wrappingInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Blockquote, Blockquote as default, inputRegex };\n//# sourceMappingURL=tiptap-extension-blockquote.esm.js.map\n","import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';\n\nconst starInputRegex = /(?:^|\\s)((?:\\*\\*)((?:[^*]+))(?:\\*\\*))$/;\r\nconst starPasteRegex = /(?:^|\\s)((?:\\*\\*)((?:[^*]+))(?:\\*\\*))/g;\r\nconst underscoreInputRegex = /(?:^|\\s)((?:__)((?:[^__]+))(?:__))$/;\r\nconst underscorePasteRegex = /(?:^|\\s)((?:__)((?:[^__]+))(?:__))/g;\r\nconst Bold = Mark.create({\r\n name: 'bold',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'strong',\r\n },\r\n {\r\n tag: 'b',\r\n getAttrs: node => node.style.fontWeight !== 'normal' && null,\r\n },\r\n {\r\n style: 'font-weight',\r\n getAttrs: value => /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null,\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['strong', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setBold: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleBold: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetBold: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-b': () => this.editor.commands.toggleBold(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: starInputRegex,\r\n type: this.type,\r\n }),\r\n markInputRule({\r\n find: underscoreInputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: starPasteRegex,\r\n type: this.type,\r\n }),\r\n markPasteRule({\r\n find: underscorePasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Bold, Bold as default, starInputRegex, starPasteRegex, underscoreInputRegex, underscorePasteRegex };\n//# sourceMappingURL=tiptap-extension-bold.esm.js.map\n","import { Node, mergeAttributes, wrappingInputRule } from '@tiptap/core';\n\nconst inputRegex = /^\\s*([-+*])\\s$/;\r\nconst BulletList = Node.create({\r\n name: 'bulletList',\r\n addOptions() {\r\n return {\r\n itemTypeName: 'listItem',\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block list',\r\n content() {\r\n return `${this.options.itemTypeName}+`;\r\n },\r\n parseHTML() {\r\n return [\r\n { tag: 'ul' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['ul', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n toggleBulletList: () => ({ commands }) => {\r\n return commands.toggleList(this.name, this.options.itemTypeName);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-8': () => this.editor.commands.toggleBulletList(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n wrappingInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { BulletList, BulletList as default, inputRegex };\n//# sourceMappingURL=tiptap-extension-bullet-list.esm.js.map\n","import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';\n\nconst inputRegex = /(?:^|\\s)((?:`)((?:[^`]+))(?:`))$/;\r\nconst pasteRegex = /(?:^|\\s)((?:`)((?:[^`]+))(?:`))/g;\r\nconst Code = Mark.create({\r\n name: 'code',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n excludes: '_',\r\n code: true,\r\n parseHTML() {\r\n return [\r\n { tag: 'code' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['code', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setCode: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleCode: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetCode: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-e': () => this.editor.commands.toggleCode(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: pasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Code, Code as default, inputRegex, pasteRegex };\n//# sourceMappingURL=tiptap-extension-code.esm.js.map\n","import { Node, textblockTypeInputRule } from '@tiptap/core';\nimport { Plugin, PluginKey, TextSelection } from 'prosemirror-state';\n\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\r\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\r\nconst CodeBlock = Node.create({\r\n name: 'codeBlock',\r\n addOptions() {\r\n return {\r\n languageClassPrefix: 'language-',\r\n exitOnTripleEnter: true,\r\n exitOnArrowDown: true,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'text*',\r\n marks: '',\r\n group: 'block',\r\n code: true,\r\n defining: true,\r\n addAttributes() {\r\n return {\r\n language: {\r\n default: null,\r\n parseHTML: element => {\r\n var _a;\r\n const { languageClassPrefix } = this.options;\r\n const classNames = [...((_a = element.firstElementChild) === null || _a === void 0 ? void 0 : _a.classList) || []];\r\n const languages = classNames\r\n .filter(className => className.startsWith(languageClassPrefix))\r\n .map(className => className.replace(languageClassPrefix, ''));\r\n const language = languages[0];\r\n if (!language) {\r\n return null;\r\n }\r\n return language;\r\n },\r\n renderHTML: attributes => {\r\n if (!attributes.language) {\r\n return null;\r\n }\r\n return {\r\n class: this.options.languageClassPrefix + attributes.language,\r\n };\r\n },\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'pre',\r\n preserveWhitespace: 'full',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['pre', this.options.HTMLAttributes, ['code', HTMLAttributes, 0]];\r\n },\r\n addCommands() {\r\n return {\r\n setCodeBlock: attributes => ({ commands }) => {\r\n return commands.setNode(this.name, attributes);\r\n },\r\n toggleCodeBlock: attributes => ({ commands }) => {\r\n return commands.toggleNode(this.name, 'paragraph', attributes);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Alt-c': () => this.editor.commands.toggleCodeBlock(),\r\n // remove code block when at start of document or code block is empty\r\n Backspace: () => {\r\n const { empty, $anchor } = this.editor.state.selection;\r\n const isAtStart = $anchor.pos === 1;\r\n if (!empty || $anchor.parent.type.name !== this.name) {\r\n return false;\r\n }\r\n if (isAtStart || !$anchor.parent.textContent.length) {\r\n return this.editor.commands.clearNodes();\r\n }\r\n return false;\r\n },\r\n // exit node on triple enter\r\n Enter: ({ editor }) => {\r\n if (!this.options.exitOnTripleEnter) {\r\n return false;\r\n }\r\n const { state } = editor;\r\n const { selection } = state;\r\n const { $from, empty } = selection;\r\n if (!empty || $from.parent.type !== this.type) {\r\n return false;\r\n }\r\n const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;\r\n const endsWithDoubleNewline = $from.parent.textContent.endsWith('\\n\\n');\r\n if (!isAtEnd || !endsWithDoubleNewline) {\r\n return false;\r\n }\r\n return editor\r\n .chain()\r\n .command(({ tr }) => {\r\n tr.delete($from.pos - 2, $from.pos);\r\n return true;\r\n })\r\n .exitCode()\r\n .run();\r\n },\r\n // exit node on arrow down\r\n ArrowDown: ({ editor }) => {\r\n if (!this.options.exitOnArrowDown) {\r\n return false;\r\n }\r\n const { state } = editor;\r\n const { selection, doc } = state;\r\n const { $from, empty } = selection;\r\n if (!empty || $from.parent.type !== this.type) {\r\n return false;\r\n }\r\n const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;\r\n if (!isAtEnd) {\r\n return false;\r\n }\r\n const after = $from.after();\r\n if (after === undefined) {\r\n return false;\r\n }\r\n const nodeAfter = doc.nodeAt(after);\r\n if (nodeAfter) {\r\n return false;\r\n }\r\n return editor.commands.exitCode();\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n textblockTypeInputRule({\r\n find: backtickInputRegex,\r\n type: this.type,\r\n getAttributes: match => ({\r\n language: match[1],\r\n }),\r\n }),\r\n textblockTypeInputRule({\r\n find: tildeInputRegex,\r\n type: this.type,\r\n getAttributes: match => ({\r\n language: match[1],\r\n }),\r\n }),\r\n ];\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n // this plugin creates a code block for pasted content from VS Code\r\n // we can also detect the copied code language\r\n new Plugin({\r\n key: new PluginKey('codeBlockVSCodeHandler'),\r\n props: {\r\n handlePaste: (view, event) => {\r\n if (!event.clipboardData) {\r\n return false;\r\n }\r\n // don’t create a new code block within code blocks\r\n if (this.editor.isActive(this.type.name)) {\r\n return false;\r\n }\r\n const text = event.clipboardData.getData('text/plain');\r\n const vscode = event.clipboardData.getData('vscode-editor-data');\r\n const vscodeData = vscode\r\n ? JSON.parse(vscode)\r\n : undefined;\r\n const language = vscodeData === null || vscodeData === void 0 ? void 0 : vscodeData.mode;\r\n if (!text || !language) {\r\n return false;\r\n }\r\n const { tr } = view.state;\r\n // create an empty code block\r\n tr.replaceSelectionWith(this.type.create({ language }));\r\n // put cursor inside the newly created code block\r\n tr.setSelection(TextSelection.near(tr.doc.resolve(Math.max(0, tr.selection.from - 2))));\r\n // add text to code block\r\n // strip carriage return chars from text pasted as code\r\n // see: https://github.com/ProseMirror/prosemirror-view/commit/a50a6bcceb4ce52ac8fcc6162488d8875613aacd\r\n tr.insertText(text.replace(/\\r\\n?/g, '\\n'));\r\n // store meta information\r\n // this is useful for other plugins that depends on the paste event\r\n // like the paste rule plugin\r\n tr.setMeta('paste', true);\r\n view.dispatch(tr);\r\n return true;\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nexport { CodeBlock, backtickInputRegex, CodeBlock as default, tildeInputRegex };\n//# sourceMappingURL=tiptap-extension-code-block.esm.js.map\n","import { Node } from '@tiptap/core';\n\nconst Document = Node.create({\r\n name: 'doc',\r\n topNode: true,\r\n content: 'block+',\r\n});\n\nexport { Document, Document as default };\n//# sourceMappingURL=tiptap-extension-document.esm.js.map\n","import { Plugin } from 'prosemirror-state';\nimport { dropPoint } from 'prosemirror-transform';\n\n// :: (options: ?Object) → Plugin\n// Create a plugin that, when added to a ProseMirror instance,\n// causes a decoration to show up at the drop position when something\n// is dragged over the editor.\n//\n// Nodes may add a `disableDropCursor` property to their spec to\n// control the showing of a drop cursor inside them. This may be a\n// boolean or a function, which will be called with a view and a\n// position, and should return a boolean.\n//\n// options::- These options are supported:\n//\n// color:: ?string\n// The color of the cursor. Defaults to `black`.\n//\n// width:: ?number\n// The precise width of the cursor in pixels. Defaults to 1.\n//\n// class:: ?string\n// A CSS class name to add to the cursor element.\nfunction dropCursor(options) {\n if ( options === void 0 ) options = {};\n\n return new Plugin({\n view: function view(editorView) { return new DropCursorView(editorView, options) }\n })\n}\n\nvar DropCursorView = function DropCursorView(editorView, options) {\n var this$1 = this;\n\n this.editorView = editorView;\n this.width = options.width || 1;\n this.color = options.color || \"black\";\n this.class = options.class;\n this.cursorPos = null;\n this.element = null;\n this.timeout = null;\n\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(function (name) {\n var handler = function (e) { return this$1[name](e); };\n editorView.dom.addEventListener(name, handler);\n return {name: name, handler: handler}\n });\n};\n\nDropCursorView.prototype.destroy = function destroy () {\n var this$1 = this;\n\n this.handlers.forEach(function (ref) {\n var name = ref.name;\n var handler = ref.handler;\n\n return this$1.editorView.dom.removeEventListener(name, handler);\n });\n};\n\nDropCursorView.prototype.update = function update (editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size) { this.setCursor(null); }\n else { this.updateOverlay(); }\n }\n};\n\nDropCursorView.prototype.setCursor = function setCursor (pos) {\n if (pos == this.cursorPos) { return }\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n } else {\n this.updateOverlay();\n }\n};\n\nDropCursorView.prototype.updateOverlay = function updateOverlay () {\n var $pos = this.editorView.state.doc.resolve(this.cursorPos), rect;\n if (!$pos.parent.inlineContent) {\n var before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n var nodeRect = this.editorView.nodeDOM(this.cursorPos - (before ?before.nodeSize : 0)).getBoundingClientRect();\n var top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n { top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2; }\n rect = {left: nodeRect.left, right: nodeRect.right, top: top - this.width / 2, bottom: top + this.width / 2};\n }\n }\n if (!rect) {\n var coords = this.editorView.coordsAtPos(this.cursorPos);\n rect = {left: coords.left - this.width / 2, right: coords.left + this.width / 2, top: coords.top, bottom: coords.bottom};\n }\n\n var parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class) { this.element.className = this.class; }\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none; background-color: \" + this.color;\n }\n var parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n } else {\n var rect$1 = parent.getBoundingClientRect();\n parentLeft = rect$1.left - parent.scrollLeft;\n parentTop = rect$1.top - parent.scrollTop;\n }\n this.element.style.left = (rect.left - parentLeft) + \"px\";\n this.element.style.top = (rect.top - parentTop) + \"px\";\n this.element.style.width = (rect.right - rect.left) + \"px\";\n this.element.style.height = (rect.bottom - rect.top) + \"px\";\n};\n\nDropCursorView.prototype.scheduleRemoval = function scheduleRemoval (timeout) {\n var this$1 = this;\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () { return this$1.setCursor(null); }, timeout);\n};\n\nDropCursorView.prototype.dragover = function dragover (event) {\n if (!this.editorView.editable) { return }\n var pos = this.editorView.posAtCoords({left: event.clientX, top: event.clientY});\n\n var node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n var disableDropCursor = node && node.type.spec.disableDropCursor;\n var disabled = typeof disableDropCursor == \"function\" ? disableDropCursor(this.editorView, pos) : disableDropCursor;\n\n if (pos && !disabled) {\n var target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n target = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (target == null) { return this.setCursor(null) }\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n};\n\nDropCursorView.prototype.dragend = function dragend () {\n this.scheduleRemoval(20);\n};\n\nDropCursorView.prototype.drop = function drop () {\n this.scheduleRemoval(20);\n};\n\nDropCursorView.prototype.dragleave = function dragleave (event) {\n if (event.target == this.editorView.dom || !this.editorView.dom.contains(event.relatedTarget))\n { this.setCursor(null); }\n};\n\nexport { dropCursor };\n//# sourceMappingURL=index.es.js.map\n","import { Extension } from '@tiptap/core';\nimport { dropCursor } from 'prosemirror-dropcursor';\n\nconst Dropcursor = Extension.create({\r\n name: 'dropCursor',\r\n addOptions() {\r\n return {\r\n color: 'currentColor',\r\n width: 1,\r\n class: null,\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n dropCursor(this.options),\r\n ];\r\n },\r\n});\n\nexport { Dropcursor, Dropcursor as default };\n//# sourceMappingURL=tiptap-extension-dropcursor.esm.js.map\n","import { keydownHandler } from 'prosemirror-keymap';\nimport { NodeSelection, Selection, Plugin, TextSelection } from 'prosemirror-state';\nimport { DecorationSet, Decoration } from 'prosemirror-view';\nimport { Slice } from 'prosemirror-model';\n\n// ::- Gap cursor selections are represented using this class. Its\n// `$anchor` and `$head` properties both point at the cursor position.\nvar GapCursor = /*@__PURE__*/(function (Selection) {\n function GapCursor($pos) {\n Selection.call(this, $pos, $pos);\n }\n\n if ( Selection ) GapCursor.__proto__ = Selection;\n GapCursor.prototype = Object.create( Selection && Selection.prototype );\n GapCursor.prototype.constructor = GapCursor;\n\n GapCursor.prototype.map = function map (doc, mapping) {\n var $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos)\n };\n\n GapCursor.prototype.content = function content () { return Slice.empty };\n\n GapCursor.prototype.eq = function eq (other) {\n return other instanceof GapCursor && other.head == this.head\n };\n\n GapCursor.prototype.toJSON = function toJSON () {\n return {type: \"gapcursor\", pos: this.head}\n };\n\n GapCursor.fromJSON = function fromJSON (doc, json) {\n if (typeof json.pos != \"number\") { throw new RangeError(\"Invalid input for GapCursor.fromJSON\") }\n return new GapCursor(doc.resolve(json.pos))\n };\n\n GapCursor.prototype.getBookmark = function getBookmark () { return new GapBookmark(this.anchor) };\n\n GapCursor.valid = function valid ($pos) {\n var parent = $pos.parent;\n if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos)) { return false }\n var override = parent.type.spec.allowGapCursor;\n if (override != null) { return override }\n var deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock\n };\n\n GapCursor.findFrom = function findFrom ($pos, dir, mustMove) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos)) { return $pos }\n var pos = $pos.pos, next = null;\n // Scan up from this position\n for (var d = $pos.depth;; d--) {\n var parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break\n } else if (d == 0) {\n return null\n }\n pos += dir;\n var $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur)) { return $cur }\n }\n\n // And then down into the next node\n for (;;) {\n var inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search\n }\n break\n }\n next = inside;\n pos += dir;\n var $cur$1 = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur$1)) { return $cur$1 }\n }\n\n return null\n }\n };\n\n return GapCursor;\n}(Selection));\n\nGapCursor.prototype.visible = false;\n\nSelection.jsonID(\"gapcursor\", GapCursor);\n\nvar GapBookmark = function GapBookmark(pos) {\n this.pos = pos;\n};\nGapBookmark.prototype.map = function map (mapping) {\n return new GapBookmark(mapping.map(this.pos))\n};\nGapBookmark.prototype.resolve = function resolve (doc) {\n var $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos)\n};\n\nfunction closedBefore($pos) {\n for (var d = $pos.depth; d >= 0; d--) {\n var index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating) { return true }\n continue\n }\n // See if the node before (or its first ancestor) is closed\n for (var before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || before.isAtom || before.type.spec.isolating) { return true }\n if (before.inlineContent) { return false }\n }\n }\n // Hit start of document\n return true\n}\n\nfunction closedAfter($pos) {\n for (var d = $pos.depth; d >= 0; d--) {\n var index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating) { return true }\n continue\n }\n for (var after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || after.isAtom || after.type.spec.isolating) { return true }\n if (after.inlineContent) { return false }\n }\n }\n return true\n}\n\n// :: () → Plugin\n// Create a gap cursor plugin. When enabled, this will capture clicks\n// near and arrow-key-motion past places that don't have a normally\n// selectable position nearby, and create a gap cursor selection for\n// them. The cursor is drawn as an element with class\n// `ProseMirror-gapcursor`. You can either include\n// `style/gapcursor.css` from the package's directory or add your own\n// styles to make it visible.\nvar gapCursor = function() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n\n createSelectionBetween: function createSelectionBetween(_view, $anchor, $head) {\n if ($anchor.pos == $head.pos && GapCursor.valid($head)) { return new GapCursor($head) }\n },\n\n handleClick: handleClick,\n handleKeyDown: handleKeyDown\n }\n })\n};\n\nvar handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\n\nfunction arrow(axis, dir) {\n var dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function(state, dispatch, view) {\n var sel = state.selection;\n var $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0) { return false }\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n var $found = GapCursor.findFrom($start, dir, mustMove);\n if (!$found) { return false }\n if (dispatch) { dispatch(state.tr.setSelection(new GapCursor($found))); }\n return true\n }\n}\n\nfunction handleClick(view, pos, event) {\n if (!view.editable) { return false }\n var $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos)) { return false }\n var ref = view.posAtCoords({left: event.clientX, top: event.clientY});\n var inside = ref.inside;\n if (inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(inside))) { return false }\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true\n}\n\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor)) { return null }\n var node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, {key: \"gapcursor\"})])\n}\n\nexport { GapCursor, gapCursor };\n//# sourceMappingURL=index.es.js.map\n","import { Extension, callOrReturn, getExtensionField } from '@tiptap/core';\nimport { gapCursor } from 'prosemirror-gapcursor';\n\nconst Gapcursor = Extension.create({\r\n name: 'gapCursor',\r\n addProseMirrorPlugins() {\r\n return [\r\n gapCursor(),\r\n ];\r\n },\r\n extendNodeSchema(extension) {\r\n var _a;\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n return {\r\n allowGapCursor: (_a = callOrReturn(getExtensionField(extension, 'allowGapCursor', context))) !== null && _a !== void 0 ? _a : null,\r\n };\r\n },\r\n});\n\nexport { Gapcursor, Gapcursor as default };\n//# sourceMappingURL=tiptap-extension-gapcursor.esm.js.map\n","import { Node, mergeAttributes } from '@tiptap/core';\n\nconst HardBreak = Node.create({\r\n name: 'hardBreak',\r\n addOptions() {\r\n return {\r\n keepMarks: true,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n inline: true,\r\n group: 'inline',\r\n selectable: false,\r\n parseHTML() {\r\n return [\r\n { tag: 'br' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['br', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n renderText() {\r\n return '\\n';\r\n },\r\n addCommands() {\r\n return {\r\n setHardBreak: () => ({ commands, chain, state, editor, }) => {\r\n return commands.first([\r\n () => commands.exitCode(),\r\n () => commands.command(() => {\r\n const { selection, storedMarks } = state;\r\n if (selection.$from.parent.type.spec.isolating) {\r\n return false;\r\n }\r\n const { keepMarks } = this.options;\r\n const { splittableMarks } = editor.extensionManager;\r\n const marks = storedMarks\r\n || (selection.$to.parentOffset && selection.$from.marks());\r\n return chain()\r\n .insertContent({ type: this.name })\r\n .command(({ tr, dispatch }) => {\r\n if (dispatch && marks && keepMarks) {\r\n const filteredMarks = marks\r\n .filter(mark => splittableMarks.includes(mark.type.name));\r\n tr.ensureMarks(filteredMarks);\r\n }\r\n return true;\r\n })\r\n .run();\r\n }),\r\n ]);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => this.editor.commands.setHardBreak(),\r\n 'Shift-Enter': () => this.editor.commands.setHardBreak(),\r\n };\r\n },\r\n});\n\nexport { HardBreak, HardBreak as default };\n//# sourceMappingURL=tiptap-extension-hard-break.esm.js.map\n","import { Node, mergeAttributes, textblockTypeInputRule } from '@tiptap/core';\n\nconst Heading = Node.create({\r\n name: 'heading',\r\n addOptions() {\r\n return {\r\n levels: [1, 2, 3, 4, 5, 6],\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'inline*',\r\n group: 'block',\r\n defining: true,\r\n addAttributes() {\r\n return {\r\n level: {\r\n default: 1,\r\n rendered: false,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return this.options.levels\r\n .map((level) => ({\r\n tag: `h${level}`,\r\n attrs: { level },\r\n }));\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n const hasLevel = this.options.levels.includes(node.attrs.level);\r\n const level = hasLevel\r\n ? node.attrs.level\r\n : this.options.levels[0];\r\n return [`h${level}`, mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setHeading: attributes => ({ commands }) => {\r\n if (!this.options.levels.includes(attributes.level)) {\r\n return false;\r\n }\r\n return commands.setNode(this.name, attributes);\r\n },\r\n toggleHeading: attributes => ({ commands }) => {\r\n if (!this.options.levels.includes(attributes.level)) {\r\n return false;\r\n }\r\n return commands.toggleNode(this.name, 'paragraph', attributes);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return this.options.levels.reduce((items, level) => ({\r\n ...items,\r\n ...{\r\n [`Mod-Alt-${level}`]: () => this.editor.commands.toggleHeading({ level }),\r\n },\r\n }), {});\r\n },\r\n addInputRules() {\r\n return this.options.levels.map(level => {\r\n return textblockTypeInputRule({\r\n find: new RegExp(`^(#{1,${level}})\\\\s$`),\r\n type: this.type,\r\n getAttributes: {\r\n level,\r\n },\r\n });\r\n });\r\n },\r\n});\n\nexport { Heading, Heading as default };\n//# sourceMappingURL=tiptap-extension-heading.esm.js.map\n","var GOOD_LEAF_SIZE = 200;\n\n// :: class A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence>) → RopeSequence\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence>) → RopeSequence\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\nvar ropeSequence = RopeSequence;\n\nexport default ropeSequence;\n","import RopeSequence from 'rope-sequence';\nimport { Mapping } from 'prosemirror-transform';\nimport { PluginKey, Plugin } from 'prosemirror-state';\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n\n// Used to schedule history compression\nvar max_empty_items = 500;\n\nvar Branch = function Branch(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n};\n\n// : (EditorState, bool) → ?{transform: Transform, selection: ?SelectionBookmark, remaining: Branch}\n// Pop the latest event off the branch's history and apply it\n// to a document transform.\nBranch.prototype.popEvent = function popEvent (state, preserveItems) {\n var this$1 = this;\n\n if (this.eventCount == 0) { return null }\n\n var end = this.items.length;\n for (;; end--) {\n var next = this.items.get(end - 1);\n if (next.selection) { --end; break }\n }\n\n var remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n var transform = state.tr;\n var selection, remaining;\n var addAfter = [], addBefore = [];\n\n this.items.forEach(function (item, i) {\n if (!item.step) {\n if (!remap) {\n remap = this$1.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return\n }\n\n if (remap) {\n addBefore.push(new Item(item.map));\n var step = item.step.map(remap.slice(mapFrom)), map;\n\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, null, null, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map) { remap.appendMap(map, mapFrom); }\n } else {\n transform.maybeStep(item.step);\n }\n\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this$1.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this$1.eventCount - 1);\n return false\n }\n }, this.items.length, 0);\n\n return {remaining: remaining, transform: transform, selection: selection}\n};\n\n// : (Transform, ?SelectionBookmark, Object) → Branch\n// Create a new branch with the given transform added.\nBranch.prototype.addTransform = function addTransform (transform, selection, histOptions, preserveItems) {\n var newItems = [], eventCount = this.eventCount;\n var oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n\n for (var i = 0; i < transform.steps.length; i++) {\n var step = transform.steps[i].invert(transform.docs[i]);\n var item = new Item(transform.mapping.maps[i], step, selection), merged = (void 0);\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i) { newItems.pop(); }\n else { oldItems = oldItems.slice(0, oldItems.length - 1); }\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = null;\n }\n if (!preserveItems) { lastItem = item; }\n }\n var overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount)\n};\n\nBranch.prototype.remapping = function remapping (from, to) {\n var maps = new Mapping;\n this.items.forEach(function (item, i) {\n var mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : null;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps\n};\n\nBranch.prototype.addMaps = function addMaps (array) {\n if (this.eventCount == 0) { return this }\n return new Branch(this.items.append(array.map(function (map) { return new Item(map); })), this.eventCount)\n};\n\n// : (Transform, number)\n// When the collab module receives remote changes, the history has\n// to know about those, so that it can adjust the steps that were\n// rebased on top of the remote changes, and include the position\n// maps for the remote changes in its array of items.\nBranch.prototype.rebased = function rebased (rebasedTransform, rebasedCount) {\n if (!this.eventCount) { return this }\n\n var rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n\n var mapping = rebasedTransform.mapping;\n var newUntil = rebasedTransform.steps.length;\n var eventCount = this.eventCount;\n this.items.forEach(function (item) { if (item.selection) { eventCount--; } }, start);\n\n var iRebased = rebasedCount;\n this.items.forEach(function (item) {\n var pos = mapping.getMirror(--iRebased);\n if (pos == null) { return }\n newUntil = Math.min(newUntil, pos);\n var map = mapping.maps[pos];\n if (item.step) {\n var step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n var selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection) { eventCount++; }\n rebasedItems.push(new Item(map, step, selection));\n } else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n\n var newMaps = [];\n for (var i = rebasedCount; i < newUntil; i++)\n { newMaps.push(new Item(mapping.maps[i])); }\n var items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n var branch = new Branch(items, eventCount);\n\n if (branch.emptyItemCount() > max_empty_items)\n { branch = branch.compress(this.items.length - rebasedItems.length); }\n return branch\n};\n\nBranch.prototype.emptyItemCount = function emptyItemCount () {\n var count = 0;\n this.items.forEach(function (item) { if (!item.step) { count++; } });\n return count\n};\n\n// Compressing a branch means rewriting it to push the air (map-only\n// items) out. During collaboration, these naturally accumulate\n// because each remote change adds one. The `upto` argument is used\n// to ensure that only the items below a given level are compressed,\n// because `rebased` relies on a clean, untouched set of items in\n// order to associate old items with rebased steps.\nBranch.prototype.compress = function compress (upto) {\n if ( upto === void 0 ) upto = this.items.length;\n\n var remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n var items = [], events = 0;\n this.items.forEach(function (item, i) {\n if (i >= upto) {\n items.push(item);\n if (item.selection) { events++; }\n } else if (item.step) {\n var step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map) { remap.appendMap(map, mapFrom); }\n if (step) {\n var selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection) { events++; }\n var newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n { items[last] = merged; }\n else\n { items.push(newItem); }\n }\n } else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(RopeSequence.from(items.reverse()), events)\n};\n\nBranch.empty = new Branch(RopeSequence.empty, 0);\n\nfunction cutOffEvents(items, n) {\n var cutPoint;\n items.forEach(function (item, i) {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false\n }\n });\n return items.slice(cutPoint)\n}\n\nvar Item = function Item(map, step, selection, mirrorOffset) {\n // The (forward) step map for this item.\n this.map = map;\n // The inverted step\n this.step = step;\n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n this.selection = selection;\n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n this.mirrorOffset = mirrorOffset;\n};\n\nItem.prototype.merge = function merge (other) {\n if (this.step && other.step && !other.selection) {\n var step = other.step.merge(this.step);\n if (step) { return new Item(step.getMap().invert(), step, this.selection) }\n }\n};\n\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nvar HistoryState = function HistoryState(done, undone, prevRanges, prevTime) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n};\n\nvar DEPTH_OVERFLOW = 20;\n\n// : (HistoryState, EditorState, Transaction, Object)\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n var historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr) { return historyTr.historyState }\n\n if (tr.getMeta(closeHistoryKey)) { history = new HistoryState(history.done, history.undone, null, 0); }\n\n var appended = tr.getMeta(\"appendedTransaction\");\n\n if (tr.steps.length == 0) {\n return history\n } else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n { return new HistoryState(history.done.addTransform(tr, null, options, mustPreserveItems(state)),\n history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime) }\n else\n { return new HistoryState(history.done, history.undone.addTransform(tr, null, options, mustPreserveItems(state)),\n null, history.prevTime) }\n } else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n var newGroup = history.prevTime == 0 || !appended && (history.prevTime < (tr.time || 0) - options.newGroupDelay ||\n !isAdjacentTo(tr, history.prevRanges));\n var prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1]);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : null,\n options, mustPreserveItems(state)),\n Branch.empty, prevRanges, tr.time)\n } else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased),\n history.undone.rebased(tr, rebased),\n mapRanges(history.prevRanges, tr.mapping), history.prevTime)\n } else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps),\n history.undone.addMaps(tr.mapping.maps),\n mapRanges(history.prevRanges, tr.mapping), history.prevTime)\n }\n}\n\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges) { return false }\n if (!transform.docChanged) { return true }\n var adjacent = false;\n transform.mapping.maps[0].forEach(function (start, end) {\n for (var i = 0; i < prevRanges.length; i += 2)\n { if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n { adjacent = true; } }\n });\n return adjacent\n}\n\nfunction rangesFor(map) {\n var result = [];\n map.forEach(function (_from, _to, from, to) { return result.push(from, to); });\n return result\n}\n\nfunction mapRanges(ranges, mapping) {\n if (!ranges) { return null }\n var result = [];\n for (var i = 0; i < ranges.length; i += 2) {\n var from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to) { result.push(from, to); }\n }\n return result\n}\n\n// : (HistoryState, EditorState, (tr: Transaction), bool)\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, dispatch, redo) {\n var preserveItems = mustPreserveItems(state), histOptions = historyKey.get(state).spec.config;\n var pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop) { return }\n\n var selection = pop.selection.resolve(pop.transform.doc);\n var added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(),\n histOptions, preserveItems);\n\n var newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0);\n dispatch(pop.transform.setSelection(selection).setMeta(historyKey, {redo: redo, historyState: newHist}).scrollIntoView());\n}\n\nvar cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n var plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (var i = 0; i < plugins.length; i++) { if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break\n } }\n }\n return cachedPreserveItems\n}\n\n// :: (Transaction) → Transaction\n// Set a flag on the given transaction that will prevent further steps\n// from being appended to an existing history event (so that they\n// require a separate undo command to undo).\nfunction closeHistory(tr) {\n return tr.setMeta(closeHistoryKey, true)\n}\n\nvar historyKey = new PluginKey(\"history\");\nvar closeHistoryKey = new PluginKey(\"closeHistory\");\n\n// :: (?Object) → Plugin\n// Returns a plugin that enables the undo history for an editor. The\n// plugin will track undo and redo stacks, which can be used with the\n// [`undo`](#history.undo) and [`redo`](#history.redo) commands.\n//\n// You can set an `\"addToHistory\"` [metadata\n// property](#state.Transaction.setMeta) of `false` on a transaction\n// to prevent it from being rolled back by undo.\n//\n// config::-\n// Supports the following configuration options:\n//\n// depth:: ?number\n// The amount of history events that are collected before the\n// oldest events are discarded. Defaults to 100.\n//\n// newGroupDelay:: ?number\n// The delay between changes after which a new group should be\n// started. Defaults to 500 (milliseconds). Note that when changes\n// aren't adjacent, a new group is always started.\nfunction history(config) {\n config = {depth: config && config.depth || 100,\n newGroupDelay: config && config.newGroupDelay || 500};\n return new Plugin({\n key: historyKey,\n\n state: {\n init: function init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0)\n },\n apply: function apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config)\n }\n },\n\n config: config,\n\n props: {\n handleDOMEvents: {\n beforeinput: function beforeinput(view, e) {\n var handled = e.inputType == \"historyUndo\" ? undo(view.state, view.dispatch) :\n e.inputType == \"historyRedo\" ? redo(view.state, view.dispatch) : false;\n if (handled) { e.preventDefault(); }\n return handled\n }\n }\n }\n })\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// A command function that undoes the last change, if any.\nfunction undo(state, dispatch) {\n var hist = historyKey.getState(state);\n if (!hist || hist.done.eventCount == 0) { return false }\n if (dispatch) { histTransaction(hist, state, dispatch, false); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// A command function that redoes the last undone change, if any.\nfunction redo(state, dispatch) {\n var hist = historyKey.getState(state);\n if (!hist || hist.undone.eventCount == 0) { return false }\n if (dispatch) { histTransaction(hist, state, dispatch, true); }\n return true\n}\n\n// :: (EditorState) → number\n// The amount of undoable events available in a given state.\nfunction undoDepth(state) {\n var hist = historyKey.getState(state);\n return hist ? hist.done.eventCount : 0\n}\n\n// :: (EditorState) → number\n// The amount of redoable events available in a given editor state.\nfunction redoDepth(state) {\n var hist = historyKey.getState(state);\n return hist ? hist.undone.eventCount : 0\n}\n\nexport { HistoryState, closeHistory, history, redo, redoDepth, undo, undoDepth };\n//# sourceMappingURL=index.es.js.map\n","import { Extension } from '@tiptap/core';\nimport { undo, redo, history } from 'prosemirror-history';\n\nconst History = Extension.create({\r\n name: 'history',\r\n addOptions() {\r\n return {\r\n depth: 100,\r\n newGroupDelay: 500,\r\n };\r\n },\r\n addCommands() {\r\n return {\r\n undo: () => ({ state, dispatch }) => {\r\n return undo(state, dispatch);\r\n },\r\n redo: () => ({ state, dispatch }) => {\r\n return redo(state, dispatch);\r\n },\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n history(this.options),\r\n ];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-z': () => this.editor.commands.undo(),\r\n 'Mod-y': () => this.editor.commands.redo(),\r\n 'Shift-Mod-z': () => this.editor.commands.redo(),\r\n // Russian keyboard layouts\r\n 'Mod-я': () => this.editor.commands.undo(),\r\n 'Shift-Mod-я': () => this.editor.commands.redo(),\r\n };\r\n },\r\n});\n\nexport { History, History as default };\n//# sourceMappingURL=tiptap-extension-history.esm.js.map\n","import { Node, mergeAttributes, nodeInputRule } from '@tiptap/core';\nimport { TextSelection } from 'prosemirror-state';\n\nconst HorizontalRule = Node.create({\r\n name: 'horizontalRule',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block',\r\n parseHTML() {\r\n return [\r\n { tag: 'hr' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['hr', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n addCommands() {\r\n return {\r\n setHorizontalRule: () => ({ chain }) => {\r\n return chain()\r\n .insertContent({ type: this.name })\r\n // set cursor after horizontal rule\r\n .command(({ tr, dispatch }) => {\r\n var _a;\r\n if (dispatch) {\r\n const { parent, pos } = tr.selection.$from;\r\n const posAfter = pos + 1;\r\n const nodeAfter = tr.doc.nodeAt(posAfter);\r\n if (nodeAfter) {\r\n tr.setSelection(TextSelection.create(tr.doc, posAfter));\r\n }\r\n else {\r\n // add node after horizontal rule if it’s the end of the document\r\n const node = (_a = parent.type.contentMatch.defaultType) === null || _a === void 0 ? void 0 : _a.create();\r\n if (node) {\r\n tr.insert(posAfter, node);\r\n tr.setSelection(TextSelection.create(tr.doc, posAfter));\r\n }\r\n }\r\n tr.scrollIntoView();\r\n }\r\n return true;\r\n })\r\n .run();\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n nodeInputRule({\r\n find: /^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { HorizontalRule, HorizontalRule as default };\n//# sourceMappingURL=tiptap-extension-horizontal-rule.esm.js.map\n","import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';\n\nconst starInputRegex = /(?:^|\\s)((?:\\*)((?:[^*]+))(?:\\*))$/;\r\nconst starPasteRegex = /(?:^|\\s)((?:\\*)((?:[^*]+))(?:\\*))/g;\r\nconst underscoreInputRegex = /(?:^|\\s)((?:_)((?:[^_]+))(?:_))$/;\r\nconst underscorePasteRegex = /(?:^|\\s)((?:_)((?:[^_]+))(?:_))/g;\r\nconst Italic = Mark.create({\r\n name: 'italic',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'em',\r\n },\r\n {\r\n tag: 'i',\r\n getAttrs: node => node.style.fontStyle !== 'normal' && null,\r\n },\r\n {\r\n style: 'font-style=italic',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['em', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setItalic: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleItalic: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetItalic: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-i': () => this.editor.commands.toggleItalic(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: starInputRegex,\r\n type: this.type,\r\n }),\r\n markInputRule({\r\n find: underscoreInputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: starPasteRegex,\r\n type: this.type,\r\n }),\r\n markPasteRule({\r\n find: underscorePasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Italic, Italic as default, starInputRegex, starPasteRegex, underscoreInputRegex, underscorePasteRegex };\n//# sourceMappingURL=tiptap-extension-italic.esm.js.map\n","import { Node, mergeAttributes } from '@tiptap/core';\n\nconst ListItem = Node.create({\r\n name: 'listItem',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'paragraph block*',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'li',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['li', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Enter: () => this.editor.commands.splitListItem(this.name),\r\n Tab: () => this.editor.commands.sinkListItem(this.name),\r\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\r\n };\r\n },\r\n});\n\nexport { ListItem, ListItem as default };\n//# sourceMappingURL=tiptap-extension-list-item.esm.js.map\n","import { Node, mergeAttributes, wrappingInputRule } from '@tiptap/core';\n\nconst inputRegex = /^(\\d+)\\.\\s$/;\r\nconst OrderedList = Node.create({\r\n name: 'orderedList',\r\n addOptions() {\r\n return {\r\n itemTypeName: 'listItem',\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block list',\r\n content() {\r\n return `${this.options.itemTypeName}+`;\r\n },\r\n addAttributes() {\r\n return {\r\n start: {\r\n default: 1,\r\n parseHTML: element => {\r\n return element.hasAttribute('start')\r\n ? parseInt(element.getAttribute('start') || '', 10)\r\n : 1;\r\n },\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'ol',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n const { start, ...attributesWithoutStart } = HTMLAttributes;\r\n return start === 1\r\n ? ['ol', mergeAttributes(this.options.HTMLAttributes, attributesWithoutStart), 0]\r\n : ['ol', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n toggleOrderedList: () => ({ commands }) => {\r\n return commands.toggleList(this.name, this.options.itemTypeName);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-7': () => this.editor.commands.toggleOrderedList(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n wrappingInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n getAttributes: match => ({ start: +match[1] }),\r\n joinPredicate: (match, node) => node.childCount + node.attrs.start === +match[1],\r\n }),\r\n ];\r\n },\r\n});\n\nexport { OrderedList, OrderedList as default, inputRegex };\n//# sourceMappingURL=tiptap-extension-ordered-list.esm.js.map\n","import { Node, mergeAttributes } from '@tiptap/core';\n\nconst Paragraph = Node.create({\r\n name: 'paragraph',\r\n priority: 1000,\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block',\r\n content: 'inline*',\r\n parseHTML() {\r\n return [\r\n { tag: 'p' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['p', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setParagraph: () => ({ commands }) => {\r\n return commands.setNode(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Alt-0': () => this.editor.commands.setParagraph(),\r\n };\r\n },\r\n});\n\nexport { Paragraph, Paragraph as default };\n//# sourceMappingURL=tiptap-extension-paragraph.esm.js.map\n","import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';\n\nconst inputRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))$/;\r\nconst pasteRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))/g;\r\nconst Strike = Mark.create({\r\n name: 'strike',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 's',\r\n },\r\n {\r\n tag: 'del',\r\n },\r\n {\r\n tag: 'strike',\r\n },\r\n {\r\n style: 'text-decoration',\r\n consuming: false,\r\n getAttrs: style => (style.includes('line-through') ? {} : false),\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setStrike: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleStrike: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetStrike: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: pasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nexport { Strike, Strike as default, inputRegex, pasteRegex };\n//# sourceMappingURL=tiptap-extension-strike.esm.js.map\n","import { Node } from '@tiptap/core';\n\nconst Text = Node.create({\r\n name: 'text',\r\n group: 'inline',\r\n});\n\nexport { Text, Text as default };\n//# sourceMappingURL=tiptap-extension-text.esm.js.map\n","import { Extension } from '@tiptap/core';\nimport Blockquote from '@tiptap/extension-blockquote';\nimport Bold from '@tiptap/extension-bold';\nimport BulletList from '@tiptap/extension-bullet-list';\nimport Code from '@tiptap/extension-code';\nimport CodeBlock from '@tiptap/extension-code-block';\nimport Document from '@tiptap/extension-document';\nimport Dropcursor from '@tiptap/extension-dropcursor';\nimport Gapcursor from '@tiptap/extension-gapcursor';\nimport HardBreak from '@tiptap/extension-hard-break';\nimport Heading from '@tiptap/extension-heading';\nimport History from '@tiptap/extension-history';\nimport HorizontalRule from '@tiptap/extension-horizontal-rule';\nimport Italic from '@tiptap/extension-italic';\nimport ListItem from '@tiptap/extension-list-item';\nimport OrderedList from '@tiptap/extension-ordered-list';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Strike from '@tiptap/extension-strike';\nimport Text from '@tiptap/extension-text';\n\nconst StarterKit = Extension.create({\r\n name: 'starterKit',\r\n addExtensions() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\r\n const extensions = [];\r\n if (this.options.blockquote !== false) {\r\n extensions.push(Blockquote.configure((_a = this.options) === null || _a === void 0 ? void 0 : _a.blockquote));\r\n }\r\n if (this.options.bold !== false) {\r\n extensions.push(Bold.configure((_b = this.options) === null || _b === void 0 ? void 0 : _b.bold));\r\n }\r\n if (this.options.bulletList !== false) {\r\n extensions.push(BulletList.configure((_c = this.options) === null || _c === void 0 ? void 0 : _c.bulletList));\r\n }\r\n if (this.options.code !== false) {\r\n extensions.push(Code.configure((_d = this.options) === null || _d === void 0 ? void 0 : _d.code));\r\n }\r\n if (this.options.codeBlock !== false) {\r\n extensions.push(CodeBlock.configure((_e = this.options) === null || _e === void 0 ? void 0 : _e.codeBlock));\r\n }\r\n if (this.options.document !== false) {\r\n extensions.push(Document.configure((_f = this.options) === null || _f === void 0 ? void 0 : _f.document));\r\n }\r\n if (this.options.dropcursor !== false) {\r\n extensions.push(Dropcursor.configure((_g = this.options) === null || _g === void 0 ? void 0 : _g.dropcursor));\r\n }\r\n if (this.options.gapcursor !== false) {\r\n extensions.push(Gapcursor.configure((_h = this.options) === null || _h === void 0 ? void 0 : _h.gapcursor));\r\n }\r\n if (this.options.hardBreak !== false) {\r\n extensions.push(HardBreak.configure((_j = this.options) === null || _j === void 0 ? void 0 : _j.hardBreak));\r\n }\r\n if (this.options.heading !== false) {\r\n extensions.push(Heading.configure((_k = this.options) === null || _k === void 0 ? void 0 : _k.heading));\r\n }\r\n if (this.options.history !== false) {\r\n extensions.push(History.configure((_l = this.options) === null || _l === void 0 ? void 0 : _l.history));\r\n }\r\n if (this.options.horizontalRule !== false) {\r\n extensions.push(HorizontalRule.configure((_m = this.options) === null || _m === void 0 ? void 0 : _m.horizontalRule));\r\n }\r\n if (this.options.italic !== false) {\r\n extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));\r\n }\r\n if (this.options.listItem !== false) {\r\n extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));\r\n }\r\n if (this.options.orderedList !== false) {\r\n extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));\r\n }\r\n if (this.options.paragraph !== false) {\r\n extensions.push(Paragraph.configure((_r = this.options) === null || _r === void 0 ? void 0 : _r.paragraph));\r\n }\r\n if (this.options.strike !== false) {\r\n extensions.push(Strike.configure((_s = this.options) === null || _s === void 0 ? void 0 : _s.strike));\r\n }\r\n if (this.options.text !== false) {\r\n extensions.push(Text.configure((_t = this.options) === null || _t === void 0 ? void 0 : _t.text));\r\n }\r\n return extensions;\r\n },\r\n});\n\nexport { StarterKit as default };\n//# sourceMappingURL=tiptap-starter-kit.esm.js.map\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*!\n * vue-router v4.0.12\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/vue-router-next/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we\r\n // don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n // console.log('i is', { i })\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0)\r\n i++;\r\n // console.log('END i is', { i })\r\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = Array.isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://next.router.vuejs.org/',\r\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: Date.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: Date.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: Date.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n /**\r\n * Mark the router as ready, resolving the promised returned by isReady(). Can\r\n * only be called once, otherwise does nothing.\r\n * @param err - optional error\r\n */\r\n function markAsReady(err) {\r\n if (ready)\r\n return;\r\n ready = true;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","import { Mark, mergeAttributes } from '@tiptap/core';\n\nconst Superscript = Mark.create({\r\n name: 'superscript',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'sup',\r\n },\r\n {\r\n style: 'vertical-align',\r\n getAttrs(value) {\r\n // Don’t match this rule if the vertical align isn’t super.\r\n if (value !== 'super') {\r\n return false;\r\n }\r\n // If it falls through we’ll match, and this mark will be applied.\r\n },\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['sup', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setSuperscript: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleSuperscript: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetSuperscript: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-.': () => this.editor.commands.toggleSuperscript(),\r\n };\r\n },\r\n});\n\nexport { Superscript, Superscript as default };\n//# sourceMappingURL=tiptap-extension-superscript.esm.js.map\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\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 (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","import { extend, isArray, isMap, isIntegerKey, isSymbol, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nconst effectScopeStack = [];\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n try {\r\n this.on();\r\n return fn();\r\n }\r\n finally {\r\n this.off();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n on() {\r\n if (this.active) {\r\n effectScopeStack.push(this);\r\n activeEffectScope = this;\r\n }\r\n }\r\n off() {\r\n if (this.active) {\r\n effectScopeStack.pop();\r\n activeEffectScope = effectScopeStack[effectScopeStack.length - 1];\r\n }\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n this.effects.forEach(e => e.stop());\r\n this.cleanups.forEach(cleanup => cleanup());\r\n if (this.scopes) {\r\n this.scopes.forEach(e => e.stop(true));\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope) {\r\n scope = scope || activeEffectScope;\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels op recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nconst effectStack = [];\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n if (!effectStack.includes(this)) {\r\n try {\r\n effectStack.push((activeEffect = this));\r\n enableTracking();\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n resetTracking();\r\n effectStack.pop();\r\n const n = effectStack.length;\r\n activeEffect = n > 0 ? effectStack[n - 1] : undefined;\r\n }\r\n }\r\n }\r\n stop() {\r\n if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (!isTracking()) {\r\n return;\r\n }\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n}\r\nfunction isTracking() {\r\n return shouldTrack && activeEffect !== undefined;\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({\r\n effect: activeEffect\r\n }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (!shallow) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (target && target[\"__v_isReadonly\" /* IS_READONLY */]) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (isTracking()) {\r\n ref = toRaw(ref);\r\n if (!ref.dep) {\r\n ref.dep = createDep();\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep, {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return Boolean(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, _shallow) {\r\n this._shallow = _shallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = _shallow ? value : toRaw(value);\r\n this._value = _shallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this._shallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this._shallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key) {\r\n this._object = _object;\r\n this._key = _key;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n return this._object[this._key];\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key) {\r\n const val = object[key];\r\n return isRef(val) ? val : new ObjectRefImpl(object, key);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = true;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { toRaw, ref, pauseTracking, resetTracking, reactive, computed, isRef, shallowReactive, trigger, ReactiveEffect, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, isReactive, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, computed, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, isFunction, toNumber, hyphenate, camelize, isArray, isOn, hasOwn, isModelListener, isObject, remove, isString, invokeArrayFns, isPromise, NOOP, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted, hasChanged, isSet, isMap, isPlainObject } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n !navigator.userAgent.includes('jsdom')) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the intance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction(opt) && isFunction(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n beforeUnmount: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n unmounted: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return getExposeProxy(vnode.component) || vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.