@startinblox/core 0.17.26 → 0.17.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/_snowpack/pkg/import-map.json +0 -8
  2. package/dist/components/solid-form.js.map +1 -1
  3. package/dist/new-widgets/callbackMixins/index.js +2 -4
  4. package/dist/new-widgets/callbackMixins/index.js.map +1 -1
  5. package/dist/new-widgets/templates/formTemplatesDirectory.js +8 -23
  6. package/dist/new-widgets/templates/formTemplatesDirectory.js.map +1 -1
  7. package/dist/new-widgets/templatesDependencies/formFileMixin.js +27 -3
  8. package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +1 -1
  9. package/package.json +2 -4
  10. package/dist/_snowpack/pkg/showdown.js +0 -5059
  11. package/dist/_snowpack/pkg/showdown.js.map +0 -1
  12. package/dist/_snowpack/pkg/showdown.js.map.proxy.js +0 -1
  13. package/dist/_snowpack/pkg/tinymce/icons/default.js +0 -196
  14. package/dist/_snowpack/pkg/tinymce/icons/default.js.map +0 -1
  15. package/dist/_snowpack/pkg/tinymce/icons/default.js.map.proxy.js +0 -1
  16. package/dist/_snowpack/pkg/tinymce/models/dom.js +0 -7955
  17. package/dist/_snowpack/pkg/tinymce/models/dom.js.map +0 -1
  18. package/dist/_snowpack/pkg/tinymce/models/dom.js.map.proxy.js +0 -1
  19. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js +0 -156
  20. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js.map +0 -1
  21. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js.map.proxy.js +0 -1
  22. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js +0 -1188
  23. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js.map +0 -1
  24. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js.map.proxy.js +0 -1
  25. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js +0 -1757
  26. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js.map +0 -1
  27. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js.map.proxy.js +0 -1
  28. package/dist/_snowpack/pkg/tinymce/themes/silver.js +0 -26121
  29. package/dist/_snowpack/pkg/tinymce/themes/silver.js.map +0 -1
  30. package/dist/_snowpack/pkg/tinymce/themes/silver.js.map.proxy.js +0 -1
  31. package/dist/_snowpack/pkg/tinymce.js +0 -29045
  32. package/dist/_snowpack/pkg/tinymce.js.map +0 -1
  33. package/dist/_snowpack/pkg/tinymce.js.map.proxy.js +0 -1
  34. package/dist/new-widgets/callbackMixins/editorMixin.js +0 -92
  35. package/dist/new-widgets/callbackMixins/editorMixin.js.map +0 -1
  36. package/dist/new-widgets/templatesDependencies/valueEditorMixin.js +0 -17
  37. package/dist/new-widgets/templatesDependencies/valueEditorMixin.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../../../../node_modules/tinymce/plugins/lists/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.0.2 (2022-04-27)\n */\n\n(function () {\n 'use strict';\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isArray = isType$1('array');\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n\n const noop = () => {\n };\n const constant = value => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n const not = f => t => !f(t);\n const never = constant(false);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains$1 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const filter$1 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const groupBy = (xs, f) => {\n if (xs.length === 0) {\n return [];\n } else {\n let wasType = f(xs[0]);\n const r = [];\n let group = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind = (xs, f) => flatten(map(xs, f));\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const get$1 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$1(xs, 0);\n const last = xs => get$1(xs, xs.length - 1);\n const unique = (xs, comparator) => {\n const r = [];\n const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$1(r, x);\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (!isDuplicated(x)) {\n r.push(x);\n }\n }\n return r;\n };\n\n const ELEMENT = 1;\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n const is$2 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n const is$1 = is$2;\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type = element => element.dom.nodeType;\n const isType = t => element => type(element) === t;\n const isElement = isType(ELEMENT);\n const isTag = tag => e => isElement(e) && name(e) === tag;\n\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children = element => map(element.dom.childNodes, SugarElement.fromDom);\n const child = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child(element, 0);\n const lastChild = element => child(element, element.dom.childNodes.length - 1);\n\n const before$1 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$1(v, element);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n\n const before = (marker, elements) => {\n each$1(elements, x => {\n before$1(marker, x);\n });\n };\n const append = (parent, elements) => {\n each$1(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$1(children(element), rogue => {\n remove(rogue);\n });\n };\n const remove = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n const keys = Object.keys;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n const r = {};\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const setAll = (element, attrs) => {\n const dom = element.dom;\n each(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const clone$1 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const clone = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const deep = original => clone(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$1(original);\n setAll(nu, attributes);\n return nu;\n };\n const mutate = (original, tag) => {\n const nu = shallowAs(original, tag);\n after(original, nu);\n const children$1 = children(original);\n append(nu, children$1);\n remove(original);\n return nu;\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const matchNodeName = name => node => node && node.nodeName.toLowerCase() === name;\n const matchNodeNames = regex => node => node && regex.test(node.nodeName);\n const isTextNode = node => node && node.nodeType === 3;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isOlUlNode = matchNodeNames(/^(OL|UL)$/);\n const isOlNode = matchNodeName('ol');\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const isDlItemNode = matchNodeNames(/^(DT|DD)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isBr = matchNodeName('br');\n const isFirstChild = node => node.parentNode.firstChild === node;\n const isTextBlock = (editor, node) => node && !!editor.schema.getTextBlockElements()[node.nodeName];\n const isBlock = (node, blockElements) => node && node.nodeName in blockElements;\n const isBogusBr = (dom, node) => {\n if (!isBr(node)) {\n return false;\n }\n return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling);\n };\n const isEmpty$1 = (dom, elm, keepBookmarks) => {\n const empty = dom.isEmpty(elm);\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\n return false;\n }\n return empty;\n };\n const isChildOfBody = (dom, elm) => dom.isChildOf(elm, dom.getRoot());\n\n const option = name => editor => editor.options.get(name);\n const register$3 = editor => {\n const registerOption = editor.options.register;\n registerOption('lists_indent_on_tab', {\n processor: 'boolean',\n default: true\n });\n };\n const shouldIndentOnTab = option('lists_indent_on_tab');\n const getForcedRootBlock = option('forced_root_block');\n const getForcedRootBlockAttrs = option('forced_root_block_attrs');\n\n const createTextBlock = (editor, contentNode) => {\n const dom = editor.dom;\n const blockElements = editor.schema.getBlockElements();\n const fragment = dom.createFragment();\n const blockName = getForcedRootBlock(editor);\n const blockAttrs = getForcedRootBlockAttrs(editor);\n let node, textBlock, hasContentNode;\n textBlock = dom.create(blockName, blockAttrs);\n if (!isBlock(contentNode.firstChild, blockElements)) {\n fragment.appendChild(textBlock);\n }\n while (node = contentNode.firstChild) {\n const nodeName = node.nodeName;\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\n hasContentNode = true;\n }\n if (isBlock(node, blockElements)) {\n fragment.appendChild(node);\n textBlock = null;\n } else {\n if (!textBlock) {\n textBlock = dom.create(blockName, blockAttrs);\n fragment.appendChild(textBlock);\n }\n textBlock.appendChild(node);\n }\n }\n if (!hasContentNode) {\n textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));\n }\n return fragment;\n };\n\n const DOM$2 = global$2.DOM;\n const splitList = (editor, list, li) => {\n const removeAndKeepBookmarks = targetNode => {\n global$1.each(bookmarks, node => {\n targetNode.parentNode.insertBefore(node, li.parentNode);\n });\n DOM$2.remove(targetNode);\n };\n const bookmarks = DOM$2.select('span[data-mce-type=\"bookmark\"]', list);\n const newBlock = createTextBlock(editor, li);\n const tmpRng = DOM$2.createRng();\n tmpRng.setStartAfter(li);\n tmpRng.setEndAfter(list);\n const fragment = tmpRng.extractContents();\n for (let node = fragment.firstChild; node; node = node.firstChild) {\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\n DOM$2.remove(node);\n break;\n }\n }\n if (!editor.dom.isEmpty(fragment)) {\n DOM$2.insertAfter(fragment, list);\n }\n DOM$2.insertAfter(newBlock, list);\n if (isEmpty$1(editor.dom, li.parentNode)) {\n removeAndKeepBookmarks(li.parentNode);\n }\n DOM$2.remove(li);\n if (isEmpty$1(editor.dom, list)) {\n DOM$2.remove(list);\n }\n };\n\n const isDescriptionDetail = isTag('dd');\n const isDescriptionTerm = isTag('dt');\n const outdentDlItem = (editor, item) => {\n if (isDescriptionDetail(item)) {\n mutate(item, 'dt');\n } else if (isDescriptionTerm(item)) {\n parent(item).each(dl => splitList(editor, dl.dom, item.dom));\n }\n };\n const indentDlItem = item => {\n if (isDescriptionTerm(item)) {\n mutate(item, 'dd');\n }\n };\n const dlIndentation = (editor, indentation, dlItems) => {\n if (indentation === 'Indent') {\n each$1(dlItems, indentDlItem);\n } else {\n each$1(dlItems, item => outdentDlItem(editor, item));\n }\n };\n\n const getNormalizedPoint = (container, offset) => {\n if (isTextNode(container)) {\n return {\n container,\n offset\n };\n }\n const node = global$5.getNode(container, offset);\n if (isTextNode(node)) {\n return {\n container: node,\n offset: offset >= container.childNodes.length ? node.data.length : 0\n };\n } else if (node.previousSibling && isTextNode(node.previousSibling)) {\n return {\n container: node.previousSibling,\n offset: node.previousSibling.data.length\n };\n } else if (node.nextSibling && isTextNode(node.nextSibling)) {\n return {\n container: node.nextSibling,\n offset: 0\n };\n }\n return {\n container,\n offset\n };\n };\n const normalizeRange = rng => {\n const outRng = rng.cloneRange();\n const rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);\n outRng.setStart(rangeStart.container, rangeStart.offset);\n const rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);\n outRng.setEnd(rangeEnd.container, rangeEnd.offset);\n return outRng;\n };\n\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));\n };\n const isParentListSelected = (parentList, selectedBlocks) => parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\n const findSubLists = parentList => filter$1(parentList.querySelectorAll('ol,ul,dl'), isListNode);\n const getSelectedSubLists = editor => {\n const parentList = getParentList(editor);\n const selectedBlocks = editor.selection.getSelectedBlocks();\n if (isParentListSelected(parentList, selectedBlocks)) {\n return findSubLists(parentList);\n } else {\n return filter$1(selectedBlocks, elm => {\n return isListNode(elm) && parentList !== elm;\n });\n }\n };\n const findParentListItemsNodes = (editor, elms) => {\n const listItemsElms = global$1.map(elms, elm => {\n const parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));\n return parentLi ? parentLi : elm;\n });\n return unique(listItemsElms);\n };\n const getSelectedListItems = editor => {\n const selectedBlocks = editor.selection.getSelectedBlocks();\n return filter$1(findParentListItemsNodes(editor, selectedBlocks), isListItemNode);\n };\n const getSelectedDlItems = editor => filter$1(getSelectedListItems(editor), isDlItemNode);\n const getClosestListRootElm = (editor, elm) => {\n const parentTableCell = editor.dom.getParents(elm, 'TD,TH');\n return parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\n };\n const findLastParentListNode = (editor, elm) => {\n const parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));\n return last(parentLists);\n };\n const getSelectedLists = editor => {\n const firstList = findLastParentListNode(editor, editor.selection.getStart());\n const subsequentLists = filter$1(editor.selection.getSelectedBlocks(), isOlUlNode);\n return firstList.toArray().concat(subsequentLists);\n };\n const getSelectedListRoots = editor => {\n const selectedLists = getSelectedLists(editor);\n return getUniqueListRoots(editor, selectedLists);\n };\n const getUniqueListRoots = (editor, lists) => {\n const listRoots = map(lists, list => findLastParentListNode(editor, list).getOr(list));\n return unique(listRoots);\n };\n\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n\n const fromElements = (elements, scope) => {\n const doc = scope || document;\n const fragment = doc.createDocumentFragment();\n each$1(elements, element => {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n const fireListEvent = (editor, action, element) => editor.dispatch('ListMutation', {\n action,\n element\n });\n\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty = s => !isNotEmpty(s);\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const set = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n\n const joinSegment = (parent, child) => {\n append$1(parent.item, child.list);\n };\n const joinSegments = segments => {\n for (let i = 1; i < segments.length; i++) {\n joinSegment(segments[i - 1], segments[i]);\n }\n };\n const appendSegments = (head$1, tail) => {\n lift2(last(head$1), head(tail), joinSegment);\n };\n const createSegment = (scope, listType) => {\n const segment = {\n list: SugarElement.fromTag(listType, scope),\n item: SugarElement.fromTag('li', scope)\n };\n append$1(segment.list, segment.item);\n return segment;\n };\n const createSegments = (scope, entry, size) => {\n const segments = [];\n for (let i = 0; i < size; i++) {\n segments.push(createSegment(scope, entry.listType));\n }\n return segments;\n };\n const populateSegments = (segments, entry) => {\n for (let i = 0; i < segments.length - 1; i++) {\n set(segments[i].item, 'list-style-type', 'none');\n }\n last(segments).each(segment => {\n setAll(segment.list, entry.listAttributes);\n setAll(segment.item, entry.itemAttributes);\n append(segment.item, entry.content);\n });\n };\n const normalizeSegment = (segment, entry) => {\n if (name(segment.list) !== entry.listType) {\n segment.list = mutate(segment.list, entry.listType);\n }\n setAll(segment.list, entry.listAttributes);\n };\n const createItem = (scope, attr, content) => {\n const item = SugarElement.fromTag('li', scope);\n setAll(item, attr);\n append(item, content);\n return item;\n };\n const appendItem = (segment, item) => {\n append$1(segment.list, item);\n segment.item = item;\n };\n const writeShallow = (scope, cast, entry) => {\n const newCast = cast.slice(0, entry.depth);\n last(newCast).each(segment => {\n const item = createItem(scope, entry.itemAttributes, entry.content);\n appendItem(segment, item);\n normalizeSegment(segment, entry);\n });\n return newCast;\n };\n const writeDeep = (scope, cast, entry) => {\n const segments = createSegments(scope, entry, entry.depth - cast.length);\n joinSegments(segments);\n populateSegments(segments, entry);\n appendSegments(cast, segments);\n return cast.concat(segments);\n };\n const composeList = (scope, entries) => {\n const cast = foldl(entries, (cast, entry) => {\n return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);\n }, []);\n return head(cast).map(segment => segment.list);\n };\n\n const isList = el => is$1(el, 'OL,UL');\n const hasFirstChildList = el => firstChild(el).exists(isList);\n const hasLastChildList = el => lastChild(el).exists(isList);\n\n const isIndented = entry => entry.depth > 0;\n const isSelected = entry => entry.isSelected;\n const cloneItemContent = li => {\n const children$1 = children(li);\n const content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;\n return map(content, deep);\n };\n const createEntry = (li, depth, isSelected) => parent(li).filter(isElement).map(list => ({\n depth,\n dirty: false,\n isSelected,\n content: cloneItemContent(li),\n itemAttributes: clone$1(li),\n listAttributes: clone$1(list),\n listType: name(list)\n }));\n\n const indentEntry = (indentation, entry) => {\n switch (indentation) {\n case 'Indent':\n entry.depth++;\n break;\n case 'Outdent':\n entry.depth--;\n break;\n case 'Flatten':\n entry.depth = 0;\n }\n entry.dirty = true;\n };\n\n const cloneListProperties = (target, source) => {\n target.listType = source.listType;\n target.listAttributes = { ...source.listAttributes };\n };\n const cleanListProperties = entry => {\n entry.listAttributes = filter(entry.listAttributes, (_value, key) => key !== 'start');\n };\n const closestSiblingEntry = (entries, start) => {\n const depth = entries[start].depth;\n const matches = entry => entry.depth === depth && !entry.dirty;\n const until = entry => entry.depth < depth;\n return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(() => findUntil(entries.slice(start + 1), matches, until));\n };\n const normalizeEntries = entries => {\n each$1(entries, (entry, i) => {\n closestSiblingEntry(entries, i).fold(() => {\n if (entry.dirty) {\n cleanListProperties(entry);\n }\n }, matchingEntry => cloneListProperties(entry, matchingEntry));\n });\n return entries;\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const parseItem = (depth, itemSelection, selectionState, item) => firstChild(item).filter(isList).fold(() => {\n itemSelection.each(selection => {\n if (eq(selection.start, item)) {\n selectionState.set(true);\n }\n });\n const currentItemEntry = createEntry(item, depth, selectionState.get());\n itemSelection.each(selection => {\n if (eq(selection.end, item)) {\n selectionState.set(false);\n }\n });\n const childListEntries = lastChild(item).filter(isList).map(list => parseList(depth, itemSelection, selectionState, list)).getOr([]);\n return currentItemEntry.toArray().concat(childListEntries);\n }, list => parseList(depth, itemSelection, selectionState, list));\n const parseList = (depth, itemSelection, selectionState, list) => bind(children(list), element => {\n const parser = isList(element) ? parseList : parseItem;\n const newDepth = depth + 1;\n return parser(newDepth, itemSelection, selectionState, element);\n });\n const parseLists = (lists, itemSelection) => {\n const selectionState = Cell(false);\n const initialDepth = 0;\n return map(lists, list => ({\n sourceList: list,\n entries: parseList(initialDepth, itemSelection, selectionState, list)\n }));\n };\n\n const outdentedComposer = (editor, entries) => {\n const normalizedEntries = normalizeEntries(entries);\n return map(normalizedEntries, entry => {\n const content = fromElements(entry.content);\n return SugarElement.fromDom(createTextBlock(editor, content.dom));\n });\n };\n const indentedComposer = (editor, entries) => {\n const normalizedEntries = normalizeEntries(entries);\n return composeList(editor.contentDocument, normalizedEntries).toArray();\n };\n const composeEntries = (editor, entries) => bind(groupBy(entries, isIndented), entries => {\n const groupIsIndented = head(entries).exists(isIndented);\n return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);\n });\n const indentSelectedEntries = (entries, indentation) => {\n each$1(filter$1(entries, isSelected), entry => indentEntry(indentation, entry));\n };\n const getItemSelection = editor => {\n const selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom);\n return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), (start, end) => ({\n start,\n end\n }));\n };\n const listIndentation = (editor, lists, indentation) => {\n const entrySets = parseLists(lists, getItemSelection(editor));\n each$1(entrySets, entrySet => {\n indentSelectedEntries(entrySet.entries, indentation);\n const composedLists = composeEntries(editor, entrySet.entries);\n each$1(composedLists, composedList => {\n fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom);\n });\n before(entrySet.sourceList, composedLists);\n remove(entrySet.sourceList);\n });\n };\n\n const selectionIndentation = (editor, indentation) => {\n const lists = map(getSelectedListRoots(editor), SugarElement.fromDom);\n const dlItems = map(getSelectedDlItems(editor), SugarElement.fromDom);\n let isHandled = false;\n if (lists.length || dlItems.length) {\n const bookmark = editor.selection.getBookmark();\n listIndentation(editor, lists, indentation);\n dlIndentation(editor, indentation, dlItems);\n editor.selection.moveToBookmark(bookmark);\n editor.selection.setRng(normalizeRange(editor.selection.getRng()));\n editor.nodeChanged();\n isHandled = true;\n }\n return isHandled;\n };\n const indentListSelection = editor => selectionIndentation(editor, 'Indent');\n const outdentListSelection = editor => selectionIndentation(editor, 'Outdent');\n const flattenListSelection = editor => selectionIndentation(editor, 'Flatten');\n\n var global = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\n\n const DOM$1 = global$2.DOM;\n const createBookmark = rng => {\n const bookmark = {};\n const setupEndPoint = start => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n let offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n const offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' });\n if (container.hasChildNodes()) {\n offset = Math.min(offset, container.childNodes.length - 1);\n if (start) {\n container.insertBefore(offsetNode, container.childNodes[offset]);\n } else {\n DOM$1.insertAfter(offsetNode, container.childNodes[offset]);\n }\n } else {\n container.appendChild(offsetNode);\n }\n container = offsetNode;\n offset = 0;\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n setupEndPoint(true);\n if (!rng.collapsed) {\n setupEndPoint();\n }\n return bookmark;\n };\n const resolveBookmark = bookmark => {\n const restoreEndPoint = start => {\n let node;\n const nodeIndex = container => {\n let node = container.parentNode.firstChild, idx = 0;\n while (node) {\n if (node === container) {\n return idx;\n }\n if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {\n idx++;\n }\n node = node.nextSibling;\n }\n return -1;\n };\n let container = node = bookmark[start ? 'startContainer' : 'endContainer'];\n let offset = bookmark[start ? 'startOffset' : 'endOffset'];\n if (!container) {\n return;\n }\n if (container.nodeType === 1) {\n offset = nodeIndex(container);\n container = container.parentNode;\n DOM$1.remove(node);\n if (!container.hasChildNodes() && DOM$1.isBlock(container)) {\n container.appendChild(DOM$1.create('br'));\n }\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n restoreEndPoint(true);\n restoreEndPoint();\n const rng = DOM$1.createRng();\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\n if (bookmark.endContainer) {\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\n }\n return normalizeRange(rng);\n };\n\n const listToggleActionFromListName = listName => {\n switch (listName) {\n case 'UL':\n return 'ToggleUlList';\n case 'OL':\n return 'ToggleOlList';\n case 'DL':\n return 'ToggleDLList';\n }\n };\n\n const isCustomList = list => /\\btox\\-/.test(list.className);\n const listState = (editor, listName, activate) => {\n const nodeChangeHandler = e => {\n const inList = findUntil(e.parents, isListNode, isTableCellNode).filter(list => list.nodeName === listName && !isCustomList(list)).isSome();\n activate(inList);\n };\n const parents = editor.dom.getParents(editor.selection.getNode());\n nodeChangeHandler({ parents });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n\n const updateListStyle = (dom, el, detail) => {\n const type = detail['list-style-type'] ? detail['list-style-type'] : null;\n dom.setStyle(el, 'list-style-type', type);\n };\n const setAttribs = (elm, attrs) => {\n global$1.each(attrs, (value, key) => {\n elm.setAttribute(key, value);\n });\n };\n const updateListAttrs = (dom, el, detail) => {\n setAttribs(el, detail['list-attributes']);\n global$1.each(dom.select('li', el), li => {\n setAttribs(li, detail['list-item-attributes']);\n });\n };\n const updateListWithDetails = (dom, el, detail) => {\n updateListStyle(dom, el, detail);\n updateListAttrs(dom, el, detail);\n };\n const removeStyles = (dom, element, styles) => {\n global$1.each(styles, style => dom.setStyle(element, style, ''));\n };\n const getEndPointNode = (editor, rng, start, root) => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n const offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n }\n if (!start && isBr(container.nextSibling)) {\n container = container.nextSibling;\n }\n while (container.parentNode !== root) {\n if (isTextBlock(editor, container)) {\n return container;\n }\n if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {\n return container;\n }\n container = container.parentNode;\n }\n return container;\n };\n const getSelectedTextBlocks = (editor, rng, root) => {\n const textBlocks = [];\n const dom = editor.dom;\n const startNode = getEndPointNode(editor, rng, true, root);\n const endNode = getEndPointNode(editor, rng, false, root);\n let block;\n const siblings = [];\n for (let node = startNode; node; node = node.nextSibling) {\n siblings.push(node);\n if (node === endNode) {\n break;\n }\n }\n global$1.each(siblings, node => {\n if (isTextBlock(editor, node)) {\n textBlocks.push(node);\n block = null;\n return;\n }\n if (dom.isBlock(node) || isBr(node)) {\n if (isBr(node)) {\n dom.remove(node);\n }\n block = null;\n return;\n }\n const nextSibling = node.nextSibling;\n if (global.isBookmarkNode(node)) {\n if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\n block = null;\n return;\n }\n }\n if (!block) {\n block = dom.create('p');\n node.parentNode.insertBefore(block, node);\n textBlocks.push(block);\n }\n block.appendChild(node);\n });\n return textBlocks;\n };\n const hasCompatibleStyle = (dom, sib, detail) => {\n const sibStyle = dom.getStyle(sib, 'list-style-type');\n let detailStyle = detail ? detail['list-style-type'] : '';\n detailStyle = detailStyle === null ? '' : detailStyle;\n return sibStyle === detailStyle;\n };\n const applyList = (editor, listName, detail) => {\n const rng = editor.selection.getRng();\n let listItemName = 'LI';\n const root = getClosestListRootElm(editor, editor.selection.getStart(true));\n const dom = editor.dom;\n if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\n return;\n }\n listName = listName.toUpperCase();\n if (listName === 'DL') {\n listItemName = 'DT';\n }\n const bookmark = createBookmark(rng);\n const selectedTextBlocks = getSelectedTextBlocks(editor, rng, root);\n global$1.each(selectedTextBlocks, block => {\n let listBlock;\n const sibling = block.previousSibling;\n const parent = block.parentNode;\n if (!isListItemNode(parent)) {\n if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {\n listBlock = sibling;\n block = dom.rename(block, listItemName);\n sibling.appendChild(block);\n } else {\n listBlock = dom.create(listName);\n block.parentNode.insertBefore(listBlock, block);\n listBlock.appendChild(block);\n block = dom.rename(block, listItemName);\n }\n removeStyles(dom, block, [\n 'margin',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'margin-top',\n 'padding',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'padding-top'\n ]);\n updateListWithDetails(dom, listBlock, detail);\n mergeWithAdjacentLists(editor.dom, listBlock);\n }\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n };\n const isValidLists = (list1, list2) => {\n return list1 && list2 && isListNode(list1) && list1.nodeName === list2.nodeName;\n };\n const hasSameListStyle = (dom, list1, list2) => {\n const targetStyle = dom.getStyle(list1, 'list-style-type', true);\n const style = dom.getStyle(list2, 'list-style-type', true);\n return targetStyle === style;\n };\n const hasSameClasses = (elm1, elm2) => {\n return elm1.className === elm2.className;\n };\n const shouldMerge = (dom, list1, list2) => {\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\n };\n const mergeWithAdjacentLists = (dom, listBlock) => {\n let sibling, node;\n sibling = listBlock.nextSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.firstChild) {\n listBlock.appendChild(node);\n }\n dom.remove(sibling);\n }\n sibling = listBlock.previousSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.lastChild) {\n listBlock.insertBefore(node, listBlock.firstChild);\n }\n dom.remove(sibling);\n }\n };\n const updateList$1 = (editor, list, listName, detail) => {\n if (list.nodeName !== listName) {\n const newList = editor.dom.rename(list, listName);\n updateListWithDetails(editor.dom, newList, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n } else {\n updateListWithDetails(editor.dom, list, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), list);\n }\n };\n const toggleMultipleLists = (editor, parentList, lists, listName, detail) => {\n const parentIsList = isListNode(parentList);\n if (parentIsList && parentList.nodeName === listName && !hasListStyleDetail(detail)) {\n flattenListSelection(editor);\n } else {\n applyList(editor, listName, detail);\n const bookmark = createBookmark(editor.selection.getRng());\n const allLists = parentIsList ? [\n parentList,\n ...lists\n ] : lists;\n global$1.each(allLists, elm => {\n updateList$1(editor, elm, listName, detail);\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n const hasListStyleDetail = detail => {\n return 'list-style-type' in detail;\n };\n const toggleSingleList = (editor, parentList, listName, detail) => {\n if (parentList === editor.getBody()) {\n return;\n }\n if (parentList) {\n if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {\n flattenListSelection(editor);\n } else {\n const bookmark = createBookmark(editor.selection.getRng());\n updateListWithDetails(editor.dom, parentList, detail);\n const newList = editor.dom.rename(parentList, listName);\n mergeWithAdjacentLists(editor.dom, newList);\n editor.selection.setRng(resolveBookmark(bookmark));\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n }\n } else {\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), parentList);\n }\n };\n const toggleList = (editor, listName, _detail) => {\n const parentList = getParentList(editor);\n const selectedSubLists = getSelectedSubLists(editor);\n const detail = isObject(_detail) ? _detail : {};\n if (selectedSubLists.length > 0) {\n toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);\n } else {\n toggleSingleList(editor, parentList, listName, detail);\n }\n };\n\n const DOM = global$2.DOM;\n const normalizeList = (dom, list) => {\n const parentNode = list.parentNode;\n if (parentNode.nodeName === 'LI' && parentNode.firstChild === list) {\n const sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n if (isEmpty$1(dom, parentNode)) {\n DOM.remove(parentNode);\n }\n } else {\n DOM.setStyle(parentNode, 'listStyleType', 'none');\n }\n }\n if (isListNode(parentNode)) {\n const sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n }\n }\n };\n const normalizeLists = (dom, element) => {\n const lists = global$1.grep(dom.select('ol,ul', element));\n global$1.each(lists, list => {\n normalizeList(dom, list);\n });\n };\n\n const findNextCaretContainer = (editor, rng, isForward, root) => {\n let node = rng.startContainer;\n const offset = rng.startOffset;\n if (isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) {\n return node;\n }\n const nonEmptyBlocks = editor.schema.getNonEmptyElements();\n if (node.nodeType === 1) {\n node = global$5.getNode(node, offset);\n }\n const walker = new global$4(node, root);\n if (isForward) {\n if (isBogusBr(editor.dom, node)) {\n walker.next();\n }\n }\n while (node = walker[isForward ? 'next' : 'prev2']()) {\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\n return node;\n }\n if (nonEmptyBlocks[node.nodeName]) {\n return node;\n }\n if (isTextNode(node) && node.data.length > 0) {\n return node;\n }\n }\n };\n const hasOnlyOneBlockChild = (dom, elm) => {\n const childNodes = elm.childNodes;\n return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\n };\n const unwrapSingleBlockChild = (dom, elm) => {\n if (hasOnlyOneBlockChild(dom, elm)) {\n dom.remove(elm.firstChild, true);\n }\n };\n const moveChildren = (dom, fromElm, toElm) => {\n let node;\n const targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\n unwrapSingleBlockChild(dom, fromElm);\n if (!isEmpty$1(dom, fromElm, true)) {\n while (node = fromElm.firstChild) {\n targetElm.appendChild(node);\n }\n }\n };\n const mergeLiElements = (dom, fromElm, toElm) => {\n let listNode;\n const ul = fromElm.parentNode;\n if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) {\n return;\n }\n if (isListNode(toElm.lastChild)) {\n listNode = toElm.lastChild;\n }\n if (ul === toElm.lastChild) {\n if (isBr(ul.previousSibling)) {\n dom.remove(ul.previousSibling);\n }\n }\n const node = toElm.lastChild;\n if (node && isBr(node) && fromElm.hasChildNodes()) {\n dom.remove(node);\n }\n if (isEmpty$1(dom, toElm, true)) {\n empty(SugarElement.fromDom(toElm));\n }\n moveChildren(dom, fromElm, toElm);\n if (listNode) {\n toElm.appendChild(listNode);\n }\n const contains$1 = contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));\n const nestedLists = contains$1 ? dom.getParents(fromElm, isListNode, toElm) : [];\n dom.remove(fromElm);\n each$1(nestedLists, list => {\n if (isEmpty$1(dom, list) && list !== dom.getRoot()) {\n dom.remove(list);\n }\n });\n };\n const mergeIntoEmptyLi = (editor, fromLi, toLi) => {\n empty(SugarElement.fromDom(toLi));\n mergeLiElements(editor.dom, fromLi, toLi);\n editor.selection.setCursorLocation(toLi, 0);\n };\n const mergeForward = (editor, rng, fromLi, toLi) => {\n const dom = editor.dom;\n if (dom.isEmpty(toLi)) {\n mergeIntoEmptyLi(editor, fromLi, toLi);\n } else {\n const bookmark = createBookmark(rng);\n mergeLiElements(dom, fromLi, toLi);\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n const mergeBackward = (editor, rng, fromLi, toLi) => {\n const bookmark = createBookmark(rng);\n mergeLiElements(editor.dom, fromLi, toLi);\n const resolvedBookmark = resolveBookmark(bookmark);\n editor.selection.setRng(resolvedBookmark);\n };\n const backspaceDeleteFromListToListCaret = (editor, isForward) => {\n const dom = editor.dom, selection = editor.selection;\n const selectionStartElm = selection.getStart();\n const root = getClosestListRootElm(editor, selectionStartElm);\n const li = dom.getParent(selection.getStart(), 'LI', root);\n if (li) {\n const ul = li.parentNode;\n if (ul === editor.getBody() && isEmpty$1(dom, ul)) {\n return true;\n }\n const rng = normalizeRange(selection.getRng());\n const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n if (otherLi && otherLi !== li) {\n editor.undoManager.transact(() => {\n if (isForward) {\n mergeForward(editor, rng, otherLi, li);\n } else {\n if (isFirstChild(li)) {\n outdentListSelection(editor);\n } else {\n mergeBackward(editor, rng, li, otherLi);\n }\n }\n });\n return true;\n } else if (!otherLi) {\n if (!isForward && rng.startOffset === 0 && rng.endOffset === 0) {\n editor.undoManager.transact(() => {\n flattenListSelection(editor);\n });\n return true;\n }\n }\n }\n return false;\n };\n const removeBlock = (dom, block, root) => {\n const parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\n dom.remove(block);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n dom.remove(parentBlock);\n }\n };\n const backspaceDeleteIntoListCaret = (editor, isForward) => {\n const dom = editor.dom;\n const selectionStartElm = editor.selection.getStart();\n const root = getClosestListRootElm(editor, selectionStartElm);\n const block = dom.getParent(selectionStartElm, dom.isBlock, root);\n if (block && dom.isEmpty(block)) {\n const rng = normalizeRange(editor.selection.getRng());\n const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n if (otherLi) {\n editor.undoManager.transact(() => {\n removeBlock(dom, block, root);\n mergeWithAdjacentLists(dom, otherLi.parentNode);\n editor.selection.select(otherLi, true);\n editor.selection.collapse(isForward);\n });\n return true;\n }\n }\n return false;\n };\n const backspaceDeleteCaret = (editor, isForward) => {\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\n };\n const backspaceDeleteRange = editor => {\n const selectionStartElm = editor.selection.getStart();\n const root = getClosestListRootElm(editor, selectionStartElm);\n const startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);\n if (startListParent || getSelectedListItems(editor).length > 0) {\n editor.undoManager.transact(() => {\n editor.execCommand('Delete');\n normalizeLists(editor.dom, editor.getBody());\n });\n return true;\n }\n return false;\n };\n const backspaceDelete = (editor, isForward) => {\n return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);\n };\n const setup$1 = editor => {\n editor.on('keydown', e => {\n if (e.keyCode === global$3.BACKSPACE) {\n if (backspaceDelete(editor, false)) {\n e.preventDefault();\n }\n } else if (e.keyCode === global$3.DELETE) {\n if (backspaceDelete(editor, true)) {\n e.preventDefault();\n }\n }\n });\n };\n\n const get = editor => ({\n backspaceDelete: isForward => {\n backspaceDelete(editor, isForward);\n }\n });\n\n const updateList = (editor, update) => {\n const parentList = getParentList(editor);\n editor.undoManager.transact(() => {\n if (isObject(update.styles)) {\n editor.dom.setStyles(parentList, update.styles);\n }\n if (isObject(update.attrs)) {\n each(update.attrs, (v, k) => editor.dom.setAttrib(parentList, k, v));\n }\n });\n };\n\n const parseAlphabeticBase26 = str => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n const composeAlphabeticBase26 = value => {\n value--;\n if (value < 0) {\n return '';\n } else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = str => /^[A-Z]+$/.test(str);\n const isLowercase = str => /^[a-z]+$/.test(str);\n const isNumeric = str => /^[0-9]+$/.test(str);\n const deduceListType = start => {\n if (isNumeric(start)) {\n return 2;\n } else if (isUppercase(start)) {\n return 0;\n } else if (isLowercase(start)) {\n return 1;\n } else if (isEmpty(start)) {\n return 3;\n } else {\n return 4;\n }\n };\n const parseStartValue = start => {\n switch (deduceListType(start)) {\n case 2:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4:\n return Optional.none();\n }\n };\n const parseDetail = detail => {\n const start = parseInt(detail.start, 10);\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n } else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n } else {\n return detail.start;\n }\n };\n\n const open = editor => {\n const currentList = getParentList(editor);\n if (!isOlNode(currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [{\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.some(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: api => {\n const data = api.getData();\n parseStartValue(data.start).each(detail => {\n editor.execCommand('mceListUpdate', false, {\n attrs: { start: detail.start === '1' ? '' : detail.start },\n styles: { 'list-style-type': detail.listStyleType.getOr('') }\n });\n });\n api.close();\n }\n });\n };\n\n const queryListCommandState = (editor, listName) => () => {\n const parentList = getParentList(editor);\n return parentList && parentList.nodeName === listName;\n };\n const registerDialog = editor => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n const register$2 = editor => {\n editor.on('BeforeExecCommand', e => {\n const cmd = e.command.toLowerCase();\n if (cmd === 'indent') {\n indentListSelection(editor);\n } else if (cmd === 'outdent') {\n outdentListSelection(editor);\n }\n });\n editor.addCommand('InsertUnorderedList', (ui, detail) => {\n toggleList(editor, 'UL', detail);\n });\n editor.addCommand('InsertOrderedList', (ui, detail) => {\n toggleList(editor, 'OL', detail);\n });\n editor.addCommand('InsertDefinitionList', (ui, detail) => {\n toggleList(editor, 'DL', detail);\n });\n editor.addCommand('RemoveList', () => {\n flattenListSelection(editor);\n });\n registerDialog(editor);\n editor.addCommand('mceListUpdate', (ui, detail) => {\n if (isObject(detail)) {\n updateList(editor, detail);\n }\n });\n editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));\n editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));\n editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));\n };\n\n const setupTabKey = editor => {\n editor.on('keydown', e => {\n if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {\n return;\n }\n editor.undoManager.transact(() => {\n if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {\n e.preventDefault();\n }\n });\n });\n };\n const setup = editor => {\n if (shouldIndentOnTab(editor)) {\n setupTabKey(editor);\n }\n setup$1(editor);\n };\n\n const register$1 = editor => {\n const exec = command => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: api => listState(editor, 'OL', api.setActive)\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: api => listState(editor, 'UL', api.setActive)\n });\n }\n };\n\n const register = editor => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: api => listState(editor, 'OL', api.setEnabled)\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: node => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global$6.add('lists', editor => {\n register$3(editor);\n if (editor.hasPlugin('rtc', true) === false) {\n setup(editor);\n register$2(editor);\n } else {\n registerDialog(editor);\n }\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export default "/_snowpack/pkg/tinymce/plugins/lists/plugin.js.map";