= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ;else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ;else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (_basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ;else {\n return false;\n }\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ;else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ;else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ;else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ;else if (!value) ;else {\n return false;\n }\n return true;\n };\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n var attributes = currentNode.attributes;\n if (!attributes) {\n return;\n }\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined;\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n _removeAttribute(name, currentNode);\n if (!hookEvent.keepAttr) {\n continue;\n }\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n }\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n currentNode.setAttribute(name, value);\n }\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n var shadowIterator = _createIterator(fragment);\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n _sanitizeAttributes(shadowNode);\n }\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n DOMPurify.sanitize = function (dirty, cfg) {\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n return dirty;\n }\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n DOMPurify.removed = [];\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n body.appendChild(importedNode);\n }\n } else {\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n body = _initDocument(dirty);\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n while (currentNode = nodeIterator.nextNode()) {\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n _sanitizeAttributes(currentNode);\n oldNode = currentNode;\n }\n oldNode = null;\n if (IN_PLACE) {\n return dirty;\n }\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot) {\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n if (!CONFIG) {\n _parseConfig({});\n }\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n var sanitizeHtmlString = function (html) {\n return purify().sanitize(html);\n };\n var global$e = tinymce.util.Tools.resolve('tinymce.util.I18n');\n var rtlTransform = {\n 'indent': true,\n 'outdent': true,\n 'table-insert-column-after': true,\n 'table-insert-column-before': true,\n 'paste-column-after': true,\n 'paste-column-before': true,\n 'unordered-list': true,\n 'list-bull-circle': true,\n 'list-bull-default': true,\n 'list-bull-square': true\n };\n var defaultIconName = 'temporary-placeholder';\n var defaultIcon = function (icons) {\n return function () {\n return get$e(icons, defaultIconName).getOr('!not found!');\n };\n };\n var getIconName = function (name, icons) {\n var lcName = name.toLowerCase();\n if (global$e.isRtl()) {\n var rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n var lookupIcon = function (name, icons) {\n return get$e(icons, getIconName(name, icons));\n };\n var get$1 = function (name, iconProvider) {\n var icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n var getOr = function (name, iconProvider, fallbackIcon) {\n var icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n var needsRtlTransform = function (iconName) {\n return global$e.isRtl() ? has$2(rtlTransform, iconName) : false;\n };\n var addFocusableBehaviour = function () {\n return config('add-focusable', [runOnAttached(function (comp) {\n child(comp.element, 'svg').each(function (svg) {\n return set$8(svg, 'focusable', 'false');\n });\n })]);\n };\n var renderIcon$2 = function (spec, iconName, icons, fallbackIcon) {\n var _a, _b;\n var rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n var iconHtml = get$e(icons, getIconName(iconName, icons)).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n return {\n dom: {\n tag: spec.tag,\n attributes: (_a = spec.attributes) !== null && _a !== void 0 ? _a : {},\n classes: spec.classes.concat(rtlIconClasses),\n innerHtml: iconHtml\n },\n behaviours: derive$1(__spreadArray(__spreadArray([], (_b = spec.behaviours) !== null && _b !== void 0 ? _b : [], true), [addFocusableBehaviour()], false))\n };\n };\n var render$3 = function (iconName, spec, iconProvider, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n return renderIcon$2(spec, iconName, iconProvider(), fallbackIcon);\n };\n var renderFirst = function (iconNames, spec, iconProvider) {\n var icons = iconProvider();\n var iconName = find$5(iconNames, function (name) {\n return has$2(icons, getIconName(name, icons));\n });\n return renderIcon$2(spec, iconName.getOr(defaultIconName), icons, Optional.none());\n };\n var notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n var factory$k = function (detail) {\n var memBannerText = record({\n dom: fromHtml('' + sanitizeHtmlString(detail.translationProvider(detail.text)) + '
'),\n behaviours: derive$1([Replacing.config({})])\n });\n var renderPercentBar = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n attributes: {\n style: 'width: ' + percent + '%'\n }\n }\n };\n };\n var renderPercentText = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: percent + '%'\n }\n };\n };\n var memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? ['tox-progress-bar', 'tox-progress-indicator'] : ['tox-progress-bar']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n }, renderPercentText(0)],\n behaviours: derive$1([Replacing.config({})])\n });\n var updateProgress = function (comp, percent) {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(function (progress) {\n Replacing.set(progress, [{\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n }, renderPercentText(percent)]);\n });\n }\n };\n var updateText = function (comp, text) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text$1(text)]);\n }\n };\n var apis = {\n updateProgress: updateProgress,\n updateText: updateText\n };\n var iconChoices = flatten([detail.icon.toArray(), detail.level.toArray(), detail.level.bind(function (level) {\n return Optional.from(notificationIconMap[level]);\n }).toArray()]);\n var memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-notification__dismiss', 'tox-button', 'tox-button--naked', 'tox-button--icon']\n },\n components: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon'],\n attributes: {\n 'aria-label': detail.translationProvider('Close')\n }\n }, detail.iconProvider)],\n action: function (comp) {\n detail.onAction(comp);\n }\n }));\n var notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n var notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n var components = [notificationIconSpec, notificationBodySpec];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n role: 'alert'\n },\n classes: detail.level.map(function (level) {\n return ['tox-notification', 'tox-notification--in', 'tox-notification--' + level];\n }).getOr(['tox-notification', 'tox-notification--in'])\n },\n behaviours: derive$1([Focusing.config({}), config('notification-events', [run$1(focusin(), function (comp) {\n memButton.getOpt(comp).each(Focusing.focus);\n })])]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(!detail.closeButton ? [] : [memButton.asSpec()]),\n apis: apis\n };\n };\n var Notification = single({\n name: 'Notification',\n factory: factory$k,\n configFields: [option('level'), required$1('progress'), required$1('icon'), required$1('onAction'), required$1('text'), required$1('iconProvider'), required$1('translationProvider'), defaultedBoolean('closeButton', true)],\n apis: {\n updateProgress: function (apis, comp, percent) {\n apis.updateProgress(comp, percent);\n },\n updateText: function (apis, comp, text) {\n apis.updateText(comp, text);\n }\n }\n });\n function NotificationManagerImpl(editor, extras, uiMothership) {\n var sharedBackstage = extras.backstage.shared;\n var getLayoutDirection = function (rel) {\n switch (rel) {\n case 'bc-bc':\n return south;\n case 'tc-tc':\n return north;\n case 'tc-bc':\n return north$2;\n case 'bc-tc':\n default:\n return south$2;\n }\n };\n var reposition = function (notifications) {\n if (notifications.length > 0) {\n each$1(notifications, function (notification, index) {\n if (index === 0) {\n notification.moveRel(null, 'banner');\n } else {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n var open = function (settings, closeCallback) {\n var hideCloseButton = !settings.closeButton && settings.timeout && (settings.timeout > 0 || settings.timeout < 0);\n var close = function () {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n var notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains$2(['success', 'error', 'warning', 'warn', 'info'], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Optional.from(settings.icon),\n closeButton: !hideCloseButton,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n translationProvider: sharedBackstage.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch(__assign({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {}\n }, sharedBackstage.header.isPositionedAtTop() ? {} : {\n fireRepositionEventInstead: {}\n })));\n uiMothership.add(notificationWrapper);\n if (settings.timeout > 0) {\n global$f.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n var getBounds = function () {\n var contentArea = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var win$1 = win();\n var x = clamp$1(win$1.x, contentArea.x, contentArea.right);\n var y = clamp$1(win$1.y, contentArea.y, contentArea.bottom);\n var right = Math.max(contentArea.right, win$1.right);\n var bottom = Math.max(contentArea.bottom, win$1.bottom);\n return Optional.some(bounds(x, y, right - x, bottom - y));\n };\n return {\n close: close,\n moveTo: function (x, y) {\n InlineView.showAt(notificationWrapper, premade(notification), {\n anchor: {\n type: 'makeshift',\n x: x,\n y: y\n }\n });\n },\n moveRel: function (element, rel) {\n var notificationSpec = premade(notification);\n var anchorOverrides = {\n maxHeightFunction: expandable$1()\n };\n if (rel !== 'banner' && isNonNullable(element)) {\n var layoutDirection_1 = getLayoutDirection(rel);\n var nodeAnchor = {\n type: 'node',\n root: body(),\n node: Optional.some(SugarElement.fromDom(element)),\n overrides: anchorOverrides,\n layouts: {\n onRtl: function () {\n return [layoutDirection_1];\n },\n onLtr: function () {\n return [layoutDirection_1];\n }\n }\n };\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, {\n anchor: nodeAnchor\n }, getBounds);\n } else {\n var anchor = __assign(__assign({}, sharedBackstage.anchors.banner()), {\n overrides: anchorOverrides\n });\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, {\n anchor: anchor\n }, getBounds);\n }\n },\n text: function (nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function () {\n return notification.element.dom;\n },\n progressBar: {\n value: function (percent) {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n };\n var close = function (notification) {\n notification.close();\n };\n var getArgs = function (notification) {\n return notification.settings;\n };\n return {\n open: open,\n close: close,\n reposition: reposition,\n getArgs: getArgs\n };\n }\n var first = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (isNull(timer)) {\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n cancel();\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var global$d = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');\n var isBoundary = function (dom, node) {\n return dom.isBlock(node) || contains$2(['BR', 'IMG', 'HR', 'INPUT'], node.nodeName) || dom.getContentEditable(node) === 'false';\n };\n var repeatLeft = function (dom, node, offset, process, rootNode) {\n var search = global$d(dom, function (node) {\n return isBoundary(dom, node);\n });\n return Optional.from(search.backwards(node, offset, process, rootNode));\n };\n var autocompleteSelector = '[data-mce-autocompleter]';\n var create$4 = function (editor, range) {\n return detect(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {\n var wrapper = SugarElement.fromHtml('', editor.getDoc());\n append$2(wrapper, SugarElement.fromDom(range.extractContents()));\n range.insertNode(wrapper.dom);\n parent(wrapper).each(function (elm) {\n return elm.dom.normalize();\n });\n last$1(wrapper).map(function (last) {\n editor.selection.setCursorLocation(last.dom, getEnd(last));\n });\n return wrapper;\n });\n };\n var detect = function (elm) {\n return closest$1(elm, autocompleteSelector);\n };\n var isValidTextRange = function (rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n var getText = function (rng) {\n return rng.toString().replace(/\\u00A0/g, ' ').replace(/\\uFEFF/g, '');\n };\n var isWhitespace = function (chr) {\n return chr !== '' && ' \\xA0\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n };\n var stripTriggerChar = function (text, triggerCh) {\n return text.substring(triggerCh.length);\n };\n var findChar = function (text, index, ch) {\n var i;\n for (i = index - 1; i >= 0; i--) {\n var char = text.charAt(i);\n if (isWhitespace(char)) {\n return Optional.none();\n }\n if (char === ch) {\n break;\n }\n }\n return Optional.some(i);\n };\n var findStart = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n var findTriggerChIndex = function (element, offset, text) {\n return findChar(text, offset, ch).getOr(offset);\n };\n var root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerChIndex, root).bind(function (spot) {\n var range = initRange.cloneRange();\n range.setStart(spot.container, spot.offset);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n if (range.collapsed) {\n return Optional.none();\n }\n var text = getText(range);\n var triggerCharIndex = text.lastIndexOf(ch);\n if (triggerCharIndex !== 0 || stripTriggerChar(text, ch).length < minChars) {\n return Optional.none();\n } else {\n return Optional.some({\n text: stripTriggerChar(text, ch),\n range: range,\n triggerChar: ch\n });\n }\n });\n };\n var getContext = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n return detect(SugarElement.fromDom(initRange.startContainer)).fold(function () {\n return findStart(dom, initRange, ch, minChars);\n }, function (elm) {\n var range = dom.createRng();\n range.selectNode(elm.dom);\n var text = getText(range);\n return Optional.some({\n range: range,\n text: stripTriggerChar(text, ch),\n triggerChar: ch\n });\n });\n };\n var setup$e = function (api, editor) {\n editor.on('keypress compositionend', api.onKeypress.throttle);\n editor.on('remove', api.onKeypress.cancel);\n var redirectKeyToItem = function (item, e) {\n emitWith(item, keydown(), {\n raw: e\n });\n };\n editor.on('keydown', function (e) {\n var getItem = function () {\n return api.getView().bind(Highlighting.getHighlighted);\n };\n if (e.which === 8) {\n api.onKeypress.throttle(e);\n }\n if (api.isActive()) {\n if (e.which === 27) {\n api.cancelIfNecessary();\n }\n if (api.isMenuOpen()) {\n if (e.which === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (e.which === 40) {\n getItem().fold(function () {\n api.getView().each(Highlighting.highlightFirst);\n }, function (item) {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (e.which === 37 || e.which === 38 || e.which === 39) {\n getItem().each(function (item) {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (e.which === 13 || e.which === 38 || e.which === 40) {\n api.cancelIfNecessary();\n }\n }\n }\n });\n editor.on('NodeChange', function (e) {\n if (api.isActive() && !api.isProcessingAction() && detect(SugarElement.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n var AutocompleterEditorEvents = {\n setup: setup$e\n };\n var global$c = tinymce.util.Tools.resolve('tinymce.util.Promise');\n var point = function (container, offset) {\n return {\n container: container,\n offset: offset\n };\n };\n var isText = function (node) {\n return node.nodeType === TEXT;\n };\n var isElement$1 = function (node) {\n return node.nodeType === ELEMENT;\n };\n var toLast = function (node) {\n if (isText(node)) {\n return point(node, node.data.length);\n } else {\n var children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n }\n };\n var toLeaf = function (node, offset) {\n var children = node.childNodes;\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement$1(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point(node, offset);\n }\n };\n var isPreviousCharContent = function (dom, leaf) {\n return repeatLeft(dom, leaf.container, leaf.offset, function (element, offset) {\n return offset === 0 ? -1 : offset;\n }, dom.getRoot()).filter(function (spot) {\n var char = spot.container.data.charAt(spot.offset - 1);\n return !isWhitespace(char);\n }).isSome();\n };\n var isStartOfWord = function (dom) {\n return function (rng) {\n var leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n };\n var getTriggerContext = function (dom, initRange, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(dom, initRange, ch);\n });\n };\n var lookup$2 = function (editor, getDatabase) {\n var database = getDatabase();\n var rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(function (context) {\n return lookupWithContext(editor, getDatabase, context);\n });\n };\n var lookupWithContext = function (editor, getDatabase, context, fetchOptions) {\n if (fetchOptions === void 0) {\n fetchOptions = {};\n }\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n var autocompleters = filter$2(database.lookupByChar(context.triggerChar), function (autocompleter) {\n return context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(function () {\n return isStartOfWord(editor.dom);\n })(context.range, startText, context.text);\n });\n if (autocompleters.length === 0) {\n return Optional.none();\n }\n var lookupData = global$c.all(map$2(autocompleters, function (ac) {\n var fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(function (results) {\n return {\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction,\n highlightOn: ac.highlightOn\n };\n });\n }));\n return Optional.some({\n lookupData: lookupData,\n context: context\n });\n };\n var separatorMenuItemSchema = objOf([requiredString('type'), optionString('text')]);\n var createSeparatorMenuItem = function (spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n var autocompleterItemSchema = objOf([defaulted('type', 'autocompleteitem'), defaulted('active', false), defaulted('disabled', false), defaulted('meta', {}), requiredString('value'), optionString('text'), optionString('icon')]);\n var autocompleterSchema = objOf([requiredString('type'), requiredString('ch'), defaultedNumber('minChars', 1), defaulted('columns', 1), defaultedNumber('maxResults', 10), optionFunction('matches'), requiredFunction('fetch'), requiredFunction('onAction'), defaultedArrayOf('highlightOn', [], string)]);\n var createSeparatorItem = function (spec) {\n return asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n };\n var createAutocompleterItem = function (spec) {\n return asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n };\n var createAutocompleter = function (spec) {\n return asRaw('Autocompleter', autocompleterSchema, spec);\n };\n var baseToolbarButtonFields = [defaultedBoolean('disabled', false), optionString('tooltip'), optionString('icon'), optionString('text'), defaultedFunction('onSetup', function () {\n return noop;\n })];\n var toolbarButtonSchema = objOf([requiredString('type'), requiredFunction('onAction')].concat(baseToolbarButtonFields));\n var createToolbarButton = function (spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([requiredString('type'), requiredFunction('onAction')]));\n var createToggleButton = function (spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n var contextBarFields = [defaultedFunction('predicate', never), defaultedStringEnum('scope', 'node', ['node', 'editor']), defaultedStringEnum('position', 'selection', ['node', 'selection', 'line'])];\n var contextButtonFields = baseToolbarButtonFields.concat([defaulted('type', 'contextformbutton'), defaulted('primary', false), requiredFunction('onAction'), customField('original', identity$1)]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted('type', 'contextformbutton'), defaulted('primary', false), requiredFunction('onAction'), customField('original', identity$1)]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([defaulted('type', 'contextform'), defaultedFunction('initValue', constant$1('')), optionString('label'), requiredArrayOf('commands', toggleOrNormal), optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))].concat(contextBarFields));\n var createContextForm = function (spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n var contextToolbarSchema = objOf([defaulted('type', 'contexttoolbar'), requiredString('items')].concat(contextBarFields));\n var createContextToolbar = function (spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n var stringArray = function (a) {\n var all = {};\n each$1(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n var register$b = function (editor) {\n var popups = editor.ui.registry.getAll().popups;\n var dataset = map$1(popups, function (popup) {\n return createAutocompleter(popup).fold(function (err) {\n throw new Error(formatError(err));\n }, identity$1);\n });\n var triggerChars = stringArray(mapToArray(dataset, function (v) {\n return v.ch;\n }));\n var datasetValues = values(dataset);\n var lookupByChar = function (ch) {\n return filter$2(datasetValues, function (dv) {\n return dv.ch === ch;\n });\n };\n return {\n dataset: dataset,\n triggerChars: triggerChars,\n lookupByChar: lookupByChar\n };\n };\n var ItemResponse = /*#__PURE__*/function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n return ItemResponse;\n }(ItemResponse || {});\n var ItemResponse$1 = ItemResponse;\n var navClass = 'tox-menu-nav__js';\n var selectableClass = 'tox-collection__item';\n var colorClass = 'tox-swatch';\n var presetClasses = {\n normal: navClass,\n color: colorClass\n };\n var tickedClass = 'tox-collection__item--enabled';\n var groupHeadingClass = 'tox-collection__group-heading';\n var iconClass = 'tox-collection__item-icon';\n var textClass = 'tox-collection__item-label';\n var accessoryClass = 'tox-collection__item-accessory';\n var caretClass = 'tox-collection__item-caret';\n var checkmarkClass = 'tox-collection__item-checkmark';\n var activeClass = 'tox-collection__item--active';\n var containerClass = 'tox-collection__item-container';\n var containerColumnClass = 'tox-collection__item-container--column';\n var containerRowClass = 'tox-collection__item-container--row';\n var containerAlignRightClass = 'tox-collection__item-container--align-right';\n var containerAlignLeftClass = 'tox-collection__item-container--align-left';\n var containerValignTopClass = 'tox-collection__item-container--valign-top';\n var containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n var containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n var classForPreset = function (presets) {\n return get$e(presetClasses, presets).getOr(navClass);\n };\n var forMenu = function (presets) {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n var classes = function (presets) {\n return {\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n };\n };\n var markers = function (presets) {\n var menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n var dom$1 = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([[menuClasses.menu, 'tox-menu-' + columns + '-column'], hasIcons ? [menuClasses.hasIcons] : []])\n };\n };\n var components = [Menu.parts.items({})];\n var part = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n var d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers(presets)\n };\n };\n var chunk = function (rowDom, numColumns) {\n return function (items) {\n var chunks = chunk$1(items, numColumns);\n return map$2(chunks, function (c) {\n return {\n dom: rowDom,\n components: c\n };\n });\n };\n };\n var forSwatch = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-swatches-menu']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity$1\n })]\n }]\n };\n };\n var forToolbar = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-collection', 'tox-collection--toolbar', 'tox-collection--toolbar-lg']\n },\n components: [Menu.parts.items({\n preprocess: chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n };\n };\n var preprocessCollection = function (items, isSeparator) {\n var allSplits = [];\n var currentSplit = [];\n each$1(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has$2(item.dom, 'innerHtml')) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map$2(allSplits, function (s) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n };\n });\n };\n var forCollection = function (columns, initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-collection'].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts.items({\n preprocess: function (items) {\n if (columns !== 'auto' && columns > 1) {\n return chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(items);\n } else {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n }\n })]\n };\n };\n var forHorizontalCollection = function (initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection', 'tox-collection--horizontal']\n },\n components: [Menu.parts.items({\n preprocess: function (items) {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n })]\n };\n };\n var menuHasIcons = function (xs) {\n return exists(xs, function (item) {\n return 'icon' in item && item.icon !== undefined;\n });\n };\n var handleError = function (error) {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n var createHorizontalPartialMenuWithAlloyItems = function (value, _hasIcons, items, _columns, _presets) {\n var structure = forHorizontalCollection(items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n };\n var createPartialMenuWithAlloyItems = function (value, hasIcons, items, columns, presets) {\n if (presets === 'color') {\n var structure = forSwatch(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 'auto') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 1) {\n var structure = forCollection(1, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'listpreview' && columns !== 'auto') {\n var structure = forToolbar(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n return {\n value: value,\n dom: dom$1(hasIcons, columns, presets),\n components: components,\n items: items\n };\n };\n var cardImageFields = [requiredString('type'), requiredString('src'), optionString('alt'), defaultedArrayOf('classes', [], string)];\n var cardImageSchema = objOf(cardImageFields);\n var cardTextFields = [requiredString('type'), requiredString('text'), optionString('name'), defaultedArrayOf('classes', ['tox-collection__item-label'], string)];\n var cardTextSchema = objOf(cardTextFields);\n var itemSchema$1 = valueThunk(function () {\n return choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n });\n });\n var cardContainerSchema = objOf([requiredString('type'), defaultedString('direction', 'horizontal'), defaultedString('align', 'left'), defaultedString('valign', 'middle'), requiredArrayOf('items', itemSchema$1)]);\n var commonMenuItemFields = [defaultedBoolean('disabled', false), optionString('text'), optionString('shortcut'), field$1('value', 'value', defaultedThunk(function () {\n return generate$6('menuitem-value');\n }), anyValue()), defaulted('meta', {})];\n var cardMenuItemSchema = objOf([requiredString('type'), optionString('label'), requiredArrayOf('items', itemSchema$1), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedFunction('onAction', noop)].concat(commonMenuItemFields));\n var createCardMenuItem = function (spec) {\n return asRaw('cardmenuitem', cardMenuItemSchema, spec);\n };\n var choiceMenuItemSchema = objOf([requiredString('type'), defaultedBoolean('active', false), optionString('icon')].concat(commonMenuItemFields));\n var createChoiceMenuItem = function (spec) {\n return asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n };\n var baseFields = [requiredString('type'), requiredString('fancytype'), defaultedFunction('onAction', noop)];\n var insertTableFields = [defaulted('initData', {})].concat(baseFields);\n var colorSwatchFields = [defaultedObjOf('initData', {}, [defaultedBoolean('allowCustomColors', true), optionArrayOf('colors', anyValue())])].concat(baseFields);\n var fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n var createFancyMenuItem = function (spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n var menuItemSchema = objOf([requiredString('type'), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedFunction('onAction', noop), optionString('icon')].concat(commonMenuItemFields));\n var createMenuItem = function (spec) {\n return asRaw('menuitem', menuItemSchema, spec);\n };\n var nestedMenuItemSchema = objOf([requiredString('type'), requiredFunction('getSubmenuItems'), defaultedFunction('onSetup', function () {\n return noop;\n }), optionString('icon')].concat(commonMenuItemFields));\n var createNestedMenuItem = function (spec) {\n return asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n };\n var toggleMenuItemSchema = objOf([requiredString('type'), optionString('icon'), defaultedBoolean('active', false), defaultedFunction('onSetup', function () {\n return noop;\n }), requiredFunction('onAction')].concat(commonMenuItemFields));\n var createToggleMenuItem = function (spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n };\n var detectSize = function (comp, margin, selectorClass) {\n var descendants$1 = descendants(comp.element, '.' + selectorClass);\n if (descendants$1.length > 0) {\n var columnLength = findIndex$1(descendants$1, function (c) {\n var thisTop = c.dom.getBoundingClientRect().top;\n var cTop = descendants$1[0].dom.getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Optional.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Optional.none();\n }\n };\n var namedEvents = function (name, handlers) {\n return derive$1([config(name, handlers)]);\n };\n var unnamedEvents = function (handlers) {\n return namedEvents(generate$6('unnamed-events'), handlers);\n };\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n var ExclusivityChannel = generate$6('tooltip.exclusive');\n var ShowTooltipEvent = generate$6('tooltip.show');\n var HideTooltipEvent = generate$6('tooltip.hide');\n var hideAllExclusive = function (component, _tConfig, _tState) {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n var setComponents = function (component, tConfig, tState, specs) {\n tState.getTooltip().each(function (tooltip) {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n var events$9 = function (tooltipConfig, state) {\n var hide = function (comp) {\n state.getTooltip().each(function (p) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n var show = function (comp) {\n if (!state.isShowing()) {\n hideAllExclusive(comp);\n var sink = tooltipConfig.lazySink(comp).getOrDie();\n var popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [run$1(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }), run$1(mouseout(), function (_) {\n emit(comp, HideTooltipEvent);\n })] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, popup, {\n anchor: tooltipConfig.anchor(comp)\n });\n }\n };\n return derive$2(flatten([[run$1(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }), run$1(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }), run$1(receive(), function (comp, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }), runOnDetached(function (comp) {\n hide(comp);\n })], tooltipConfig.mode === 'normal' ? [run$1(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }), run$1(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }), run$1(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }), run$1(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })] : [run$1(highlight$1(), function (comp, _se) {\n emit(comp, ShowTooltipEvent);\n }), run$1(dehighlight$1(), function (comp) {\n emit(comp, HideTooltipEvent);\n })]]));\n };\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$9\n });\n var TooltippingSchema = [required$1('lazySink'), required$1('tooltipDom'), defaulted('exclusive', true), defaulted('tooltipComponents', []), defaulted('delay', 300), defaultedStringEnum('mode', 'normal', ['normal', 'follow-highlight']), defaulted('anchor', function (comp) {\n return {\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([south$2, north$2, southeast$2, northeast$2, southwest$2, northwest$2]),\n onRtl: constant$1([south$2, north$2, southeast$2, northeast$2, southwest$2, northwest$2])\n }\n };\n }), onHandler('onHide'), onHandler('onShow')];\n var init$b = function () {\n var timer = value$1();\n var popup = value$1();\n var clearTimer = function () {\n timer.on(clearTimeout);\n };\n var resetTimer = function (f, delay) {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n var readState = constant$1('not-implemented');\n return nu$8({\n getTooltip: popup.get,\n isShowing: popup.isSet,\n setTooltip: popup.set,\n clearTooltip: popup.clear,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$b\n });\n var Tooltipping = create$8({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n var escape = function (text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n };\n var global$b = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n var global$a = tinymce.util.Tools.resolve('tinymce.EditorManager');\n var getSkinUrl = function (editor) {\n var skin = editor.getParam('skin');\n var skinUrl = editor.getParam('skin_url');\n if (skin !== false) {\n var skinName = skin ? skin : 'oxide';\n if (skinUrl) {\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n skinUrl = global$a.baseURL + '/skins/ui/' + skinName;\n }\n }\n return skinUrl;\n };\n var isReadOnly = function (editor) {\n return editor.getParam('readonly', false, 'boolean');\n };\n var isSkinDisabled = function (editor) {\n return editor.getParam('skin') === false;\n };\n var getHeightSetting = function (editor) {\n return editor.getParam('height', Math.max(editor.getElement().offsetHeight, 200));\n };\n var getWidthSetting = function (editor) {\n return editor.getParam('width', global$b.DOM.getStyle(editor.getElement(), 'width'));\n };\n var getMinWidthSetting = function (editor) {\n return Optional.from(editor.getParam('min_width')).filter(isNumber);\n };\n var getMinHeightSetting = function (editor) {\n return Optional.from(editor.getParam('min_height')).filter(isNumber);\n };\n var getMaxWidthSetting = function (editor) {\n return Optional.from(editor.getParam('max_width')).filter(isNumber);\n };\n var getMaxHeightSetting = function (editor) {\n return Optional.from(editor.getParam('max_height')).filter(isNumber);\n };\n var getUserStyleFormats = function (editor) {\n return Optional.from(editor.getParam('style_formats')).filter(isArray);\n };\n var isMergeStyleFormats = function (editor) {\n return editor.getParam('style_formats_merge', false, 'boolean');\n };\n var getLineHeightFormats = function (editor) {\n return editor.getParam('lineheight_formats', '1 1.1 1.2 1.3 1.4 1.5 2', 'string').split(' ');\n };\n var getContentLanguages = function (editor) {\n return editor.getParam('content_langs', undefined, 'array');\n };\n var getRemovedMenuItems = function (editor) {\n return editor.getParam('removed_menuitems', '');\n };\n var isMenubarEnabled = function (editor) {\n return editor.getParam('menubar', true, 'boolean') !== false;\n };\n var isToolbarEnabled = function (editor) {\n var toolbar = editor.getParam('toolbar', true);\n var isToolbarTrue = toolbar === true;\n var isToolbarString = isString(toolbar);\n var isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || isToolbarTrue);\n };\n var getMultipleToolbarsSetting = function (editor) {\n var toolbars = range$2(9, function (num) {\n return editor.getParam('toolbar' + (num + 1), false, 'string');\n });\n var toolbarArray = filter$2(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Optional.some(toolbarArray) : Optional.none();\n };\n var isMultipleToolbars = function (editor) {\n return getMultipleToolbarsSetting(editor).fold(function () {\n var toolbar = editor.getParam('toolbar', [], 'string[]');\n return toolbar.length > 0;\n }, always);\n };\n var ToolbarMode = /*#__PURE__*/function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n return ToolbarMode;\n }(ToolbarMode || {});\n var getToolbarMode = function (editor) {\n return editor.getParam('toolbar_mode', '', 'string');\n };\n var ToolbarLocation = /*#__PURE__*/function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n return ToolbarLocation;\n }(ToolbarLocation || {});\n var getToolbarGroups = function (editor) {\n return editor.getParam('toolbar_groups', {}, 'object');\n };\n var getToolbarLocation = function (editor) {\n return editor.getParam('toolbar_location', ToolbarLocation.auto, 'string');\n };\n var isToolbarLocationBottom = function (editor) {\n return getToolbarLocation(editor) === ToolbarLocation.bottom;\n };\n var fixedContainerSelector = function (editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n var fixedToolbarContainerTarget = function (editor) {\n return editor.getParam('fixed_toolbar_container_target');\n };\n var isToolbarPersist = function (editor) {\n return editor.getParam('toolbar_persist', false, 'boolean');\n };\n var fixedContainerTarget = function (editor) {\n if (!editor.inline) {\n return Optional.none();\n }\n var selector = fixedContainerSelector(editor);\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n var element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n var useFixedContainer = function (editor) {\n return editor.inline && fixedContainerTarget(editor).isSome();\n };\n var getUiContainer = function (editor) {\n var fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(function () {\n return getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement())));\n });\n };\n var isDistractionFree = function (editor) {\n return editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n };\n var isStickyToolbar = function (editor) {\n var isStickyToolbar = editor.getParam('toolbar_sticky', false, 'boolean');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n var getStickyToolbarOffset = function (editor) {\n return editor.getParam('toolbar_sticky_offset', 0, 'number');\n };\n var isDraggableModal$1 = function (editor) {\n return editor.getParam('draggable_modal', false, 'boolean');\n };\n var getMenus = function (editor) {\n var menu = editor.getParam('menu');\n if (menu) {\n return map$1(menu, function (menu) {\n return __assign(__assign({}, menu), {\n items: menu.items\n });\n });\n } else {\n return {};\n }\n };\n var getMenubar = function (editor) {\n return editor.getParam('menubar');\n };\n var getToolbar = function (editor) {\n return editor.getParam('toolbar', true);\n };\n var getFilePickerCallback = function (editor) {\n return editor.getParam('file_picker_callback');\n };\n var getFilePickerTypes = function (editor) {\n return editor.getParam('file_picker_types');\n };\n var getFileBrowserCallbackTypes = function (editor) {\n return editor.getParam('file_browser_callback_types');\n };\n var noTypeaheadUrls = function (editor) {\n return editor.getParam('typeahead_urls') === false;\n };\n var getAnchorTop = function (editor) {\n return editor.getParam('anchor_top', '#top');\n };\n var getAnchorBottom = function (editor) {\n return editor.getParam('anchor_bottom', '#bottom');\n };\n var getFilePickerValidatorHandler = function (editor) {\n var handler = editor.getParam('file_picker_validator_handler', undefined, 'function');\n if (handler === undefined) {\n return editor.getParam('filepicker_validator_handler', undefined, 'function');\n } else {\n return handler;\n }\n };\n var ReadOnlyChannel = 'silver.readonly';\n var ReadOnlyDataSchema = objOf([requiredBoolean('readonly')]);\n var broadcastReadonly = function (uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n var target = outerContainer.element;\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], {\n target: target\n });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], {\n target: target\n });\n }\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], {\n readonly: readonly\n });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], {\n readonly: readonly\n });\n };\n var setupReadonlyModeSwitch = function (editor, uiComponents) {\n editor.on('init', function () {\n if (editor.mode.isReadOnly()) {\n broadcastReadonly(uiComponents, true);\n }\n });\n editor.on('SwitchMode', function () {\n return broadcastReadonly(uiComponents, editor.mode.isReadOnly());\n });\n if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n };\n var receivingConfig = function () {\n var _a;\n return Receiving.config({\n channels: (_a = {}, _a[ReadOnlyChannel] = {\n schema: ReadOnlyDataSchema,\n onReceive: function (comp, data) {\n Disabling.set(comp, data.readonly);\n }\n }, _a)\n });\n };\n var item = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n };\n var button = function (disabled) {\n return Disabling.config({\n disabled: disabled\n });\n };\n var splitButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n };\n var toolbarButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n };\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton,\n toolbarButton: toolbarButton\n };\n var runWithApi = function (info, comp) {\n var api = info.getApi(comp);\n return function (f) {\n f(api);\n };\n };\n var onControlAttached = function (info, editorOffCell) {\n return runOnAttached(function (comp) {\n var run = runWithApi(info, comp);\n run(function (api) {\n var onDestroy = info.onSetup(api);\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n };\n var onControlDetached = function (getApi, editorOffCell) {\n return runOnDetached(function (comp) {\n return runWithApi(getApi, comp)(editorOffCell.get());\n });\n };\n var _a$1;\n var onMenuItemExecute = function (info, itemResponse) {\n return runOnExecute$1(function (comp, simulatedEvent) {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n emit(comp, sandboxClose());\n simulatedEvent.stop();\n }\n });\n };\n var menuItemEventOrder = (_a$1 = {}, _a$1[execute$5()] = ['disabling', 'alloy.base.behaviour', 'toggling', 'item-events'], _a$1);\n var componentRenderPipeline = cat;\n var renderCommonItem = function (spec, structure, itemResponse, providersbackstage) {\n var editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([config('item-events', [onMenuItemExecute(spec, itemResponse), onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell)]), DisablingConfigs.item(function () {\n return spec.disabled || providersbackstage.isDisabled();\n }), receivingConfig(), Replacing.config({})].concat(spec.itemBehaviours))\n };\n };\n var buildData = function (source) {\n return {\n value: source.value,\n meta: __assign({\n text: source.text.getOr('')\n }, source.meta)\n };\n };\n var global$9 = tinymce.util.Tools.resolve('tinymce.Env');\n var convertText = function (source) {\n var mac = {\n alt: '⌥',\n ctrl: '⌃',\n shift: '⇧',\n meta: '⌘',\n access: '⌃⌥'\n };\n var other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n var replace = global$9.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map$2(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return global$9.mac ? updated.join('') : updated.join('+');\n };\n var renderIcon$1 = function (name, icons, classes) {\n if (classes === void 0) {\n classes = [iconClass];\n }\n return render$3(name, {\n tag: 'div',\n classes: classes\n }, icons);\n };\n var renderText = function (text) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text$1(global$e.translate(text))]\n };\n };\n var renderHtml = function (html, classes) {\n return {\n dom: {\n tag: 'div',\n classes: classes,\n innerHtml: html\n }\n };\n };\n var renderStyledText = function (style, text) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n styles: style.styles\n },\n components: [text$1(global$e.translate(text))]\n }]\n };\n };\n var renderShortcut = function (shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: convertText(shortcut)\n }\n };\n };\n var renderCheckmark = function (icons) {\n return renderIcon$1('checkmark', icons, [checkmarkClass]);\n };\n var renderSubmenuCaret = function (icons) {\n return renderIcon$1('chevron-right', icons, [caretClass]);\n };\n var renderDownwardsCaret = function (icons) {\n return renderIcon$1('chevron-down', icons, [caretClass]);\n };\n var renderContainer = function (container, components) {\n var directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n var alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n var getValignClass = function () {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n case 'middle':\n return containerValignMiddleClass;\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n return {\n dom: {\n tag: 'div',\n classes: [containerClass, directionClass, alignClass, getValignClass()]\n },\n components: components\n };\n };\n var renderImage = function (src, classes, alt) {\n return {\n dom: {\n tag: 'img',\n classes: classes,\n attributes: {\n src: src,\n alt: alt.getOr('')\n }\n }\n };\n };\n var renderColorStructure = function (item, providerBackstage, fallbackIcon) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var itemText = item.ariaLabel;\n var itemValue = item.value;\n var iconSvg = item.iconContent.map(function (name) {\n return getOr(name, providerBackstage.icons, fallbackIcon);\n });\n var getDom = function () {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var attributes = itemText.map(function (text) {\n return {\n title: providerBackstage.translate(text)\n };\n }).getOr({});\n var baseDom = {\n tag: 'div',\n attributes: attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return __assign(__assign({}, baseDom), {\n tag: 'button',\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatches__picker-btn'], false),\n innerHtml: icon\n });\n } else if (itemValue === removeColorCommand) {\n return __assign(__assign({}, baseDom), {\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatch--remove'], false),\n innerHtml: icon\n });\n } else {\n return __assign(__assign({}, baseDom), {\n attributes: __assign(__assign({}, baseDom.attributes), {\n 'data-mce-color': itemValue\n }),\n styles: {\n 'background-color': itemValue\n }\n });\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n var renderItemDomStructure = function (ariaLabel) {\n var domTitle = ariaLabel.map(function (label) {\n return {\n attributes: {\n title: global$e.translate(label)\n }\n };\n }).getOr({});\n return __assign({\n tag: 'div',\n classes: [navClass, selectableClass]\n }, domTitle);\n };\n var renderNormalItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n var iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n var renderIcon = function (iconName) {\n return render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n };\n var renderEmptyIcon = function () {\n return Optional.some({\n dom: iconSpec\n });\n };\n var leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n var checkmark = info.checkMark;\n var textRender = Optional.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n var content = info.htmlContent.fold(function () {\n return info.textContent.map(textRender);\n }, function (html) {\n return Optional.some(renderHtml(html, [textClass]));\n });\n var menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [leftIcon, content, info.shortcutContent.map(renderShortcut), checkmark, info.caret]\n };\n return menuItem;\n };\n var renderItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n var tooltipBehaviour = function (meta, sharedBackstage) {\n return get$e(meta, 'tooltipWorker').map(function (tooltipWorker) {\n return [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: function (comp) {\n return {\n type: 'submenu',\n item: comp,\n overrides: {\n maxHeightFunction: expandable$1\n }\n };\n },\n mode: 'follow-highlight',\n onShow: function (component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external$2({\n element: SugarElement.fromDom(elm)\n })]);\n });\n }\n })];\n }).getOr([]);\n };\n var encodeText = function (text) {\n return global$b.DOM.encode(text);\n };\n var replaceText = function (text, matchText) {\n var translated = global$e.translate(text);\n var encoded = encodeText(translated);\n if (matchText.length > 0) {\n var escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, function (match) {\n return '' + match + '';\n });\n } else {\n return encoded;\n }\n };\n var renderAutocompleteItem = function (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var structure = renderItemStructure({\n presets: presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(function (text) {\n return replaceText(text, matchText);\n }) : Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Optional.none(),\n checkMark: Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n return renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: constant$1({}),\n onAction: function (_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n var render$2 = function (items, extras) {\n return map$2(items, function (item) {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render$2(item.items, extras));\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n case 'cardtext':\n var shouldHighlight = item.name.exists(function (name) {\n return contains$2(extras.cardText.highlightOn, name);\n });\n var matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n };\n var renderCardMenuItem = function (spec, itemResponse, sharedBackstage, extras) {\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n Disabling.set(component, state);\n each$1(descendants(component.element, '*'), function (elm) {\n component.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, state);\n }\n });\n });\n }\n };\n };\n var structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [containerClass, containerRowClass]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n data: buildData(__assign({\n text: Optional.none()\n }, spec)),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: Optional.from(extras.itemBehaviours).getOr([])\n }, structure, itemResponse, sharedBackstage.providers);\n };\n var renderChoiceItem = function (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: presets,\n textContent: useText ? spec.text : Optional.none(),\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Optional.none(),\n checkMark: useText ? Optional.some(renderCheckmark(providersBackstage.icons)) : Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: function (_api) {\n return onItemValueHandler(spec.value);\n },\n onSetup: function (api) {\n api.setActive(isSelected);\n return noop;\n },\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n var parts$f = generate$3(owner$2(), parts$h());\n var hexColour = function (value) {\n return {\n value: value\n };\n };\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n var isHexString = function (hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n var normalizeHex = function (hex) {\n return removeLeading(hex, '#').toUpperCase();\n };\n var fromString$1 = function (hex) {\n return isHexString(hex) ? Optional.some({\n value: normalizeHex(hex)\n }) : Optional.none();\n };\n var getLongForm = function (hex) {\n var hexString = hex.value.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n return {\n value: hexString\n };\n };\n var extractValues = function (hex) {\n var longForm = getLongForm(hex);\n var splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? ['FFFFFF', 'FF', 'FF', 'FF'] : splitForm;\n };\n var toHex = function (component) {\n var hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n var fromRgba = function (rgbaColour) {\n var value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n var min = Math.min;\n var max = Math.max;\n var round$1 = Math.round;\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n var rgbaColour = function (red, green, blue, alpha) {\n return {\n red: red,\n green: green,\n blue: blue,\n alpha: alpha\n };\n };\n var isRgbaComponent = function (value) {\n var num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n var fromHsv = function (hsv) {\n var r;\n var g;\n var b;\n var hue = (hsv.hue || 0) % 360;\n var saturation = hsv.saturation / 100;\n var brightness = hsv.value / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n if (saturation === 0) {\n r = g = b = round$1(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n var side = hue / 60;\n var chroma = brightness * saturation;\n var x = chroma * (1 - Math.abs(side % 2 - 1));\n var match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round$1(255 * (r + match));\n g = round$1(255 * (g + match));\n b = round$1(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n var fromHex = function (hexColour) {\n var result = extractValues(hexColour);\n var red = parseInt(result[1], 16);\n var green = parseInt(result[2], 16);\n var blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n var fromStringValues = function (red, green, blue, alpha) {\n var r = parseInt(red, 10);\n var g = parseInt(green, 10);\n var b = parseInt(blue, 10);\n var a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n var fromString = function (rgbaString) {\n if (rgbaString === 'transparent') {\n return Optional.some(rgbaColour(0, 0, 0, 0));\n }\n var rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n var toString = function (rgba) {\n return 'rgba(' + rgba.red + ',' + rgba.green + ',' + rgba.blue + ',' + rgba.alpha + ')';\n };\n var red = rgbaColour(255, 0, 0, 1);\n var fireSkinLoaded$1 = function (editor) {\n return editor.fire('SkinLoaded');\n };\n var fireSkinLoadError$1 = function (editor, error) {\n return editor.fire('SkinLoadError', error);\n };\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n var fireResizeContent = function (editor, e) {\n return editor.fire('ResizeContent', e);\n };\n var fireScrollContent = function (editor, e) {\n return editor.fire('ScrollContent', e);\n };\n var fireTextColorChange = function (editor, data) {\n return editor.fire('TextColorChange', data);\n };\n var hsvColour = function (hue, saturation, value) {\n return {\n hue: hue,\n saturation: saturation,\n value: value\n };\n };\n var fromRgb = function (rgbaColour) {\n var h = 0;\n var s = 0;\n var v = 0;\n var r = rgbaColour.red / 255;\n var g = rgbaColour.green / 255;\n var b = rgbaColour.blue / 255;\n var minRGB = Math.min(r, Math.min(g, b));\n var maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n var d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n var hexToHsv = function (hex) {\n return fromRgb(fromHex(hex));\n };\n var hsvToHex = function (hsv) {\n return fromRgba(fromHsv(hsv));\n };\n var anyToHex = function (color) {\n return fromString$1(color).orThunk(function () {\n return fromString(color).map(fromRgba);\n }).getOrThunk(function () {\n var canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n var rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n var r = rgba[0];\n var g = rgba[1];\n var b = rgba[2];\n var a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n };\n var global$8 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n var storageName = 'tinymce-custom-colors';\n function ColorCache(max) {\n if (max === void 0) {\n max = 10;\n }\n var storageString = global$8.getItem(storageName);\n var localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n var prune = function (list) {\n var diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n var cache = prune(localstorage);\n var add = function (key) {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$8.setItem(storageName, JSON.stringify(cache));\n };\n var remove = function (idx) {\n cache.splice(idx, 1);\n };\n var state = function () {\n return cache.slice(0);\n };\n return {\n add: add,\n state: state\n };\n }\n var choiceItem = 'choiceitem';\n var defaultColors = [{\n type: choiceItem,\n text: 'Light Green',\n value: '#BFEDD2'\n }, {\n type: choiceItem,\n text: 'Light Yellow',\n value: '#FBEEB8'\n }, {\n type: choiceItem,\n text: 'Light Red',\n value: '#F8CAC6'\n }, {\n type: choiceItem,\n text: 'Light Purple',\n value: '#ECCAFA'\n }, {\n type: choiceItem,\n text: 'Light Blue',\n value: '#C2E0F4'\n }, {\n type: choiceItem,\n text: 'Green',\n value: '#2DC26B'\n }, {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n }, {\n type: choiceItem,\n text: 'Red',\n value: '#E03E2D'\n }, {\n type: choiceItem,\n text: 'Purple',\n value: '#B96AD9'\n }, {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n }, {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#169179'\n }, {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n }, {\n type: choiceItem,\n text: 'Dark Red',\n value: '#BA372A'\n }, {\n type: choiceItem,\n text: 'Dark Purple',\n value: '#843FA1'\n }, {\n type: choiceItem,\n text: 'Dark Blue',\n value: '#236FA1'\n }, {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n }, {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#CED4D9'\n }, {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n }, {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n }, {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\n }, {\n type: choiceItem,\n text: 'Black',\n value: '#000000'\n }, {\n type: choiceItem,\n text: 'White',\n value: '#ffffff'\n }];\n var colorCache = ColorCache(10);\n var mapColors = function (colorMap) {\n var colors = [];\n for (var i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: '#' + anyToHex(colorMap[i]).value,\n type: 'choiceitem'\n });\n }\n return colors;\n };\n var getColorCols$2 = function (editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n var hasCustomColors$1 = function (editor) {\n return editor.getParam('custom_colors') !== false;\n };\n var getColorMap = function (editor) {\n return editor.getParam('color_map');\n };\n var getColors$2 = function (editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n var getCurrentColors = function () {\n return map$2(colorCache.state(), function (color) {\n return {\n type: choiceItem,\n text: color,\n value: color\n };\n });\n };\n var addColor = function (color) {\n colorCache.add(color);\n };\n var fallbackColor = '#000000';\n var getCurrentColor = function (editor, format) {\n var color;\n editor.dom.getParents(editor.selection.getStart(), function (elm) {\n var value;\n if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {\n color = color ? color : value;\n }\n });\n return Optional.from(color);\n };\n var applyFormat = function (editor, format, value) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.apply(format, {\n value: value\n });\n editor.nodeChanged();\n });\n };\n var removeFormat = function (editor, format) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.remove(format, {\n value: null\n }, null, true);\n editor.nodeChanged();\n });\n };\n var registerCommands = function (editor) {\n editor.addCommand('mceApplyTextcolor', function (format, value) {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', function (format) {\n removeFormat(editor, format);\n });\n };\n var calcCols = function (colors) {\n return Math.max(5, Math.ceil(Math.sqrt(colors)));\n };\n var getColorCols$1 = function (editor) {\n var colors = getColors$2(editor);\n var defaultCols = calcCols(colors.length);\n return getColorCols$2(editor, defaultCols);\n };\n var getAdditionalColors = function (hasCustom) {\n var type = 'choiceitem';\n var remove = {\n type: type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n var custom = {\n type: type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [remove, custom] : [remove];\n };\n var applyColor = function (editor, format, value, onChoice) {\n if (value === 'custom') {\n var dialog = colorPickerDialog(editor);\n dialog(function (colorOpt) {\n colorOpt.each(function (color) {\n addColor(color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, fallbackColor);\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n var getColors$1 = function (colors, hasCustom) {\n return colors.concat(getCurrentColors().concat(getAdditionalColors(hasCustom)));\n };\n var getFetch$1 = function (colors, hasCustom) {\n return function (callback) {\n callback(getColors$1(colors, hasCustom));\n };\n };\n var setIconColor = function (splitButtonApi, name, newColor) {\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(id, newColor);\n };\n var registerTextColorButton = function (editor, name, format, tooltip, lastColor) {\n editor.ui.registry.addSplitButton(name, {\n tooltip: tooltip,\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: function (value) {\n var optCurrentRgb = getCurrentColor(editor, format);\n return optCurrentRgb.bind(function (currentRgb) {\n return fromString(currentRgb).map(function (rgba) {\n var currentHex = fromRgba(rgba).value;\n return contains$1(value.toLowerCase(), currentHex);\n });\n }).getOr(false);\n },\n columns: getColorCols$1(editor),\n fetch: getFetch$1(getColors$2(editor), hasCustomColors$1(editor)),\n onAction: function (_splitButtonApi) {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: function (_splitButtonApi, value) {\n applyColor(editor, format, value, function (newColor) {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name: name,\n color: newColor\n });\n });\n },\n onSetup: function (splitButtonApi) {\n setIconColor(splitButtonApi, name, lastColor.get());\n var handler = function (e) {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n editor.on('TextColorChange', handler);\n return function () {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n var registerTextColorMenuItem = function (editor, name, format, text) {\n editor.ui.registry.addNestedMenuItem(name, {\n text: text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n getSubmenuItems: function () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: function (data) {\n applyColor(editor, format, data.value, noop);\n }\n }];\n }\n });\n };\n var colorPickerDialog = function (editor) {\n return function (callback, value) {\n var isValid = false;\n var onSubmit = function (api) {\n var data = api.getData();\n var hex = data.colorpicker;\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate(['Invalid hex color code: {0}', hex]));\n }\n };\n var onAction = function (_api, details) {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n var initialData = {\n colorpicker: value\n };\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: initialData,\n onAction: onAction,\n onSubmit: onSubmit,\n onClose: noop,\n onCancel: function () {\n callback(Optional.none());\n }\n });\n };\n };\n var register$a = function (editor) {\n registerCommands(editor);\n var lastForeColor = Cell(fallbackColor);\n var lastBackColor = Cell(fallbackColor);\n registerTextColorButton(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color');\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color');\n };\n var createPartialChoiceMenu = function (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) {\n var hasIcons = menuHasIcons(items);\n var presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n var alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, presets);\n };\n var createChoiceItems = function (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map$2(items, function (item) {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, function (d) {\n return Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage, menuHasIcons(items)));\n });\n } else {\n return Optional.none();\n }\n }));\n };\n var deriveMenuMovement = function (columns, presets) {\n var menuMarkers = markers(presets);\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n var rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass\n };\n }\n };\n var deriveCollectionMovement = function (columns, presets) {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? '.' + colorClass : '.' + selectableClass\n }\n };\n }\n };\n var renderColorSwatchItem = function (spec, backstage) {\n var items = getColorItems(spec, backstage);\n var columns = backstage.colorinput.getColorCols();\n var presets = 'color';\n var menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onAction({\n value: value\n });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, backstage.shared.providers);\n var widgetSpec = __assign(__assign({}, menuSpec), {\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets)\n });\n return {\n type: 'widget',\n data: {\n value: generate$6('widget-id')\n },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n var getColorItems = function (spec, backstage) {\n var useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(function () {\n return getColors$1(backstage.colorinput.getColors(), useCustomColors);\n }, function (colors) {\n return colors.concat(getAdditionalColors(useCustomColors));\n });\n };\n var cellOverEvent = generate$6('cell-over');\n var cellExecuteEvent = generate$6('cell-execute');\n var makeCell = function (row, col, labelId) {\n var _a;\n var emitCellOver = function (c) {\n return emitWith(c, cellOverEvent, {\n row: row,\n col: col\n });\n };\n var emitExecute = function (c) {\n return emitWith(c, cellExecuteEvent, {\n row: row,\n col: col\n });\n };\n var onClick = function (c, se) {\n se.stop();\n emitExecute(c);\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: (_a = {\n role: 'button'\n }, _a['aria-labelledby'] = labelId, _a)\n },\n behaviours: derive$1([config('insert-table-picker-cell', [run$1(mouseover(), Focusing.focus), run$1(execute$5(), emitExecute), run$1(click(), onClick), run$1(tap(), onClick)]), Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }), Focusing.config({\n onFocus: emitCellOver\n })])\n });\n };\n var makeCells = function (labelId, numRows, numCols) {\n var cells = [];\n for (var i = 0; i < numRows; i++) {\n var row = [];\n for (var j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n cells.push(row);\n }\n return cells;\n };\n var selectCells = function (cells, selectedRow, selectedColumn, numRows, numColumns) {\n for (var i = 0; i < numRows; i++) {\n for (var j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n var makeComponents = function (cells) {\n return bind$3(cells, function (cellRow) {\n return map$2(cellRow, premade);\n });\n };\n var makeLabelText = function (row, col) {\n return text$1(col + 'x' + row);\n };\n var renderInsertTableMenuItem = function (spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$6('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var emptyLabelText = makeLabelText(0, 0);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: {\n id: sizeLabelId\n }\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: {\n value: generate$6('widget-id')\n },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([config('insert-table-picker', [runOnAttached(function (c) {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }), runWithTarget(cellOverEvent, function (c, t, e) {\n var _a = e.event,\n row = _a.row,\n col = _a.col;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }), runWithTarget(cellExecuteEvent, function (c, _, e) {\n var _a = e.event,\n row = _a.row,\n col = _a.col;\n spec.onAction({\n numRows: row + 1,\n numColumns: col + 1\n });\n emit(c, sandboxClose());\n })]), Keying.config({\n initSize: {\n numRows: numRows,\n numColumns: numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })])\n })]\n };\n };\n var fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n var renderFancyMenuItem = function (spec, backstage) {\n return get$e(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec, backstage);\n });\n };\n var renderNestedItem = function (spec, itemResponse, providersBackstage, renderIcons, downwardsCaret) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n if (downwardsCaret === void 0) {\n downwardsCaret = false;\n }\n var caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.some(caret),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n var renderNormalItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.none(),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n var renderSeparatorItem = function (spec) {\n var innerHtml = spec.text.fold(function () {\n return {};\n }, function (text) {\n return {\n innerHtml: text\n };\n });\n return {\n type: 'separator',\n dom: __assign({\n tag: 'div',\n classes: [selectableClass, groupHeadingClass]\n }, innerHtml),\n components: []\n };\n };\n var renderToggleMenuItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n checkMark: Optional.some(renderCheckmark(providersBackstage.icons)),\n caret: Optional.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n var autocomplete = renderAutocompleteItem;\n var separator$3 = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$1 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n var card = renderCardMenuItem;\n var FocusMode = /*#__PURE__*/function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n return FocusMode;\n }(FocusMode || {});\n var createMenuItemFromBridge = function (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) {\n var providersBackstage = backstage.shared.providers;\n var parseForHorizontalMenu = function (menuitem) {\n return !isHorizontalMenu ? menuitem : __assign(__assign({}, menuitem), {\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n });\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, function (d) {\n return Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu));\n });\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, function (d) {\n return Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(parseForHorizontalMenu(d), backstage);\n });\n default:\n {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n var createAutocompleteItems = function (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, function (item) {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, function (d) {\n return Optional.some(card(__assign(__assign({}, d), {\n onAction: function (api) {\n d.onAction(api);\n onItemValueHandler(d.value, d.meta);\n }\n }), itemResponse, sharedBackstage, {\n itemBehaviours: tooltipBehaviour(d.meta, sharedBackstage),\n cardText: {\n matchText: matchText,\n highlightOn: highlightOn\n }\n }));\n });\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, function (d) {\n return Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons));\n });\n }\n }));\n };\n var createPartialMenu = function (value, items, itemResponse, backstage, isHorizontalMenu) {\n var hasIcons = menuHasIcons(items);\n var alloyItems = cat(map$2(items, function (item) {\n var itemHasIcon = function (i) {\n return isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n };\n var createItem = function (i) {\n return createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n };\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(__assign(__assign({}, item), {\n disabled: true\n }));\n } else {\n return createItem(item);\n }\n }));\n var createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, 'normal');\n };\n var createTieredDataFrom = function (partialMenu) {\n return tieredMenu.singleData(partialMenu.value, partialMenu);\n };\n var createMenuFrom = function (partialMenu, columns, focusMode, presets) {\n var focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom$2();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers(presets);\n return {\n dom: partialMenu.dom,\n components: partialMenu.components,\n items: partialMenu.items,\n value: partialMenu.value,\n markers: {\n selectedItem: menuMarkers.selectedItem,\n item: menuMarkers.item\n },\n movement: movement,\n fakeFocus: focusMode === FocusMode.ContentFocus,\n focusManager: focusManager,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached(function (comp, _se) {\n detectSize(comp, 4, menuMarkers.item).each(function (_a) {\n var numColumns = _a.numColumns,\n numRows = _a.numRows;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n var register$9 = function (editor, sharedBackstage) {\n var activeAutocompleter = value$1();\n var processingAction = Cell(false);\n var autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter']\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [run$1(dismissRequested(), function () {\n return cancelIfNecessary();\n })])]),\n lazySink: sharedBackstage.getSink\n }));\n var isMenuOpen = function () {\n return InlineView.isOpen(autocompleter);\n };\n var isActive = function () {\n return activeAutocompleter.get().isSome();\n };\n var hideIfNecessary = function () {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n var cancelIfNecessary = function () {\n if (isActive()) {\n var lastElement = activeAutocompleter.get().map(function (ac) {\n return ac.element;\n });\n detect(lastElement.getOr(SugarElement.fromDom(editor.selection.getNode()))).each(unwrap);\n hideIfNecessary();\n activeAutocompleter.clear();\n processingAction.set(false);\n }\n };\n var getAutocompleters = cached(function () {\n return register$b(editor);\n });\n var getCombinedItems = function (triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Optional.from(m.columns);\n }).getOr(1);\n return bind$3(matches, function (match) {\n var choices = match.items;\n return createAutocompleteItems(choices, match.matchText, function (itemValue, itemMeta) {\n var nr = editor.selection.getRng();\n getContext(editor.dom, nr, triggerChar).fold(function () {\n return console.error('Lost context. Cursor probably moved');\n }, function (_a) {\n var range = _a.range;\n var autocompleterApi = {\n hide: function () {\n cancelIfNecessary();\n },\n reload: function (fetchOptions) {\n hideIfNecessary();\n load(fetchOptions);\n }\n };\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);\n });\n };\n var commenceIfNecessary = function (context) {\n if (!isActive()) {\n var wrapper = create$4(editor, context.range);\n activeAutocompleter.set({\n triggerChar: context.triggerChar,\n element: wrapper,\n matchLength: context.text.length\n });\n processingAction.set(false);\n }\n };\n var display = function (ac, context, lookupData, items) {\n ac.matchLength = context.text.length;\n var columns = findMap(lookupData, function (ld) {\n return Optional.from(ld.columns);\n }).getOr(1);\n InlineView.showAt(autocompleter, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')), {\n anchor: {\n type: 'node',\n root: SugarElement.fromDom(editor.getBody()),\n node: Optional.from(ac.element)\n }\n });\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n };\n var doLookup = function (fetchOptions) {\n return activeAutocompleter.get().map(function (ac) {\n return getContext(editor.dom, editor.selection.getRng(), ac.triggerChar).bind(function (newContext) {\n return lookupWithContext(editor, getAutocompleters, newContext, fetchOptions);\n });\n }).getOrThunk(function () {\n return lookup$2(editor, getAutocompleters);\n });\n };\n var load = function (fetchOptions) {\n doLookup(fetchOptions).fold(cancelIfNecessary, function (lookupInfo) {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(function (lookupData) {\n activeAutocompleter.get().map(function (ac) {\n var context = lookupInfo.context;\n if (ac.triggerChar === context.triggerChar) {\n var combinedItems = getCombinedItems(context.triggerChar, lookupData);\n if (combinedItems.length > 0) {\n display(ac, context, lookupData, combinedItems);\n } else if (context.text.length - ac.matchLength >= 10) {\n cancelIfNecessary();\n } else {\n hideIfNecessary();\n }\n }\n });\n });\n });\n };\n var onKeypress = last(function (e) {\n if (e.which === 27) {\n return;\n }\n load();\n }, 50);\n var autocompleterUiApi = {\n onKeypress: onKeypress,\n cancelIfNecessary: cancelIfNecessary,\n isMenuOpen: isMenuOpen,\n isActive: isActive,\n isProcessingAction: processingAction.get,\n getView: function () {\n return InlineView.getContent(autocompleter);\n }\n };\n if (editor.hasPlugin('rtc') === false) {\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n }\n };\n var Autocompleter = {\n register: register$9\n };\n var closest = function (scope, selector, isRoot) {\n return closest$1(scope, selector, isRoot).isSome();\n };\n var DelayedFunction = function (fun, delay) {\n var ref = null;\n var schedule = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n ref = setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n var cancel = function () {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n };\n var SIGNIFICANT_MOVE = 5;\n var LONGPRESS_DELAY = 400;\n var getTouch = function (event) {\n var raw = event.raw;\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(raw.touches[0]);\n };\n var isFarEnough = function (touch, data) {\n var distX = Math.abs(touch.clientX - data.x);\n var distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n var monitor = function (settings) {\n var startData = value$1();\n var longpressFired = Cell(false);\n var longpress$1 = DelayedFunction(function (event) {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n var handleTouchstart = function (event) {\n getTouch(event).each(function (touch) {\n longpress$1.cancel();\n var data = {\n x: touch.clientX,\n y: touch.clientY,\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(data);\n });\n return Optional.none();\n };\n var handleTouchmove = function (event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.on(function (data) {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.none();\n };\n var handleTouchend = function (event) {\n longpress$1.cancel();\n var isSame = function (data) {\n return eq(data.target, event.target);\n };\n return startData.get().filter(isSame).map(function (_data) {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n var handlers = wrapAll([{\n key: touchstart(),\n value: handleTouchstart\n }, {\n key: touchmove(),\n value: handleTouchmove\n }, {\n key: touchend(),\n value: handleTouchend\n }]);\n var fireIfReady = function (event, type) {\n return get$e(handlers, type).bind(function (handler) {\n return handler(event);\n });\n };\n return {\n fireIfReady: fireIfReady\n };\n };\n var isDangerous = function (event) {\n var keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains$2(['input', 'textarea'], name$2(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n var isFirefox = function () {\n return detect$1().browser.isFirefox();\n };\n var bindFocus = function (container, handler) {\n if (isFirefox()) {\n return capture(container, 'focus', handler);\n } else {\n return bind(container, 'focusin', handler);\n }\n };\n var bindBlur = function (container, handler) {\n if (isFirefox()) {\n return capture(container, 'blur', handler);\n } else {\n return bind(container, 'focusout', handler);\n }\n };\n var setup$d = function (container, rawSettings) {\n var settings = __assign({\n stopBackspace: true\n }, rawSettings);\n var pointerEvents = ['touchstart', 'touchmove', 'touchend', 'touchcancel', 'gesturestart', 'mousedown', 'mouseup', 'mouseover', 'mousemove', 'mouseout', 'click'];\n var tapEvent = monitor(settings);\n var simpleEvents = map$2(pointerEvents.concat(['selectstart', 'input', 'contextmenu', 'change', 'transitionend', 'transitioncancel', 'drag', 'dragstart', 'dragend', 'dragenter', 'dragleave', 'dragover', 'drop', 'keyup']), function (type) {\n return bind(container, type, function (event) {\n tapEvent.fireIfReady(event, type).each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n });\n });\n var pasteTimeout = value$1();\n var onPaste = bind(container, 'paste', function (event) {\n tapEvent.fireIfReady(event, 'paste').each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n var onKeydown = bind(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && isDangerous(event)) {\n event.prevent();\n }\n });\n var onFocusIn = bindFocus(container, function (event) {\n var stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n var focusoutTimeout = value$1();\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n var unbind = function () {\n each$1(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.on(clearTimeout);\n focusoutTimeout.on(clearTimeout);\n };\n return {\n unbind: unbind\n };\n };\n var derive = function (rawEvent, rawTarget) {\n var source = get$e(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n var fromSource = function (event, source) {\n var stopper = Cell(false);\n var cutter = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n var cut = function () {\n cutter.set(true);\n };\n return {\n stop: stop,\n cut: cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event: event,\n setSource: source.set,\n getSource: source.get\n };\n };\n var fromExternal = function (event) {\n var stopper = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n return {\n stop: stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: never,\n event: event,\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n var adt$1 = Adt.generate([{\n stopped: []\n }, {\n resume: ['element']\n }, {\n complete: []\n }]);\n var doTriggerHandler = function (lookup, eventType, rawEvent, target, source, logger) {\n var handler = lookup(eventType, target);\n var simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(function () {\n logger.logEventNoHandlers(eventType, target);\n return adt$1.complete();\n }, function (handlerInfo) {\n var descHandler = handlerInfo.descHandler;\n var eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n } else {\n return parent(handlerInfo.element).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.resume(parent);\n });\n }\n });\n };\n var doTriggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, source, logger) {\n return doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(always, function (parent) {\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger);\n }, never);\n };\n var triggerHandler = function (lookup, eventType, rawEvent, target, logger) {\n var source = derive(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n var broadcast = function (listeners, rawEvent, _logger) {\n var simulatedEvent = fromExternal(rawEvent);\n each$1(listeners, function (listener) {\n var descHandler = listener.descHandler;\n var handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n var triggerUntilStopped = function (lookup, eventType, rawEvent, logger) {\n return triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n };\n var triggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n var eventHandler = function (element, descHandler) {\n return {\n element: element,\n descHandler: descHandler\n };\n };\n var broadcastHandler = function (id, handler) {\n return {\n id: id,\n descHandler: handler\n };\n };\n var EventRegistry = function () {\n var registry = {};\n var registerId = function (extraArgs, id, events) {\n each(events, function (v, k) {\n var handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n var findHandler = function (handlers, elem) {\n return read$1(elem).bind(function (id) {\n return get$e(handlers, id);\n }).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n };\n var filterByType = function (type) {\n return get$e(registry, type).map(function (handlers) {\n return mapToArray(handlers, function (f, id) {\n return broadcastHandler(id, f);\n });\n }).getOr([]);\n };\n var find = function (isAboveRoot, type, target) {\n return get$e(registry, type).bind(function (handlers) {\n return closest$4(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n });\n };\n var unregisterId = function (id) {\n each(registry, function (handlersById, _eventName) {\n if (has$2(handlersById, id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId: registerId,\n unregisterId: unregisterId,\n filterByType: filterByType,\n find: find\n };\n };\n var Registry = function () {\n var events = EventRegistry();\n var components = {};\n var readOrTag = function (component) {\n var elem = component.element;\n return read$1(elem).getOrThunk(function () {\n return write('uid-', component.element);\n });\n };\n var failOnDuplicate = function (component, tagId) {\n var conflict = components[tagId];\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element) + '\\nCannot use it for: ' + element(component.element) + '\\n' + 'The conflicting element is' + (inBody(conflict.element) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n var register = function (component) {\n var tagId = readOrTag(component);\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n var extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n var unregister = function (component) {\n read$1(component.element).each(function (tagId) {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n var filter = function (type) {\n return events.filterByType(type);\n };\n var find = function (isAboveRoot, type, target) {\n return events.find(isAboveRoot, type, target);\n };\n var getById = function (id) {\n return get$e(components, id);\n };\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n };\n var factory$j = function (detail) {\n var _a = detail.dom,\n attributes = _a.attributes,\n domWithoutAttributes = __rest(_a, ['attributes']);\n return {\n uid: detail.uid,\n dom: __assign({\n tag: 'div',\n attributes: __assign({\n role: 'presentation'\n }, attributes)\n }, domWithoutAttributes),\n components: detail.components,\n behaviours: get$2(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n var Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [defaulted('components', []), field('containerBehaviours', []), defaulted('events', {}), defaulted('domModification', {}), defaulted('eventOrder', {})]\n });\n var takeover = function (root) {\n var isAboveRoot = function (el) {\n return parent(root.element).fold(always, function (parent) {\n return eq(el, parent);\n });\n };\n var registry = Registry();\n var lookup = function (eventName, target) {\n return registry.find(isAboveRoot, eventName, target);\n };\n var domEvents = setup$d(root.element, {\n triggerEvent: function (eventName, event) {\n return monitorEvent(eventName, event.target, function (logger) {\n return triggerUntilStopped(lookup, eventName, event, logger);\n });\n }\n });\n var systemApi = {\n debugInfo: constant$1('real'),\n triggerEvent: function (eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n return triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function (target, originator) {\n read$1(target).fold(function () {\n focus$3(target);\n }, function (_alloyId) {\n monitorEvent(focus$4(), target, function (logger) {\n triggerHandler(lookup, focus$4(), {\n originator: originator,\n kill: noop,\n prevent: noop,\n target: target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: function (comp, simulatedEvent) {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: function (uid) {\n return getByUid(uid);\n },\n getByDom: function (elem) {\n return getByDom(elem);\n },\n build: build$1,\n addToGui: function (c) {\n add(c);\n },\n removeFromGui: function (c) {\n remove(c);\n },\n addToWorld: function (c) {\n addToWorld(c);\n },\n removeFromWorld: function (c) {\n removeFromWorld(c);\n },\n broadcast: function (message) {\n broadcast$1(message);\n },\n broadcastOn: function (channels, message) {\n broadcastOn(channels, message);\n },\n broadcastEvent: function (eventName, event) {\n broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n var addToWorld = function (component) {\n component.connect(systemApi);\n if (!isText$1(component.element)) {\n registry.register(component);\n each$1(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, {\n target: component.element\n });\n }\n };\n var removeFromWorld = function (component) {\n if (!isText$1(component.element)) {\n each$1(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n var add = function (component) {\n attach(root, component);\n };\n var remove = function (component) {\n detach(component);\n };\n var destroy = function () {\n domEvents.unbind();\n remove$5(root.element);\n };\n var broadcastData = function (data) {\n var receivers = registry.filter(receive());\n each$1(receivers, function (receiver) {\n var descHandler = receiver.descHandler;\n var handler = getCurried(descHandler);\n handler(data);\n });\n };\n var broadcast$1 = function (message) {\n broadcastData({\n universal: true,\n data: message\n });\n };\n var broadcastOn = function (channels, message) {\n broadcastData({\n universal: false,\n channels: channels,\n data: message\n });\n };\n var broadcastEvent = function (eventName, event) {\n var listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n var getByUid = function (uid) {\n return registry.getById(uid).fold(function () {\n return Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.'));\n }, Result.value);\n };\n var getByDom = function (elem) {\n var uid = read$1(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root: root,\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove,\n getByUid: getByUid,\n getByDom: getByDom,\n addToWorld: addToWorld,\n removeFromWorld: removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn: broadcastOn,\n broadcastEvent: broadcastEvent\n };\n };\n var renderBar = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar', 'tox-form__controls-h-stack']\n },\n components: map$2(spec.items, backstage.interpreter)\n };\n };\n var schema$l = constant$1([defaulted('prefix', 'form-field'), field('fieldBehaviours', [Composing, Representing])]);\n var parts$e = constant$1([optional({\n schema: [required$1('dom')],\n name: 'label'\n }), optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: {\n display: 'none'\n },\n attributes: {\n 'aria-hidden': 'true'\n },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }), required({\n factory: {\n sketch: function (spec) {\n var excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })]);\n var factory$i = function (detail, components, _spec, _externals) {\n var behaviours = augment(detail.fieldBehaviours, [Composing.config({\n find: function (container) {\n return getPart(container, detail, 'field');\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function (field) {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: function (field, value) {\n Composing.getCurrent(field).each(function (current) {\n Representing.setValue(current, value);\n });\n }\n }\n })]);\n var events = derive$2([runOnAttached(function (component, _simulatedEvent) {\n var ps = getParts(component, detail, ['label', 'field', 'aria-descriptor']);\n ps.field().each(function (field) {\n var id = generate$6(detail.prefix);\n ps.label().each(function (label) {\n set$8(label.element, 'for', id);\n set$8(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$6(detail.prefix);\n set$8(descriptor.element, 'id', descriptorId);\n set$8(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n var apis = {\n getField: function (container) {\n return getPart(container, detail, 'field');\n },\n getLabel: function (container) {\n return getPart(container, detail, 'label');\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: behaviours,\n events: events,\n apis: apis\n };\n };\n var FormField = composite({\n name: 'FormField',\n configFields: schema$l(),\n partFields: parts$e(),\n factory: factory$i,\n apis: {\n getField: function (apis, comp) {\n return apis.getField(comp);\n },\n getLabel: function (apis, comp) {\n return apis.getLabel(comp);\n }\n }\n });\n var exhibit$2 = function (base, tabConfig) {\n return nu$7({\n attributes: wrapAll([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2\n });\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n var Tabstopping = create$8({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n var renderFormFieldWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n var renderFormField = function (pLabel, pField) {\n return renderFormFieldWith(pLabel, pField, [], []);\n };\n var renderFormFieldSpecWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n };\n };\n var renderFormFieldDom = function () {\n return renderFormFieldDomWith([]);\n };\n var renderFormFieldDomWith = function (extraClasses) {\n return {\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n };\n };\n var renderLabel$2 = function (label, providersBackstage) {\n return FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n };\n var formChangeEvent = generate$6('form-component-change');\n var formCloseEvent = generate$6('form-close');\n var formCancelEvent = generate$6('form-cancel');\n var formActionEvent = generate$6('form-action');\n var formSubmitEvent = generate$6('form-submit');\n var formBlockEvent = generate$6('form-block');\n var formUnblockEvent = generate$6('form-unblock');\n var formTabChangeEvent = generate$6('form-tabchange');\n var formResizeEvent = generate$6('form-resize');\n var renderCollection = function (spec, providersBackstage) {\n var _a;\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var runOnItem = function (f) {\n return function (comp, se) {\n closest$1(se.event.target, '[data-collection-item-value]').each(function (target) {\n f(comp, se, target, get$d(target, 'data-collection-item-value'));\n });\n };\n };\n var setContents = function (comp, items) {\n var htmlLines = map$2(items, function (item) {\n var itemText = global$e.translate(item.text);\n var textContent = spec.columns === 1 ? '' + itemText + '
' : '';\n var iconContent = '' + item.icon + '
';\n var mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n var ariaLabel = itemText.replace(/\\_| \\- |\\-/g, function (match) {\n return mapItemName[match];\n });\n var disabledClass = providersBackstage.isDisabled() ? ' tox-collection__item--state-disabled' : '';\n return '' + iconContent + textContent + '
';\n });\n var chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n var html = map$2(chunks, function (ch) {\n return '' + ch.join('') + '
';\n });\n set$5(comp.element, html.join(''));\n };\n var onClick = runOnItem(function (comp, se, tgt, itemValue) {\n se.stop();\n if (!providersBackstage.isDisabled()) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n var collectionEvents = [run$1(mouseover(), runOnItem(function (comp, se, tgt) {\n focus$3(tgt);\n })), run$1(click(), onClick), run$1(tap(), onClick), run$1(focusin(), runOnItem(function (comp, se, tgt) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })), run$1(focusout(), runOnItem(function (comp) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n })), runOnExecute$1(runOnItem(function (comp, se, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))];\n var iterCollectionItems = function (comp, applyAttributes) {\n return map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\n };\n var pField = FormField.parts.field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: {\n sketch: identity$1\n },\n behaviours: derive$1([Disabling.config({\n disabled: providersBackstage.isDisabled,\n onDisabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$8(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n remove$2(childElm, 'tox-collection__item--state-disabled');\n remove$7(childElm, 'aria-disabled');\n });\n }\n }), receivingConfig(), Replacing.config({}), Representing.config({\n store: {\n mode: 'memory',\n initialValue: []\n },\n onSetValue: function (comp, items) {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(function (_a) {\n var numRows = _a.numRows,\n numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }), Tabstopping.config({}), Keying.config(deriveCollectionMovement(spec.columns, 'normal')), config('collection-events', collectionEvents)]),\n eventOrder: (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'collection-events'], _a)\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n var schema$k = constant$1([option('data'), defaulted('inputAttributes', {}), defaulted('inputStyles', {}), defaulted('tag', 'input'), defaulted('inputClasses', []), onHandler('onSetValue'), defaulted('styles', {}), defaulted('eventOrder', {}), field('inputBehaviours', [Representing, Focusing]), defaulted('selectOnFocus', true)]);\n var focusBehaviours = function (detail) {\n return derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : function (component) {\n var input = component.element;\n var value = get$5(input);\n input.dom.setSelectionRange(0, value.length);\n }\n })]);\n };\n var behaviours = function (detail) {\n return __assign(__assign({}, focusBehaviours(detail)), augment(detail.inputBehaviours, [Representing.config({\n store: __assign(__assign({\n mode: 'manual'\n }, detail.data.map(function (data) {\n return {\n initialValue: data\n };\n }).getOr({})), {\n getValue: function (input) {\n return get$5(input.element);\n },\n setValue: function (input, data) {\n var current = get$5(input.element);\n if (current !== data) {\n set$4(input.element, data);\n }\n }\n }),\n onSetValue: detail.onSetValue\n })]));\n };\n var dom = function (detail) {\n return {\n tag: detail.tag,\n attributes: __assign({\n type: 'text'\n }, detail.inputAttributes),\n styles: detail.inputStyles,\n classes: detail.inputClasses\n };\n };\n var factory$h = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n var Input = single({\n name: 'Input',\n configFields: schema$k(),\n factory: factory$h\n });\n var exports$1 = {},\n module = {\n exports: exports$1\n };\n (function (define, exports, module, require) {\n (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EphoxContactWrapper = factory());\n })(this, function () {\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n var promise = {\n exports: {}\n };\n (function (module) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {}\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done) return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n })(commonjsGlobal);\n })(promise);\n var promisePolyfill = promise.exports;\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n var promisePolyfill_1 = {\n boltExport: Global.Promise || promisePolyfill\n };\n return promisePolyfill_1;\n });\n })(undefined, exports$1, module);\n var Promise$1 = module.exports.boltExport;\n var nu$3 = function (baseFn) {\n var data = Optional.none();\n var callbacks = [];\n var map = function (f) {\n return nu$3(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n var set = function (x) {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each$1(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure$1 = function (a) {\n return nu$3(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n var errorReporter = function (err) {\n setTimeout(function () {\n throw err;\n }, 0);\n };\n var make$5 = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make$5(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make$5(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make$5(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make$5(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n var nu$2 = function (baseFn) {\n return make$5(function () {\n return new Promise$1(baseFn);\n });\n };\n var pure = function (a) {\n return make$5(function () {\n return Promise$1.resolve(a);\n });\n };\n var Future = {\n nu: nu$2,\n pure: pure\n };\n var ariaElements = ['input', 'textarea'];\n var isAriaElement = function (elem) {\n var name = name$2(elem);\n return contains$2(ariaElements, name);\n };\n var markValid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$8(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set$5(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n var markInvalid = function (component, invalidConfig, invalidState, text) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$8(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set$5(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n var query = function (component, invalidConfig, _invalidState) {\n return invalidConfig.validator.fold(function () {\n return Future.pure(Result.value(true));\n }, function (validatorInfo) {\n return validatorInfo.validate(component);\n });\n };\n var run = function (component, invalidConfig, invalidState) {\n invalidConfig.notify.each(function (notifyInfo) {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(function (valid) {\n if (component.getSystem().isConnected()) {\n return valid.fold(function (err) {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, function (v) {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n var isInvalid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n return has(elem, invalidConfig.invalidClass);\n };\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run,\n isInvalid: isInvalid\n });\n var events$8 = function (invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive$2([run$1(validatorInfo.onEvent, function (component) {\n run(component, invalidConfig, invalidState).get(identity$1);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n var InvalidateSchema = [required$1('invalidClass'), defaulted('getRoot', Optional.none), optionObjOf('notify', [defaulted('aria', 'alert'), defaulted('getContainer', Optional.none), defaulted('validHtml', ''), onHandler('onValid'), onHandler('onInvalid'), onHandler('onValidate')]), optionObjOf('validator', [required$1('validate'), defaulted('onEvent', 'input'), defaulted('validateOnLoad', true)])];\n var Invalidating = create$8({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: function (validator) {\n return function (component) {\n var v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n var getCoupled = function (component, coupleConfig, coupleState, name) {\n return coupleState.getOrCreate(component, coupleConfig, name);\n };\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled\n });\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n var init$a = function () {\n var coupled = {};\n var getOrCreate = function (component, coupleConfig, name) {\n var available = keys(coupleConfig.others);\n if (!available) {\n throw new Error('Cannot find coupled component: ' + name + '. Known coupled components: ' + JSON.stringify(available, null, 2));\n } else {\n return get$e(coupled, name).getOrThunk(function () {\n var builder = get$e(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n var spec = builder(component);\n var built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n }\n };\n var readState = constant$1({});\n return nu$8({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n var Coupling = create$8({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n var suffix = constant$1('sink');\n var partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: {\n tag: 'div'\n },\n behaviours: derive$1([Positioning.config({\n useFixed: always\n })]),\n events: derive$2([cutter(keydown()), cutter(mousedown()), cutter(click())])\n })\n }));\n var HighlightOnOpen = /*#__PURE__*/function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n return HighlightOnOpen;\n }(HighlightOnOpen || {});\n var getAnchor = function (detail, component) {\n var hotspot = detail.getHotspot(component).getOr(component);\n var type = 'hotspot';\n var overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(function () {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides\n };\n }, function (layouts) {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides,\n layouts: layouts\n };\n });\n };\n var fetch = function (detail, mapFetch, component) {\n var fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n var openF = function (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) {\n var futureData = fetch(detail, mapFetch, component);\n var getLazySink = getSink(component, detail);\n return futureData.map(function (tdata) {\n return tdata.bind(function (data) {\n return Optional.from(tieredMenu.sketch(__assign(__assign({}, externals.menu()), {\n uid: generate$5(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function (tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, {\n anchor: anchor\n });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item: item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, {\n anchor: anchor\n });\n each$1(submenuTriggers, function (st) {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: function () {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n })));\n });\n });\n };\n var open = function (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) {\n var anchor = getAnchor(detail, hotspot);\n var processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(function (tdata) {\n tdata.fold(function () {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, function (data) {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n var close = function (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n var togglePopup = function (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) {\n var sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n var showing = Sandboxing.isOpen(sandbox);\n var action = showing ? close : open;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n var matchWidth = function (hotspot, container, useMinWidth) {\n var menu = Composing.getCurrent(container).getOr(container);\n var buttonWidth = get$a(hotspot.element);\n if (useMinWidth) {\n set$7(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$6(menu.element, buttonWidth);\n }\n };\n var getSink = function (anyInSystem, sinkDetail) {\n return anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(function (internalSink) {\n return function () {\n return Result.value(internalSink);\n };\n }).getOrThunk(function () {\n return sinkDetail.lazySink.fold(function () {\n return function () {\n return Result.error(new Error('No internal sink is specified, nor could an external sink be found'));\n };\n }, function (lazySinkFn) {\n return function () {\n return lazySinkFn(anyInSystem);\n };\n });\n });\n };\n var doRepositionMenus = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n var makeSandbox$1 = function (detail, hotspot, extras) {\n var ariaOwner = manager();\n var onOpen = function (component, menu) {\n var anchor = getAnchor(detail, hotspot);\n ariaOwner.link(hotspot.element);\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n var onClose = function (component, menu) {\n ariaOwner.unlink(hotspot.element);\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n var lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: {\n id: ariaOwner.id,\n role: 'listbox'\n }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }), Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOf$1(hotspot, queryElem);\n },\n getAttachPoint: function () {\n return lazySink().getOrDie();\n }\n }), Composing.config({\n find: function (sandbox) {\n return Sandboxing.getState(sandbox).bind(function (menu) {\n return Composing.getCurrent(menu);\n });\n }\n }), Receiving.config({\n channels: __assign(__assign({}, receivingChannel$1({\n isExtraPart: never\n })), receivingChannel({\n doReposition: doRepositionMenus\n }))\n })])\n };\n };\n var repositionMenus = function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n var sandboxFields = function () {\n return [defaulted('sandboxClasses', []), SketchBehaviours.field('sandboxBehaviours', [Composing, Receiving, Sandboxing, Representing])];\n };\n var schema$j = constant$1([required$1('dom'), required$1('fetch'), onHandler('onOpen'), onKeyboardHandler('onExecute'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), schema$y(), field('dropdownBehaviours', [Toggling, Coupling, Keying, Focusing]), required$1('toggleClass'), defaulted('eventOrder', {}), option('lazySink'), defaulted('matchWidth', false), defaulted('useMinWidth', false), option('role')].concat(sandboxFields()));\n var parts$d = constant$1([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return {\n onExecute: detail.onExecute\n };\n }\n }), partType$1()]);\n var factory$g = function (detail, components, _spec, externals) {\n var _a;\n var lookupAttr = function (attr) {\n return get$e(detail.dom, 'attributes').bind(function (attrs) {\n return get$e(attrs, attr);\n });\n };\n var switchToMenu = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var apis = {\n expand: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: function (comp) {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n var triggerExecute = function (comp, _se) {\n emitExecute(comp);\n return Optional.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.dropdownBehaviours, [Toggling.config({\n toggleClass: detail.toggleClass,\n aria: {\n mode: 'expanded'\n }\n }), Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox$1(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }), Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: function (comp, _se) {\n if (Dropdown.isOpen(comp)) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Optional.some(true);\n },\n onEscape: function (comp, _se) {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n }\n }), Focusing.config({})]),\n events: events$a(Optional.some(action)),\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = ['disabling', 'toggling', 'alloy.base.behaviour'], _a)),\n apis: apis,\n domModification: {\n attributes: __assign(__assign({\n 'aria-haspopup': 'true'\n }, detail.role.fold(function () {\n return {};\n }, function (role) {\n return {\n role: role\n };\n })), detail.dom.tag === 'button' ? {\n type: lookupAttr('type').getOr('button')\n } : {})\n }\n };\n };\n var Dropdown = composite({\n name: 'Dropdown',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$g,\n apis: {\n open: function (apis, comp) {\n return apis.open(comp);\n },\n expand: function (apis, comp) {\n return apis.expand(comp);\n },\n close: function (apis, comp) {\n return apis.close(comp);\n },\n isOpen: function (apis, comp) {\n return apis.isOpen(comp);\n },\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n var exhibit$1 = function () {\n return nu$7({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: {\n unselectable: 'on'\n }\n });\n };\n var events$7 = function () {\n return derive$2([abort(selectstart(), always)]);\n };\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$7,\n exhibit: exhibit$1\n });\n var Unselecting = create$8({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n var renderPanelButton = function (spec, sharedBackstage) {\n return Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([DisablingConfigs.button(sharedBackstage.providers.isDisabled), receivingConfig(), Unselecting.config({}), Tabstopping.config({})]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), {\n movement: deriveMenuMovement(spec.columns, spec.presets)\n })));\n });\n },\n parts: {\n menu: part(false, 1, spec.presets)\n }\n });\n };\n var colorInputChangeEvent = generate$6('color-input-change');\n var colorSwatchChangeEvent = generate$6('color-swatch-change');\n var colorPickerCancelEvent = generate$6('color-picker-cancel');\n var renderColorInput = function (spec, sharedBackstage, colorInputBackstage) {\n var pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n onSetValue: function (c) {\n return Invalidating.run(c).get(noop);\n },\n inputBehaviours: derive$1([Disabling.config({\n disabled: sharedBackstage.providers.isDisabled\n }), receivingConfig(), Tabstopping.config({}), Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: function (comp) {\n return parent(comp.element);\n },\n notify: {\n onValid: function (comp) {\n var val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, {\n color: val\n });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: function (input) {\n var inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n var span = SugarElement.fromTag('span');\n set$7(span, 'background-color', inputValue);\n var res = getRaw(span, 'background-color').fold(function () {\n return Result.error('blah');\n }, function (_) {\n return Result.value(inputValue);\n });\n return Future.pure(res);\n }\n }\n }\n })]),\n selectOnFocus: false\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, sharedBackstage.providers);\n });\n var emitSwatchChange = function (colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, {\n value: value\n });\n };\n var onItemAction = function (comp, value) {\n memColorButton.getOpt(comp).each(function (colorBit) {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(function (valueOpt) {\n valueOpt.fold(function () {\n return emit(colorBit, colorPickerCancelEvent);\n }, function (value) {\n emitSwatchChange(colorBit, value);\n addColor(value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n };\n var memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: {\n 'aria-label': sharedBackstage.providers.translate('Color swatch')\n }\n },\n layouts: {\n onRtl: function () {\n return [southwest$2, southeast$2, south$2];\n },\n onLtr: function () {\n return [southeast$2, southwest$2, south$2];\n }\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(),\n presets: 'color',\n onItemAction: onItemAction\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [pField, memColorButton.asSpec()]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [run$1(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$7(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n }), run$1(colorSwatchChangeEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Representing.setValue(field, se.event.value);\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }), run$1(colorPickerCancelEvent, function (comp, _se) {\n FormField.getField(comp).each(function (_field) {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })])])\n });\n };\n var labelPart = optional({\n schema: [required$1('dom')],\n name: 'label'\n });\n var edgePart = function (name) {\n return optional({\n name: '' + name + '-edge',\n overrides: function (detail) {\n var action = detail.model.manager.edgeActions[name];\n return action.fold(function () {\n return {};\n }, function (a) {\n return {\n events: derive$2([runActionExtra(touchstart(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]), runActionExtra(mousedown(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]), runActionExtra(mousemove(), function (comp, se, det) {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])])\n };\n });\n }\n });\n };\n var tlEdgePart = edgePart('top-left');\n var tedgePart = edgePart('top');\n var trEdgePart = edgePart('top-right');\n var redgePart = edgePart('right');\n var brEdgePart = edgePart('bottom-right');\n var bedgePart = edgePart('bottom');\n var blEdgePart = edgePart('bottom-left');\n var ledgePart = edgePart('left');\n var thumbPart = required({\n name: 'thumb',\n defaults: constant$1({\n dom: {\n styles: {\n position: 'absolute'\n }\n }\n }),\n overrides: function (detail) {\n return {\n events: derive$2([redirectToPart(touchstart(), detail, 'spectrum'), redirectToPart(touchmove(), detail, 'spectrum'), redirectToPart(touchend(), detail, 'spectrum'), redirectToPart(mousedown(), detail, 'spectrum'), redirectToPart(mousemove(), detail, 'spectrum'), redirectToPart(mouseup(), detail, 'spectrum')])\n };\n }\n });\n var spectrumPart = required({\n schema: [customField('mouseIsDown', function () {\n return Cell(false);\n })],\n name: 'spectrum',\n overrides: function (detail) {\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var setValueFrom = function (component, simulatedEvent) {\n return model.getValueFromEvent(simulatedEvent).map(function (value) {\n return model.setValueFrom(component, detail, value);\n });\n };\n return {\n behaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: function (spectrum) {\n return model.onLeft(spectrum, detail);\n },\n onRight: function (spectrum) {\n return model.onRight(spectrum, detail);\n },\n onUp: function (spectrum) {\n return model.onUp(spectrum, detail);\n },\n onDown: function (spectrum) {\n return model.onDown(spectrum, detail);\n }\n }), Focusing.config({})]),\n events: derive$2([run$1(touchstart(), setValueFrom), run$1(touchmove(), setValueFrom), run$1(mousedown(), setValueFrom), run$1(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })])\n };\n }\n });\n var SliderParts = [labelPart, ledgePart, redgePart, tedgePart, bedgePart, tlEdgePart, trEdgePart, blEdgePart, brEdgePart, thumbPart, spectrumPart];\n var _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant$1(_sliderChangeEvent);\n var isTouchEvent$2 = function (evt) {\n return evt.type.indexOf('touch') !== -1;\n };\n var getEventSource = function (simulatedEvent) {\n var evt = simulatedEvent.event.raw;\n if (isTouchEvent$2(evt)) {\n var touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(function (t) {\n return SugarPosition(t.clientX, t.clientY);\n }) : Optional.none();\n } else {\n var mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(function (me) {\n return SugarPosition(me.clientX, me.clientY);\n }) : Optional.none();\n }\n };\n var t = 'top',\n r = 'right',\n b = 'bottom',\n l = 'left';\n var minX = function (detail) {\n return detail.model.minX;\n };\n var minY = function (detail) {\n return detail.model.minY;\n };\n var min1X = function (detail) {\n return detail.model.minX - 1;\n };\n var min1Y = function (detail) {\n return detail.model.minY - 1;\n };\n var maxX = function (detail) {\n return detail.model.maxX;\n };\n var maxY = function (detail) {\n return detail.model.maxY;\n };\n var max1X = function (detail) {\n return detail.model.maxX + 1;\n };\n var max1Y = function (detail) {\n return detail.model.maxY + 1;\n };\n var range = function (detail, max, min) {\n return max(detail) - min(detail);\n };\n var xRange = function (detail) {\n return range(detail, maxX, minX);\n };\n var yRange = function (detail) {\n return range(detail, maxY, minY);\n };\n var halfX = function (detail) {\n return xRange(detail) / 2;\n };\n var halfY = function (detail) {\n return yRange(detail) / 2;\n };\n var step = function (detail) {\n return detail.stepSize;\n };\n var snap = function (detail) {\n return detail.snapToGrid;\n };\n var snapStart = function (detail) {\n return detail.snapStart;\n };\n var rounded = function (detail) {\n return detail.rounded;\n };\n var hasEdge = function (detail, edgeName) {\n return detail[edgeName + '-edge'] !== undefined;\n };\n var hasLEdge = function (detail) {\n return hasEdge(detail, l);\n };\n var hasREdge = function (detail) {\n return hasEdge(detail, r);\n };\n var hasTEdge = function (detail) {\n return hasEdge(detail, t);\n };\n var hasBEdge = function (detail) {\n return hasEdge(detail, b);\n };\n var currentValue = function (detail) {\n return detail.model.value.get();\n };\n var xValue = function (x) {\n return {\n x: x\n };\n };\n var yValue = function (y) {\n return {\n y: y\n };\n };\n var xyValue = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var fireSliderChange$3 = function (component, value) {\n emitWith(component, sliderChangeEvent(), {\n value: value\n });\n };\n var setToTLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n var setToTEdge = function (edge, detail) {\n fireSliderChange$3(edge, yValue(min1Y(detail)));\n };\n var setToTEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n var setToTREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n var setToREdge = function (edge, detail) {\n fireSliderChange$3(edge, xValue(max1X(detail)));\n };\n var setToREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n var setToBREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n var setToBEdge = function (edge, detail) {\n fireSliderChange$3(edge, yValue(max1Y(detail)));\n };\n var setToBEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n var setToBLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n var setToLEdge = function (edge, detail) {\n fireSliderChange$3(edge, xValue(min1X(detail)));\n };\n var setToLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\n };\n var reduceBy = function (value, min, max, step) {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n var increaseBy = function (value, min, max, step) {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n var capValue = function (value, min, max) {\n return Math.max(min, Math.min(max, value));\n };\n var snapValueOf = function (value, min, max, step, snapStart) {\n return snapStart.fold(function () {\n var initValue = value - min;\n var extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, function (start) {\n var remainder = (value - start) % step;\n var adjustment = Math.round(remainder / step);\n var rawSteps = Math.floor((value - start) / step);\n var maxSteps = Math.floor((max - start) / step);\n var numSteps = Math.min(maxSteps, rawSteps + adjustment);\n var r = start + numSteps * step;\n return Math.max(start, r);\n });\n };\n var findOffsetOf = function (value, min, max) {\n return Math.min(max, Math.max(value, min)) - min;\n };\n var findValueOf = function (args) {\n var min = args.min,\n max = args.max,\n range = args.range,\n value = args.value,\n step = args.step,\n snap = args.snap,\n snapStart = args.snapStart,\n rounded = args.rounded,\n hasMinEdge = args.hasMinEdge,\n hasMaxEdge = args.hasMaxEdge,\n minBound = args.minBound,\n maxBound = args.maxBound,\n screenRange = args.screenRange;\n var capMin = hasMinEdge ? min - 1 : min;\n var capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n var offset = findOffsetOf(value, minBound, maxBound);\n var newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n var findOffsetOfValue$2 = function (args) {\n var min = args.min,\n max = args.max,\n range = args.range,\n value = args.value,\n hasMinEdge = args.hasMinEdge,\n hasMaxEdge = args.hasMaxEdge,\n maxBound = args.maxBound,\n maxOffset = args.maxOffset,\n centerMinEdge = args.centerMinEdge,\n centerMaxEdge = args.centerMaxEdge;\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n var top = 'top',\n right = 'right',\n bottom = 'bottom',\n left = 'left',\n width = 'width',\n height = 'height';\n var getBounds = function (component) {\n return component.element.dom.getBoundingClientRect();\n };\n var getBoundsProperty = function (bounds, property) {\n return bounds[property];\n };\n var getMinXBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n var getMaxXBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n var getMinYBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n var getMaxYBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n var getXScreenRange = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n var getYScreenRange = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n var getCenterOffsetOf = function (componentMinEdge, componentMaxEdge, spectrumMinEdge) {\n return (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n };\n var getXCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, left);\n var componentMaxEdge = getBoundsProperty(componentBounds, right);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n var getYCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, top);\n var componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n var fireSliderChange$2 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n var sliderValue$2 = function (x) {\n return {\n x: x\n };\n };\n var findValueOfOffset$1 = function (spectrum, detail, left) {\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom$2 = function (spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$2(xValue);\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n var setToMin$2 = function (spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(min));\n };\n var setToMax$2 = function (spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(max));\n };\n var moveBy$2 = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = f(currentValue(detail).x, minX(detail), maxX(detail), step(detail));\n fireSliderChange$2(spectrum, sliderValue$2(xValue));\n return Optional.some(xValue);\n };\n var handleMovement$2 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$2(direction, spectrum, detail).map(always);\n };\n };\n var getValueFromEvent$2 = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.left;\n });\n };\n var findOffsetOfValue$1 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getXScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Optional.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n var findPositionOfValue$1 = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n var setPositionFromValue$2 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$a(thumb.element) / 2;\n set$7(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n var onLeft$2 = handleMovement$2(-1);\n var onRight$2 = handleMovement$2(1);\n var onUp$2 = Optional.none;\n var onDown$2 = Optional.none;\n var edgeActions$2 = {\n 'top-left': Optional.none(),\n 'top': Optional.none(),\n 'top-right': Optional.none(),\n 'right': Optional.some(setToREdge),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.none(),\n 'bottom-left': Optional.none(),\n 'left': Optional.some(setToLEdge)\n };\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$2,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n var fireSliderChange$1 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n var sliderValue$1 = function (y) {\n return {\n y: y\n };\n };\n var findValueOfOffset = function (spectrum, detail, top) {\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom$1 = function (spectrum, detail, value) {\n var yValue = findValueOfOffset(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n var setToMin$1 = function (spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$1(spectrum, sliderValue$1(min));\n };\n var setToMax$1 = function (spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$1(spectrum, sliderValue$1(max));\n };\n var moveBy$1 = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var yValue = f(currentValue(detail).y, minY(detail), maxY(detail), step(detail));\n fireSliderChange$1(spectrum, sliderValue$1(yValue));\n return Optional.some(yValue);\n };\n var handleMovement$1 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(always);\n };\n };\n var getValueFromEvent$1 = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.top;\n });\n };\n var findOffsetOfValue = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getYScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Optional.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n var findPositionOfValue = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n var setPositionFromValue$1 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n var onLeft$1 = Optional.none;\n var onRight$1 = Optional.none;\n var onUp$1 = handleMovement$1(-1);\n var onDown$1 = handleMovement$1(1);\n var edgeActions$1 = {\n 'top-left': Optional.none(),\n 'top': Optional.some(setToTEdge),\n 'top-right': Optional.none(),\n 'right': Optional.none(),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.some(setToBEdge),\n 'bottom-left': Optional.none(),\n 'left': Optional.none()\n };\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n var fireSliderChange = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n var sliderValue = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var setValueFrom = function (spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value.left);\n var yValue = findValueOfOffset(spectrum, detail, value.top);\n var val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n var moveBy = function (direction, isVerticalMovement, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = isVerticalMovement ? currentValue(detail).x : f(currentValue(detail).x, minX(detail), maxX(detail), step(detail));\n var yValue = !isVerticalMovement ? currentValue(detail).y : f(currentValue(detail).y, minY(detail), maxY(detail), step(detail));\n fireSliderChange(spectrum, sliderValue(xValue, yValue));\n return Optional.some(xValue);\n };\n var handleMovement = function (direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy(direction, isVerticalMovement, spectrum, detail).map(always);\n };\n };\n var setToMin = function (spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n var setToMax = function (spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n var getValueFromEvent = function (simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n var setPositionFromValue = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$a(thumb.element) / 2;\n var thumbYRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$7(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n var onLeft = handleMovement(-1, false);\n var onRight = handleMovement(1, false);\n var onUp = handleMovement(-1, true);\n var onDown = handleMovement(1, true);\n var edgeActions = {\n 'top-left': Optional.some(setToTLEdgeXY),\n 'top': Optional.some(setToTEdgeXY),\n 'top-right': Optional.some(setToTREdgeXY),\n 'right': Optional.some(setToREdgeXY),\n 'bottom-right': Optional.some(setToBREdgeXY),\n 'bottom': Optional.some(setToBEdgeXY),\n 'bottom-left': Optional.some(setToBLEdgeXY),\n 'left': Optional.some(setToLEdgeXY)\n };\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n getValueFromEvent: getValueFromEvent,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n var SliderSchema = [defaulted('stepSize', 1), defaulted('onChange', noop), defaulted('onChoose', noop), defaulted('onInit', noop), defaulted('onDragStart', noop), defaulted('onDragEnd', noop), defaulted('snapToGrid', false), defaulted('rounded', true), option('snapStart'), requiredOf('model', choose$1('mode', {\n x: [defaulted('minX', 0), defaulted('maxX', 100), customField('value', function (spec) {\n return Cell(spec.mode.minX);\n }), required$1('getInitialValue'), output$1('manager', HorizontalModel)],\n y: [defaulted('minY', 0), defaulted('maxY', 100), customField('value', function (spec) {\n return Cell(spec.mode.minY);\n }), required$1('getInitialValue'), output$1('manager', VerticalModel)],\n xy: [defaulted('minX', 0), defaulted('maxX', 100), defaulted('minY', 0), defaulted('maxY', 100), customField('value', function (spec) {\n return Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n });\n }), required$1('getInitialValue'), output$1('manager', TwoDModel)]\n })), field('sliderBehaviours', [Keying, Representing]), customField('mouseIsDown', function () {\n return Cell(false);\n })];\n var sketch$2 = function (detail, components, _spec, _externals) {\n var _a;\n var getThumb = function (component) {\n return getPartOrDie(component, detail, 'thumb');\n };\n var getSpectrum = function (component) {\n return getPartOrDie(component, detail, 'spectrum');\n };\n var getLeftEdge = function (component) {\n return getPart(component, detail, 'left-edge');\n };\n var getRightEdge = function (component) {\n return getPart(component, detail, 'right-edge');\n };\n var getTopEdge = function (component) {\n return getPart(component, detail, 'top-edge');\n };\n var getBottomEdge = function (component) {\n return getPart(component, detail, 'bottom-edge');\n };\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var refresh = function (slider, thumb) {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge: getLeftEdge,\n getRightEdge: getRightEdge,\n getTopEdge: getTopEdge,\n getBottomEdge: getBottomEdge,\n getSpectrum: getSpectrum\n });\n };\n var setValue = function (slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n var changeValue = function (slider, newValue) {\n setValue(slider, newValue);\n var thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n var resetToMin = function (slider) {\n model.setToMin(slider, detail);\n };\n var resetToMax = function (slider) {\n model.setToMax(slider, detail);\n };\n var choose = function (slider) {\n var fireOnChoose = function () {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n var onDragStart = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n var onDragEnd = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, [Keying.config({\n mode: 'special',\n focusIn: function (slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(always);\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_) {\n return modelDetail.value.get();\n }\n }\n }), Receiving.config({\n channels: (_a = {}, _a[mouseReleased()] = {\n onReceive: choose\n }, _a)\n })]),\n events: derive$2([run$1(sliderChangeEvent(), function (slider, simulatedEvent) {\n changeValue(slider, simulatedEvent.event.value);\n }), runOnAttached(function (slider, _simulatedEvent) {\n var getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n var spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n }), run$1(touchstart(), onDragStart), run$1(touchend(), onDragEnd), run$1(mousedown(), onDragStart), run$1(mouseup(), onDragEnd)]),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n setValue: setValue,\n refresh: refresh\n },\n domModification: {\n styles: {\n position: 'relative'\n }\n }\n };\n };\n var Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: function (apis, slider, value) {\n apis.setValue(slider, value);\n },\n resetToMin: function (apis, slider) {\n apis.resetToMin(slider);\n },\n resetToMax: function (apis, slider) {\n apis.resetToMax(slider);\n },\n refresh: function (apis, slider) {\n apis.refresh(slider);\n }\n }\n });\n var fieldsUpdate = generate$6('rgb-hex-update');\n var sliderUpdate = generate$6('slider-update');\n var paletteUpdate = generate$6('palette-update');\n var sliderFactory = function (translate, getClass) {\n var spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: {\n role: 'presentation'\n }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: {\n role: 'presentation'\n }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant$1({\n y: 0\n })\n },\n components: [spectrum, thumb],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: function (slider, _thumb, value) {\n emitWith(slider, sliderUpdate, {\n value: value\n });\n }\n });\n };\n var owner$1 = 'form';\n var schema$i = [field('formBehaviours', [Representing])];\n var getPartName$1 = function (name) {\n return '';\n };\n var sketch$1 = function (fSpec) {\n var parts = function () {\n var record = [];\n var field = function (name, config) {\n record.push(name);\n return generateOne$1(owner$1, getPartName$1(name), config);\n };\n return {\n field: field,\n record: constant$1(record)\n };\n }();\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n var toResult = function (o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n var make$4 = function (detail, components) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: function (form) {\n var resPs = getAllParts(form, detail);\n return map$1(resPs, function (resPThunk, pName) {\n return resPThunk().bind(function (v) {\n var opt = Composing.getCurrent(v);\n return toResult(opt, new Error('Cannot find a current component to extract the value from for form part \\'' + pName + '\\': ' + element(v.element)));\n }).map(Representing.getValue);\n });\n },\n setValue: function (form, values) {\n each(values, function (newValue, key) {\n getPart(form, detail, key).each(function (wrapper) {\n Composing.getCurrent(wrapper).each(function (field) {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: function (form, key) {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n };\n };\n var Form = {\n getField: makeApi(function (apis, component, key) {\n return apis.getField(component, key);\n }),\n sketch: sketch$1\n };\n var validInput = generate$6('valid-input');\n var invalidInput = generate$6('invalid-input');\n var validatingInput = generate$6('validating-input');\n var translatePrefix = 'colorcustom.rgb.';\n var rgbFormFactory = function (translate, getClass, onValidHexx, onInvalidHexx) {\n var invalidation = function (label, isValid) {\n return Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: function (comp) {\n emitWith(comp, validatingInput, {\n type: label\n });\n },\n onValid: function (comp) {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: function (comp) {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: function (comp) {\n var value = Representing.getValue(comp);\n var res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n };\n var renderTextField = function (isValid, name, label, description, data) {\n var helptext = translate(translatePrefix + 'range');\n var pLabel = FormField.parts.label({\n dom: {\n tag: 'label',\n innerHtml: label,\n attributes: {\n 'aria-label': description\n }\n }\n });\n var pField = FormField.parts.field({\n data: data,\n factory: Input,\n inputAttributes: __assign({\n type: 'text'\n }, name === 'hex' ? {\n 'aria-live': 'polite'\n } : {}),\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([invalidation(name, isValid), Tabstopping.config({})]),\n onSetValue: function (input) {\n if (Invalidating.isInvalid(input)) {\n var run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n var comps = [pLabel, pField];\n var concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({\n text: helptext\n })] : [];\n var components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n }\n },\n components: components\n };\n };\n var copyRgbToHex = function (form, rgba) {\n var hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(function (hexField) {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, {\n hex: hex.value\n });\n }\n });\n return hex;\n };\n var copyRgbToForm = function (form, rgb) {\n var red = rgb.red;\n var green = rgb.green;\n var blue = rgb.blue;\n Representing.setValue(form, {\n red: red,\n green: green,\n blue: blue\n });\n };\n var memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: {\n 'background-color': 'white'\n },\n attributes: {\n role: 'presentation'\n }\n }\n });\n var updatePreview = function (anyInSystem, hex) {\n memPreview.getOpt(anyInSystem).each(function (preview) {\n set$7(preview.element, 'background-color', '#' + hex.value);\n });\n };\n var factory = function () {\n var state = {\n red: Cell(Optional.some(255)),\n green: Cell(Optional.some(255)),\n blue: Cell(Optional.some(255)),\n hex: Cell(Optional.some('ffffff'))\n };\n var copyHexToRgb = function (form, hex) {\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n var get = function (prop) {\n return state[prop].get();\n };\n var set = function (prop, value) {\n state[prop].set(value);\n };\n var getValueRgb = function () {\n return get('red').bind(function (red) {\n return get('green').bind(function (green) {\n return get('blue').map(function (blue) {\n return rgbaColour(red, green, blue, 1);\n });\n });\n });\n };\n var setValueRgb = function (rgb) {\n var red = rgb.red;\n var green = rgb.green;\n var blue = rgb.blue;\n set('red', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n var onInvalidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n var onValidHex = function (form, value) {\n onValidHexx(form);\n var hex = hexColour(value);\n set('hex', Optional.some(value));\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate, {\n hex: hex\n });\n updatePreview(form, hex);\n };\n var onValidRgb = function (form, prop, value) {\n var val = parseInt(value, 10);\n set(prop, Optional.some(val));\n getValueRgb().each(function (rgb) {\n var hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, {\n hex: hex\n });\n updatePreview(form, hex);\n });\n };\n var isHexInputEvent = function (data) {\n return data.type === 'hex';\n };\n var onValidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event;\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n var formPartStrings = function (key) {\n return {\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n };\n };\n var redStrings = formPartStrings('red');\n var greenStrings = formPartStrings('green');\n var blueStrings = formPartStrings('blue');\n var hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: {\n 'aria-label': translate('aria.color.picker')\n }\n },\n components: [parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))), parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))), parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))), parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))), memPreview.asSpec()],\n formBehaviours: derive$1([Invalidating.config({\n invalidClass: getClass('form-invalid')\n }), config('rgb-form-events', [run$1(validInput, onValidInput), run$1(invalidInput, onInvalidInput), run$1(validatingInput, onInvalidInput)])])\n };\n }), {\n apis: {\n updateHex: function (form, hex) {\n Representing.setValue(form, {\n hex: hex.value\n });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n var rgbFormSketcher = single({\n factory: factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: function (apis, form, hex) {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n var paletteFactory = function (_translate, getClass) {\n var spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n var thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: ''\n }\n });\n var setColour = function (canvas, rgba) {\n var width = canvas.width,\n height = canvas.height;\n var ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n var grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n var grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n var setPaletteHue = function (slider, hue) {\n var canvas = slider.components()[0].element.dom;\n var hsv = hsvColour(hue, 100, 100);\n var rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n var setPaletteThumb = function (slider, hex) {\n var hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n };\n var factory = function (_detail) {\n var getInitialValue = constant$1({\n x: 0,\n y: 0\n });\n var onChange = function (slider, _thumb, value) {\n emitWith(slider, paletteUpdate, {\n value: value\n });\n };\n var onInit = function (_slider, _thumb, spectrum, _value) {\n setColour(spectrum.element.dom, toString(red));\n };\n var sliderBehaviours = derive$1([Composing.config({\n find: Optional.some\n }), Focusing.config({})]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue: getInitialValue\n },\n rounded: false,\n components: [spectrumPart, thumbPart],\n onChange: onChange,\n onInit: onInit,\n sliderBehaviours: sliderBehaviours\n });\n };\n var saturationBrightnessPaletteSketcher = single({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: function (_apis, slider, hue) {\n setPaletteHue(slider, hue);\n },\n setThumb: function (_apis, slider, hex) {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n var makeFactory = function (translate, getClass) {\n var factory = function (detail) {\n var rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = paletteFactory(translate, getClass);\n var hueSliderToDegrees = function (hue) {\n return (100 - hue) / 100 * 360;\n };\n var hueDegreesToSlider = function (hue) {\n return 100 - hue / 360 * 100;\n };\n var state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n var memSlider = record(sliderFactory(translate, getClass));\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n var updatePalette = function (anyInSystem, _hex, hue) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setHue(palette, hue);\n });\n };\n var updateFields = function (anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n var updateSlider = function (anyInSystem, _hex, hue) {\n memSlider.getOpt(anyInSystem).each(function (slider) {\n Slider.setValue(slider, {\n y: hueDegreesToSlider(hue)\n });\n });\n };\n var updatePaletteThumb = function (anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setThumb(palette, hex);\n });\n };\n var updateState = function (hex, hue) {\n var rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n var runUpdates = function (anyInSystem, hex, hue, updates) {\n updateState(hex, hue);\n each$1(updates, function (update) {\n update(anyInSystem, hex, hue);\n });\n };\n var onPaletteUpdate = function () {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event.value;\n var oldHue = state.paletteHue.get();\n var newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n var onSliderUpdate = function () {\n var updates = [updatePalette, updateFields];\n return function (form, simulatedEvent) {\n var hue = hueSliderToDegrees(simulatedEvent.event.value.y);\n var oldRgb = state.paletteRgba.get();\n var oldHsv = fromRgb(oldRgb);\n var newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n var onFieldsUpdate = function () {\n var updates = [updatePalette, updateSlider, updatePaletteThumb];\n return function (form, simulatedEvent) {\n var hex = simulatedEvent.event.hex;\n var hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [memPalette.asSpec(), memSlider.asSpec(), memRgb.asSpec()],\n behaviours: derive$1([config('colour-picker-events', [run$1(fieldsUpdate, onFieldsUpdate()), run$1(paletteUpdate, onPaletteUpdate()), run$1(sliderUpdate, onSliderUpdate())]), Composing.config({\n find: function (comp) {\n return memRgb.getOpt(comp);\n }\n }), Keying.config({\n mode: 'acyclic'\n })])\n };\n };\n var colourPickerSketcher = single({\n name: 'ColourPicker',\n configFields: [required$1('dom'), defaulted('onValidHex', noop), defaulted('onInvalidHex', noop)],\n factory: factory\n });\n return colourPickerSketcher;\n };\n var self$1 = function () {\n return Composing.config({\n find: Optional.some\n });\n };\n var memento$1 = function (mem) {\n return Composing.config({\n find: mem.getOpt\n });\n };\n var childAt = function (index) {\n return Composing.config({\n find: function (comp) {\n return child$2(comp.element, index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOptional();\n });\n }\n });\n };\n var ComposingConfigs = {\n self: self$1,\n memento: memento$1,\n childAt: childAt\n };\n var english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red component',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green component',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue component',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.sb.saturation': 'Saturation',\n 'colorcustom.sb.brightness': 'Brightness',\n 'colorcustom.sb.picker': 'Saturation and Brightness Picker',\n 'colorcustom.sb.palette': 'Saturation and Brightness Palette',\n 'colorcustom.sb.instructions': 'Use arrow keys to select saturation and brightness, on x and y axes',\n 'colorcustom.hue.hue': 'Hue',\n 'colorcustom.hue.slider': 'Hue Slider',\n 'colorcustom.hue.palette': 'Hue Palette',\n 'colorcustom.hue.instructions': 'Use arrow keys to select a hue',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n var getEnglishText = function (key) {\n return english[key];\n };\n var translate$1 = function (key) {\n return getEnglishText(key);\n };\n var renderColorPicker = function (_spec) {\n var getClass = function (key) {\n return 'tox-' + key;\n };\n var colourPickerFactory = makeFactory(translate$1, getClass);\n var onValidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n var onInvalidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n var memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: {\n role: 'presentation'\n }\n },\n onValidHex: onValidHex,\n onInvalidHex: onInvalidHex\n }));\n return {\n dom: {\n tag: 'div'\n },\n components: [memPicker.asSpec()],\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n var optHex = optRgbForm.bind(function (rgbForm) {\n var formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(function (hex) {\n return '#' + hex;\n }).getOr('');\n },\n setValue: function (comp, newValue) {\n var pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n var m = pattern.exec(newValue);\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(function () {\n console.log('Can not find form');\n }, function (rgbForm) {\n Representing.setValue(rgbForm, {\n hex: Optional.from(m[1]).getOr('')\n });\n Form.getField(rgbForm, 'hex').each(function (hexField) {\n emit(hexField, input());\n });\n });\n }\n }\n }), ComposingConfigs.self()])\n };\n };\n var global$6 = tinymce.util.Tools.resolve('tinymce.Resource');\n var isOldCustomEditor = function (spec) {\n return has$2(spec, 'init');\n };\n var renderCustomEditor = function (spec) {\n var editorApi = value$1();\n var memReplaced = record({\n dom: {\n tag: spec.tag\n }\n });\n var initialValue = value$1();\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([config('custom-editor-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$6.load(spec.scriptId, spec.scriptUrl).then(function (init) {\n return init(ta.element.dom, spec.settings);\n })).then(function (ea) {\n initialValue.on(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(ea);\n });\n });\n })]), Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return editorApi.get().fold(function () {\n return initialValue.get().getOr('');\n }, function (ed) {\n return ed.getValue();\n });\n },\n setValue: function (component, value) {\n editorApi.get().fold(function () {\n initialValue.set(value);\n }, function (ed) {\n return ed.setValue(value);\n });\n }\n }\n }), ComposingConfigs.self()]),\n components: [memReplaced.asSpec()]\n };\n };\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n var processors = objOf([defaulted('preprocess', identity$1), defaulted('postprocess', identity$1)]);\n var memento = function (mem, rawProcessors) {\n var ps = asRawOrDie$1('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var other = mem.get(comp);\n var rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: function (comp, rawValue) {\n var newValue = ps.preprocess(rawValue);\n var other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n var withComp = function (optInitialValue, getter, setter) {\n return Representing.config(deepMerge({\n store: {\n mode: 'manual',\n getValue: getter,\n setValue: setter\n }\n }, optInitialValue.map(function (initialValue) {\n return {\n store: {\n initialValue: initialValue\n }\n };\n }).getOr({})));\n };\n var withElement = function (initialValue, getter, setter) {\n return withComp(initialValue, function (c) {\n return getter(c.element);\n }, function (c, v) {\n return setter(c.element, v);\n });\n };\n var domValue = function (optInitialValue) {\n return withElement(optInitialValue, get$5, set$4);\n };\n var domHtml = function (optInitialValue) {\n return withElement(optInitialValue, get$7, set$5);\n };\n var memory = function (initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n var RepresentingConfigs = {\n memento: memento,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory\n };\n var defaultImageFileTypes = 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp';\n var filterByExtension = function (files, providersBackstage) {\n var allowedImageFileTypes = global$5.explode(providersBackstage.getSetting('images_file_types', defaultImageFileTypes, 'string'));\n var isFileInAllowedTypes = function (file) {\n return exists(allowedImageFileTypes, function (type) {\n return endsWith(file.name.toLowerCase(), '.' + type.toLowerCase());\n });\n };\n return filter$2(from(files), isFileInAllowedTypes);\n };\n var renderDropZone = function (spec, providersBackstage) {\n var stopper = function (_, se) {\n se.stop();\n };\n var sequence = function (actions) {\n return function (comp, se) {\n each$1(actions, function (a) {\n a(comp, se);\n });\n };\n };\n var onDrop = function (comp, se) {\n if (!Disabling.isDisabled(comp)) {\n var transferEvent = se.event.raw;\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n var onSelect = function (component, simulatedEvent) {\n var input = simulatedEvent.event.raw.target;\n handleFiles(component, input.files);\n };\n var handleFiles = function (component, files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n };\n var memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: {\n display: 'none'\n }\n },\n behaviours: derive$1([config('input-file-events', [cutter(click()), cutter(tap())])])\n });\n var renderField = function (s) {\n return {\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([RepresentingConfigs.memory([]), ComposingConfigs.self(), Disabling.config({}), Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }), config('dropzone-events', [run$1('dragenter', sequence([stopper, Toggling.toggle])), run$1('dragleave', sequence([stopper, Toggling.toggle])), run$1('dragover', stopper), run$1('drop', sequence([stopper, onDrop])), run$1(change(), onSelect)])]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [{\n dom: {\n tag: 'p',\n innerHtml: providersBackstage.translate('Drop an image here')\n }\n }, Button.sketch({\n dom: {\n tag: 'button',\n innerHtml: providersBackstage.translate('Browse for an image'),\n styles: {\n position: 'relative'\n },\n classes: ['tox-button', 'tox-button--secondary']\n },\n components: [memInput.asSpec()],\n action: function (comp) {\n var inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([Tabstopping.config({}), DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig()])\n })]\n }]\n };\n };\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n factory: {\n sketch: renderField\n }\n });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n var renderGrid = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__grid', 'tox-form__grid--' + spec.columns + 'col']\n },\n components: map$2(spec.items, backstage.interpreter)\n };\n };\n var beforeObject = generate$6('alloy-fake-before-tabstop');\n var afterObject = generate$6('alloy-fake-after-tabstop');\n var craftWithClasses = function (classes) {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: {\n tabindex: '0'\n },\n classes: classes\n },\n behaviours: derive$1([Focusing.config({\n ignore: true\n }), Tabstopping.config({})])\n };\n };\n var craft = function (spec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [craftWithClasses([beforeObject]), spec, craftWithClasses([afterObject])],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n var triggerTab = function (placeholder, shiftKey) {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey: shiftKey\n }\n });\n };\n var onFocus = function (container, targetComp) {\n var target = targetComp.element;\n if (has(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n var isPseudoStop = function (element) {\n return closest(element, ['.' + beforeObject, '.' + afterObject].join(','), never);\n };\n var platformNeedsSandboxing = !(detect$1().browser.isIE() || detect$1().browser.isEdge());\n var getDynamicSource = function (isSandbox) {\n var cachedValue = Cell('');\n return {\n getValue: function (_frameComponent) {\n return cachedValue.get();\n },\n setValue: function (frameComponent, html) {\n if (!isSandbox) {\n set$8(frameComponent.element, 'src', 'javascript:\\'\\'');\n var doc = frameComponent.element.dom.contentWindow.document;\n doc.open();\n doc.write(html);\n doc.close();\n } else {\n set$8(frameComponent.element, 'srcdoc', html);\n }\n cachedValue.set(html);\n }\n };\n };\n var renderIFrame = function (spec, providersBackstage) {\n var isSandbox = platformNeedsSandboxing && spec.sandboxed;\n var attributes = __assign(__assign({}, spec.label.map(function (title) {\n return {\n title: title\n };\n }).getOr({})), isSandbox ? {\n sandbox: 'allow-scripts allow-same-origin'\n } : {});\n var sourcing = getDynamicSource(isSandbox);\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var factory = function (newSpec) {\n return craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes: attributes\n },\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({}), RepresentingConfigs.withComp(Optional.none(), sourcing.getValue, sourcing.setValue)])\n });\n };\n var pField = FormField.parts.field({\n factory: {\n sketch: factory\n }\n });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n var create$3 = function (width, height) {\n return resize$3(document.createElement('canvas'), width, height);\n };\n var clone = function (canvas) {\n var tCanvas = create$3(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n };\n var get2dContext = function (canvas) {\n return canvas.getContext('2d');\n };\n var resize$3 = function (canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n var getWidth$1 = function (image) {\n return image.naturalWidth || image.width;\n };\n var getHeight$1 = function (image) {\n return image.naturalHeight || image.height;\n };\n var blobToImage = function (blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = URL.createObjectURL(blob);\n var image = new Image();\n var removeListeners = function () {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n var loaded = function () {\n removeListeners();\n resolve(image);\n };\n var error = function () {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n };\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n if (image.complete) {\n setTimeout(loaded, 0);\n }\n });\n };\n var dataUriToBlobSync = function (uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n if (!matches) {\n return Optional.none();\n }\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = atob(base64);\n var bytesLength = byteCharacters.length;\n var slicesCount = Math.ceil(bytesLength / sliceSize);\n var byteArrays = new Array(slicesCount);\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n var begin = sliceIndex * sliceSize;\n var end = Math.min(begin + sliceSize, bytesLength);\n var bytes = new Array(end - begin);\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n byteArrays[sliceIndex] = new Uint8Array(bytes);\n }\n return Optional.some(new Blob(byteArrays, {\n type: mimetype\n }));\n };\n var dataUriToBlob = function (uri) {\n return new Promise$1(function (resolve, reject) {\n dataUriToBlobSync(uri).fold(function () {\n reject('uri is not base64: ' + uri);\n }, resolve);\n });\n };\n var canvasToBlob = function (canvas, type, quality) {\n type = type || 'image/png';\n if (isFunction(HTMLCanvasElement.prototype.toBlob)) {\n return new Promise$1(function (resolve, reject) {\n canvas.toBlob(function (blob) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n };\n var canvasToDataURL = function (canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n };\n var blobToCanvas = function (blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$3(getWidth$1(image), getHeight$1(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n };\n var blobToDataUri = function (blob) {\n return new Promise$1(function (resolve) {\n var reader = new FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n };\n var revokeImageUrl = function (image) {\n URL.revokeObjectURL(image.src);\n };\n var create$2 = function (getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant$1(initialType);\n var toBlob = function () {\n return Promise$1.resolve(blob);\n };\n var toDataURL = constant$1(uri);\n var toBase64 = function () {\n return uri.split(',')[1];\n };\n var toAdjustedBlob = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n };\n var toAdjustedDataURL = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n };\n var toAdjustedBase64 = function (type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n };\n var toCanvas = function () {\n return getCanvas.then(clone);\n };\n return {\n getType: getType,\n toBlob: toBlob,\n toDataURL: toDataURL,\n toBase64: toBase64,\n toAdjustedBlob: toAdjustedBlob,\n toAdjustedDataURL: toAdjustedDataURL,\n toAdjustedBase64: toAdjustedBase64,\n toCanvas: toCanvas\n };\n };\n var fromBlob = function (blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create$2(blobToCanvas(blob), blob, uri);\n });\n };\n var fromCanvas = function (canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create$2(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n };\n var blobToImageResult = function (blob) {\n return fromBlob(blob);\n };\n var clamp = function (value, min, max) {\n var parsedValue = typeof value === 'string' ? parseFloat(value) : value;\n if (parsedValue > max) {\n parsedValue = max;\n } else if (parsedValue < min) {\n parsedValue = min;\n }\n return parsedValue;\n };\n var identity = function () {\n return [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n };\n var DELTA_INDEX = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10];\n var multiply = function (matrix1, matrix2) {\n var col = [];\n var out = new Array(25);\n var val;\n for (var i = 0; i < 5; i++) {\n for (var j = 0; j < 5; j++) {\n col[j] = matrix2[j + i * 5];\n }\n for (var j = 0; j < 5; j++) {\n val = 0;\n for (var k = 0; k < 5; k++) {\n val += matrix1[j + k * 5] * col[k];\n }\n out[j + i * 5] = val;\n }\n }\n return out;\n };\n var adjustContrast = function (matrix, value) {\n var x;\n value = clamp(value, -1, 1);\n value *= 100;\n if (value < 0) {\n x = 127 + value / 100 * 127;\n } else {\n x = value % 1;\n if (x === 0) {\n x = DELTA_INDEX[value];\n } else {\n x = DELTA_INDEX[Math.floor(value)] * (1 - x) + DELTA_INDEX[Math.floor(value) + 1] * x;\n }\n x = x * 127 + 127;\n }\n return multiply(matrix, [x / 127, 0, 0, 0, 0.5 * (127 - x), 0, x / 127, 0, 0, 0.5 * (127 - x), 0, 0, x / 127, 0, 0.5 * (127 - x), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n var adjustBrightness = function (matrix, value) {\n value = clamp(255 * value, -255, 255);\n return multiply(matrix, [1, 0, 0, 0, value, 0, 1, 0, 0, value, 0, 0, 1, 0, value, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n var adjustColors = function (matrix, adjustR, adjustG, adjustB) {\n adjustR = clamp(adjustR, 0, 2);\n adjustG = clamp(adjustG, 0, 2);\n adjustB = clamp(adjustB, 0, 2);\n return multiply(matrix, [adjustR, 0, 0, 0, 0, 0, adjustG, 0, 0, 0, 0, 0, adjustB, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n var colorFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyColorFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pixelsData, m) {\n var r, g, b, a;\n var data = pixelsData.data,\n m0 = m[0],\n m1 = m[1],\n m2 = m[2],\n m3 = m[3],\n m4 = m[4],\n m5 = m[5],\n m6 = m[6],\n m7 = m[7],\n m8 = m[8],\n m9 = m[9],\n m10 = m[10],\n m11 = m[11],\n m12 = m[12],\n m13 = m[13],\n m14 = m[14],\n m15 = m[15],\n m16 = m[16],\n m17 = m[17],\n m18 = m[18],\n m19 = m[19];\n for (var i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i] = r * m0 + g * m1 + b * m2 + a * m3 + m4;\n data[i + 1] = r * m5 + g * m6 + b * m7 + a * m8 + m9;\n data[i + 2] = r * m10 + g * m11 + b * m12 + a * m13 + m14;\n data[i + 3] = r * m15 + g * m16 + b * m17 + a * m18 + m19;\n }\n return pixelsData;\n };\n var pixels = applyMatrix(context.getImageData(0, 0, canvas.width, canvas.height), matrix);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n var convoluteFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyConvoluteFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pIn, pOut, aMatrix) {\n var clamp = function (value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\n };\n var side = Math.round(Math.sqrt(aMatrix.length));\n var halfSide = Math.floor(side / 2);\n var rgba = pIn.data;\n var drgba = pOut.data;\n var w = pIn.width;\n var h = pIn.height;\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var r = 0;\n var g = 0;\n var b = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scx = clamp(x + cx - halfSide, 0, w - 1);\n var scy = clamp(y + cy - halfSide, 0, h - 1);\n var innerOffset = (scy * w + scx) * 4;\n var wt = aMatrix[cy * side + cx];\n r += rgba[innerOffset] * wt;\n g += rgba[innerOffset + 1] * wt;\n b += rgba[innerOffset + 2] * wt;\n }\n }\n var offset = (y * w + x) * 4;\n drgba[offset] = clamp(r, 0, 255);\n drgba[offset + 1] = clamp(g, 0, 255);\n drgba[offset + 2] = clamp(b, 0, 255);\n }\n }\n return pOut;\n };\n var pixelsIn = context.getImageData(0, 0, canvas.width, canvas.height);\n var pixelsOut = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = applyMatrix(pixelsIn, pixelsOut, matrix);\n context.putImageData(pixelsOut, 0, 0);\n return fromCanvas(canvas, type);\n };\n var functionColorFilter = function (colorFn) {\n var filterImpl = function (canvas, type, value) {\n var context = get2dContext(canvas);\n var lookup = new Array(256);\n var applyLookup = function (pixelsData, lookupData) {\n var data = pixelsData.data;\n for (var i = 0; i < data.length; i += 4) {\n data[i] = lookupData[data[i]];\n data[i + 1] = lookupData[data[i + 1]];\n data[i + 2] = lookupData[data[i + 2]];\n }\n return pixelsData;\n };\n for (var i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\n }\n var pixels = applyLookup(context.getImageData(0, 0, canvas.width, canvas.height), lookup);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n return function (ir, value) {\n return ir.toCanvas().then(function (canvas) {\n return filterImpl(canvas, ir.getType(), value);\n });\n };\n };\n var complexAdjustableColorFilter = function (matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(identity(), adjust));\n };\n };\n var basicColorFilter = function (matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n };\n var basicConvolutionFilter = function (kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n };\n var invert$1 = basicColorFilter([-1, 0, 0, 0, 255, 0, -1, 0, 0, 255, 0, 0, -1, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n var brightness$1 = complexAdjustableColorFilter(adjustBrightness);\n var contrast$1 = complexAdjustableColorFilter(adjustContrast);\n var colorize$1 = function (ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, adjustColors(identity(), adjustR, adjustG, adjustB));\n };\n var sharpen$1 = basicConvolutionFilter([0, -1, 0, -1, 5, -1, 0, -1, 0]);\n var gamma$1 = functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n });\n var scale = function (image, dW, dH) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(image);\n var wRatio = dW / sW;\n var hRatio = dH / sH;\n var scaleCapped = false;\n if (wRatio < 0.5 || wRatio > 2) {\n wRatio = wRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n if (hRatio < 0.5 || hRatio > 2) {\n hRatio = hRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n var scaled = _scale(image, wRatio, hRatio);\n return !scaleCapped ? scaled : scaled.then(function (tCanvas) {\n return scale(tCanvas, dW, dH);\n });\n };\n var _scale = function (image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = create$3(dW, dH);\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);\n resolve(canvas);\n });\n };\n var ceilWithPrecision = function (num, precision) {\n if (precision === void 0) {\n precision = 2;\n }\n var mul = Math.pow(10, precision);\n var upper = Math.round(num * mul);\n return Math.ceil(upper / mul);\n };\n var rotate$1 = function (ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n };\n var applyRotate = function (image, type, angle) {\n var degrees = angle < 0 ? 360 + angle : angle;\n var rad = degrees * Math.PI / 180;\n var width = image.width;\n var height = image.height;\n var sin = Math.sin(rad);\n var cos = Math.cos(rad);\n var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));\n var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));\n var canvas = create$3(newWidth, newHeight);\n var context = get2dContext(canvas);\n context.translate(newWidth / 2, newHeight / 2);\n context.rotate(rad);\n context.drawImage(image, -width / 2, -height / 2);\n return fromCanvas(canvas, type);\n };\n var flip$1 = function (ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n };\n var applyFlip = function (image, type, axis) {\n var canvas = create$3(image.width, image.height);\n var context = get2dContext(canvas);\n if (axis === 'v') {\n context.scale(1, -1);\n context.drawImage(image, 0, -canvas.height);\n } else {\n context.scale(-1, 1);\n context.drawImage(image, -canvas.width, 0);\n }\n return fromCanvas(canvas, type);\n };\n var crop$1 = function (ir, x, y, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return applyCrop(canvas, ir.getType(), x, y, w, h);\n });\n };\n var applyCrop = function (image, type, x, y, w, h) {\n var canvas = create$3(w, h);\n var context = get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return fromCanvas(canvas, type);\n };\n var resize$2 = function (ir, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return scale(canvas, w, h).then(function (newCanvas) {\n return fromCanvas(newCanvas, ir.getType());\n });\n });\n };\n var invert = function (ir) {\n return invert$1(ir);\n };\n var sharpen = function (ir) {\n return sharpen$1(ir);\n };\n var gamma = function (ir, value) {\n return gamma$1(ir, value);\n };\n var colorize = function (ir, adjustR, adjustG, adjustB) {\n return colorize$1(ir, adjustR, adjustG, adjustB);\n };\n var brightness = function (ir, adjust) {\n return brightness$1(ir, adjust);\n };\n var contrast = function (ir, adjust) {\n return contrast$1(ir, adjust);\n };\n var flip = function (ir, axis) {\n return flip$1(ir, axis);\n };\n var crop = function (ir, x, y, w, h) {\n return crop$1(ir, x, y, w, h);\n };\n var resize$1 = function (ir, w, h) {\n return resize$2(ir, w, h);\n };\n var rotate = function (ir, angle) {\n return rotate$1(ir, angle);\n };\n var renderIcon = function (iconName, iconsProvider, behaviours) {\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-tbtn__icon-wrap'],\n behaviours: behaviours\n }, iconsProvider);\n };\n var renderIconFromPack = function (iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, []);\n };\n var renderReplacableIconFromPack = function (iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, [Replacing.config({})]);\n };\n var renderLabel$1 = function (text, prefix, providersBackstage) {\n return {\n dom: {\n tag: 'span',\n innerHtml: providersBackstage.translate(text),\n classes: [prefix + '__select-label']\n },\n behaviours: derive$1([Replacing.config({})])\n };\n };\n var _a;\n var internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n var onToolbarButtonExecute = function (info) {\n return runOnExecute$1(function (comp, _simulatedEvent) {\n runWithApi(info, comp)(function (itemApi) {\n emitWith(comp, internalToolbarButtonExecute, {\n buttonApi: itemApi\n });\n info.onAction(itemApi);\n });\n });\n };\n var toolbarButtonEventOrder = (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'toggling', 'toolbar-button-events'], _a);\n var updateMenuText = generate$6('update-menu-text');\n var updateMenuIcon = generate$6('update-menu-icon');\n var renderCommonDropdown = function (spec, prefix, sharedBackstage) {\n var editorOffCell = Cell(noop);\n var optMemDisplayText = spec.text.map(function (text) {\n return record(renderLabel$1(text, prefix, sharedBackstage.providers));\n });\n var optMemDisplayIcon = spec.icon.map(function (iconName) {\n return record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons));\n });\n var onLeftOrRightInMenu = function (comp, se) {\n var dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', {\n raw: se.event.raw\n });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n var role = spec.role.fold(function () {\n return {};\n }, function (role) {\n return {\n role: role\n };\n });\n var tooltipAttributes = spec.tooltip.fold(function () {\n return {};\n }, function (tooltip) {\n var translatedTooltip = sharedBackstage.providers.translate(tooltip);\n return {\n 'title': translatedTooltip,\n 'aria-label': translatedTooltip\n };\n });\n var iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [prefix + '__select-chevron']\n }, sharedBackstage.providers.icons);\n var memDropdown = record(Dropdown.sketch(__assign(__assign(__assign({}, spec.uid ? {\n uid: spec.uid\n } : {}), role), {\n dom: {\n tag: 'button',\n classes: [prefix, prefix + '--select'].concat(map$2(spec.classes, function (c) {\n return prefix + '--' + c;\n })),\n attributes: __assign({}, tooltipAttributes)\n },\n components: componentRenderPipeline([optMemDisplayIcon.map(function (mem) {\n return mem.asSpec();\n }), optMemDisplayText.map(function (mem) {\n return mem.asSpec();\n }), Optional.some(iconSpec)]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(__spreadArray(__spreadArray([], spec.dropdownBehaviours, true), [DisablingConfigs.button(function () {\n return spec.disabled || sharedBackstage.providers.isDisabled();\n }), receivingConfig(), Unselecting.config({}), Replacing.config({}), config('dropdown-events', [onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell)]), config('menubutton-update-display-text', [run$1(updateMenuText, function (comp, se) {\n optMemDisplayText.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayText) {\n Replacing.set(displayText, [text$1(sharedBackstage.providers.translate(se.event.text))]);\n });\n }), run$1(updateMenuIcon, function (comp, se) {\n optMemDisplayIcon.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayIcon) {\n Replacing.set(displayIcon, [renderReplacableIconFromPack(se.event.icon, sharedBackstage.providers.icons)]);\n });\n })])], false)),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: ['focusing', 'alloy.base.behaviour', 'item-type-events', 'normal-dropdown-events']\n }),\n sandboxBehaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n })]),\n lazySink: sharedBackstage.getSink,\n toggleClass: prefix + '--active',\n parts: {\n menu: part(false, spec.columns, spec.presets)\n },\n fetch: function (comp) {\n return Future.nu(curry(spec.fetch, comp));\n }\n })));\n return memDropdown.asSpec();\n };\n var isMenuItemReference = function (item) {\n return isString(item);\n };\n var isSeparator$1 = function (item) {\n return item.type === 'separator';\n };\n var isExpandingMenuItem = function (item) {\n return has$2(item, 'getSubmenuItems');\n };\n var separator$2 = {\n type: 'separator'\n };\n var unwrapReferences = function (items, menuItems) {\n var realItems = foldl(items, function (acc, item) {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator$1(acc[acc.length - 1]) ? acc.concat([separator$2]) : acc;\n } else if (has$2(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n if (realItems.length > 0 && isSeparator$1(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n var getFromExpandingItem = function (item, menuItems) {\n var submenuItems = item.getSubmenuItems();\n var rest = expand(submenuItems, menuItems);\n var newMenus = deepMerge(rest.menus, wrap$1(item.value, rest.items));\n var newExpansions = deepMerge(rest.expansions, wrap$1(item.value, item.value));\n return {\n item: item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n var getFromItem = function (item, menuItems) {\n return isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item: item,\n menus: {},\n expansions: {}\n };\n };\n var generateValueIfRequired = function (item) {\n if (isSeparator$1(item)) {\n return item;\n } else {\n var itemValue = get$e(item, 'value').getOrThunk(function () {\n return generate$6('generated-menu-item');\n });\n return deepMerge({\n value: itemValue\n }, item);\n }\n };\n var expand = function (items, menuItems) {\n var realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, function (acc, item) {\n var itemWithValue = generateValueIfRequired(item);\n var newData = getFromItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [newData.item].concat(acc.items),\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n var build = function (items, itemResponse, backstage, isHorizontalMenu) {\n var primary = generate$6('primary-menu');\n var data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n var submenus = map$1(data.menus, function (menuItems, menuName) {\n return createPartialMenu(menuName, menuItems, itemResponse, backstage, false);\n });\n var menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n var getMenuButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n },\n setActive: function (state) {\n var elm = component.element;\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$8(elm, 'aria-pressed', true);\n } else {\n remove$2(elm, 'tox-tbtn--enabled');\n remove$7(elm, 'aria-pressed');\n }\n },\n isActive: function () {\n return has(component.element, 'tox-tbtn--enabled');\n }\n };\n };\n var renderMenuButton = function (spec, prefix, backstage, role) {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role: role,\n fetch: function (_comp, callback) {\n spec.fetch(function (items) {\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n });\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({})]\n }, prefix, backstage.shared);\n };\n var getFetch = function (items, getButton, backstage) {\n var getMenuItemAction = function (item) {\n return function (api) {\n var newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(function (sink) {\n getButton().getOpt(sink).each(function (orig) {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n };\n var getMenuItemSetup = function (item) {\n return function (api) {\n api.setActive(item.storage.get());\n };\n };\n return function (success) {\n success(map$2(items, function (item) {\n var text = item.text.fold(function () {\n return {};\n }, function (text) {\n return {\n text: text\n };\n });\n return __assign(__assign({\n type: item.type,\n active: false\n }, text), {\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n });\n }));\n };\n };\n var renderCommonSpec = function (spec, actionOpt, extraBehaviours, dom, components, providersBackstage) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var action = actionOpt.fold(function () {\n return {};\n }, function (action) {\n return {\n action: action\n };\n });\n var common = __assign({\n buttonBehaviours: derive$1([DisablingConfigs.button(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }), receivingConfig(), Tabstopping.config({}), config('button press', [preventDefault('click'), preventDefault('mousedown')])].concat(extraBehaviours)),\n eventOrder: {\n click: ['button press', 'alloy.base.behaviour'],\n mousedown: ['button press', 'alloy.base.behaviour']\n }\n }, action);\n var domFinal = deepMerge(common, {\n dom: dom\n });\n return deepMerge(domFinal, {\n components: components\n });\n };\n var renderIconButtonSpec = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var tooltipAttributes = spec.tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n var dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: tooltipAttributes\n };\n var icon = spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n });\n var components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n var renderIconButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var iconButtonSpec = renderIconButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n var renderButtonSpec = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var translatedText = providersBackstage.translate(spec.text);\n var icon = spec.icon ? spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }) : Optional.none();\n var components = icon.isSome() ? componentRenderPipeline([icon]) : [];\n var innerHtml = icon.isSome() ? {} : {\n innerHtml: translatedText\n };\n var classes = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], !spec.primary && !spec.borderless ? ['tox-button', 'tox-button--secondary'] : ['tox-button'], true), icon.isSome() ? ['tox-button--icon'] : [], true), spec.borderless ? ['tox-button--naked'] : [], true), extraClasses, true);\n var dom = __assign(__assign({\n tag: 'button',\n classes: classes\n }, innerHtml), {\n attributes: {\n title: translatedText\n }\n });\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n var renderButton = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n var getAction = function (name, buttonType) {\n return function (comp) {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name: name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n console.error('Unknown button type: ', buttonType);\n }\n };\n };\n var isMenuFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'menu';\n };\n var isNormalFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n };\n var renderFooterButton = function (spec, buttonType, backstage) {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n var getButton = function () {\n return memButton_1;\n };\n var menuButtonSpec = spec;\n var fixedSpec = __assign(__assign({}, spec), {\n onSetup: function (api) {\n api.setDisabled(spec.disabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n });\n var memButton_1 = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none()));\n return memButton_1.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n var action = getAction(spec.name, buttonType);\n var buttonSpec = __assign(__assign({}, spec), {\n borderless: false\n });\n return renderButton(buttonSpec, action, backstage.shared.providers, []);\n } else {\n console.error('Unknown footer button type: ', buttonType);\n }\n };\n var renderDialogButton = function (spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field(__assign({\n factory: Button\n }, renderButtonSpec(spec, Optional.some(action), providersBackstage, [RepresentingConfigs.memory(''), ComposingConfigs.self()]))));\n };\n var schema$h = constant$1([defaulted('field1Name', 'field1'), defaulted('field2Name', 'field2'), onStrictHandler('onLockedChange'), markers$1(['lockClass']), defaulted('locked', false), SketchBehaviours.field('coupledFieldBehaviours', [Composing, Representing])]);\n var getField = function (comp, detail, partName) {\n return getPart(comp, detail, partName).bind(Composing.getCurrent);\n };\n var coupledPart = function (selfName, otherName) {\n return required({\n factory: FormField,\n name: selfName,\n overrides: function (detail) {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run$1(input(), function (me) {\n getField(me, detail, otherName).each(function (other) {\n getPart(me, detail, 'lock').each(function (lock) {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n };\n var parts$c = constant$1([coupledPart('field1', 'field2'), coupledPart('field2', 'field1'), required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'lock',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: {\n mode: 'pressed'\n }\n })])\n };\n }\n })]);\n var factory$f = function (detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [Composing.config({\n find: Optional.some\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var _a;\n var parts = getPartsOrDie(comp, detail, ['field1', 'field2']);\n return _a = {}, _a[detail.field1Name] = Representing.getValue(parts.field1()), _a[detail.field2Name] = Representing.getValue(parts.field2()), _a;\n },\n setValue: function (comp, value) {\n var parts = getPartsOrDie(comp, detail, ['field1', 'field2']);\n if (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasNonNullableKey(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })]),\n apis: {\n getField1: function (component) {\n return getPart(component, detail, 'field1');\n },\n getField2: function (component) {\n return getPart(component, detail, 'field2');\n },\n getLock: function (component) {\n return getPart(component, detail, 'lock');\n }\n }\n };\n };\n var FormCoupledInputs = composite({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$f,\n apis: {\n getField1: function (apis, component) {\n return apis.getField1(component);\n },\n getField2: function (apis, component) {\n return apis.getField2(component);\n },\n getLock: function (apis, component) {\n return apis.getLock(component);\n }\n }\n });\n var formatSize = function (size) {\n var unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n var maxDecimal = function (unit) {\n return unit in unitDec ? unitDec[unit] : 1;\n };\n var numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n var parseSize = function (sizeText) {\n var numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n var match = numPattern.exec(sizeText);\n if (match !== null) {\n var value = parseFloat(match[1]);\n var unit = match[2];\n return Result.value({\n value: value,\n unit: unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n var convertUnit = function (size, unit) {\n var inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n var supported = function (u) {\n return has$2(inInch, u);\n };\n if (size.unit === unit) {\n return Optional.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Optional.some(size.value);\n } else {\n return Optional.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Optional.none();\n }\n };\n var noSizeConversion = function (_input) {\n return Optional.none();\n };\n var ratioSizeConversion = function (scale, unit) {\n return function (size) {\n return convertUnit(size, unit).map(function (value) {\n return {\n value: value * scale,\n unit: unit\n };\n });\n };\n };\n var makeRatioConverter = function (currentFieldText, otherFieldText) {\n var cValue = parseSize(currentFieldText).toOptional();\n var oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, function (cSize, oSize) {\n return convertUnit(cSize, oSize.unit).map(function (val) {\n return oSize.value / val;\n }).map(function (r) {\n return ratioSizeConversion(r, oSize.unit);\n }).getOr(noSizeConversion);\n }).getOr(noSizeConversion);\n };\n var renderSizeInput = function (spec, providersBackstage) {\n var converter = noSizeConversion;\n var ratioEvent = generate$6('ratio-event');\n var makeIcon = function (iconName) {\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-lock-icon__' + iconName]\n }, providersBackstage.icons);\n };\n var pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: ['tox-lock', 'tox-button', 'tox-button--naked', 'tox-button--icon'],\n attributes: {\n title: providersBackstage.translate(spec.label.getOr('Constrain proportions'))\n }\n },\n components: [makeIcon('lock'), makeIcon('unlock')],\n buttonBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Tabstopping.config({})])\n });\n var formGroup = function (components) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: components\n };\n };\n var getFieldPart = function (isField1) {\n return FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Tabstopping.config({}), config('size-input-events', [run$1(focusin(), function (component, _simulatedEvent) {\n emitWith(component, ratioEvent, {\n isField1: isField1\n });\n }), run$1(change(), function (component, _simulatedEvent) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])]),\n selectOnFocus: false\n });\n };\n var getLabel = function (label) {\n return {\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n };\n };\n var widthField = FormCoupledInputs.parts.field1(formGroup([FormField.parts.label(getLabel('Width')), getFieldPart(true)]));\n var heightField = FormCoupledInputs.parts.field2(formGroup([FormField.parts.label(getLabel('Height')), getFieldPart(false)]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [widthField, heightField, formGroup([getLabel(' '), pLock])]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: {\n lockClass: 'tox-locked'\n },\n onLockedChange: function (current, other, _lock) {\n parseSize(Representing.getValue(current)).each(function (size) {\n converter(size).each(function (newSize) {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }), receivingConfig(), config('size-input-events2', [run$1(ratioEvent, function (component, simulatedEvent) {\n var isField1 = simulatedEvent.event.isField1;\n var optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n var optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n var value1 = optCurrent.map(Representing.getValue).getOr('');\n var value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])])\n });\n };\n var undo = constant$1(generate$6('undo'));\n var redo = constant$1(generate$6('redo'));\n var zoom = constant$1(generate$6('zoom'));\n var back = constant$1(generate$6('back'));\n var apply = constant$1(generate$6('apply'));\n var swap = constant$1(generate$6('swap'));\n var transform$1 = constant$1(generate$6('transform'));\n var tempTransform = constant$1(generate$6('temp-transform'));\n var transformApply = constant$1(generate$6('transform-apply'));\n var internal = {\n undo: undo,\n redo: redo,\n zoom: zoom,\n back: back,\n apply: apply,\n swap: swap,\n transform: transform$1,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant$1('save-state');\n var disable = constant$1('disable');\n var enable = constant$1('enable');\n var external = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable,\n enable: enable\n };\n var renderEditPanel = function (imagePanel, providersBackstage) {\n var createButton = function (text, action, disabled, primary) {\n return record(renderButton({\n name: text,\n text: text,\n disabled: disabled,\n primary: primary,\n icon: Optional.none(),\n borderless: false\n }, action, providersBackstage));\n };\n var createIconButton = function (icon, tooltip, action, disabled) {\n return record(renderIconButton({\n name: icon,\n icon: Optional.some(icon),\n tooltip: Optional.some(tooltip),\n disabled: disabled,\n primary: false,\n borderless: false\n }, action, providersBackstage));\n };\n var disableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.disable(component);\n }\n });\n };\n var enableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.enable(component);\n }\n });\n };\n var panelDom = {\n tag: 'div',\n classes: ['tox-image-tools__toolbar', 'tox-image-tools-edit-panel']\n };\n var noop$1 = noop;\n var emit$1 = function (comp, event, data) {\n emitWith(comp, event, data);\n };\n var emitDisable = function (component) {\n return emit(component, external.disable());\n };\n var emitEnable = function (component) {\n return emit(component, external.enable());\n };\n var emitTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transform(), {\n transform: transform\n });\n emitEnable(comp);\n };\n var emitTempTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.tempTransform(), {\n transform: transform\n });\n emitEnable(comp);\n };\n var getBackSwap = function (anyInSystem) {\n return function () {\n memContainer.getOpt(anyInSystem).each(function (container) {\n Replacing.set(container, [ButtonPanel]);\n });\n };\n };\n var emitTransformApply = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transformApply(), {\n transform: transform,\n swap: getBackSwap(comp)\n });\n emitEnable(comp);\n };\n var createBackButton = function () {\n return createButton('Back', function (button) {\n return emit$1(button, internal.back(), {\n swap: getBackSwap(button)\n });\n }, false, false);\n };\n var createSpacer = function () {\n return record({\n dom: {\n tag: 'div',\n classes: ['tox-spacer']\n },\n behaviours: derive$1([Disabling.config({})])\n });\n };\n var createApplyButton = function () {\n return createButton('Apply', function (button) {\n return emit$1(button, internal.apply(), {\n swap: getBackSwap(button)\n });\n }, true, true);\n };\n var makeCropTransform = function () {\n return function (ir) {\n var rect = imagePanel.getRect();\n return crop(ir, rect.x, rect.y, rect.w, rect.h);\n };\n };\n var cropPanelComponents = [createBackButton(), createSpacer(), createButton('Apply', function (button) {\n var transform = makeCropTransform();\n emitTransformApply(button, transform);\n imagePanel.hideCrop();\n }, false, true)];\n var CropPanel = Container.sketch({\n dom: panelDom,\n components: cropPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-crop-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(cropPanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(cropPanelComponents, comp);\n })])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: Optional.none(),\n constrain: true,\n disabled: false\n }, providersBackstage));\n var makeResizeTransform = function (width, height) {\n return function (ir) {\n return resize$1(ir, width, height);\n };\n };\n var resizePanelComponents = [createBackButton(), createSpacer(), memSize, createSpacer(), createButton('Apply', function (button) {\n memSize.getOpt(button).each(function (sizeInput) {\n var value = Representing.getValue(sizeInput);\n var width = parseInt(value.width, 10);\n var height = parseInt(value.height, 10);\n var transform = makeResizeTransform(width, height);\n emitTransformApply(button, transform);\n });\n }, false, true)];\n var ResizePanel = Container.sketch({\n dom: panelDom,\n components: resizePanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-resize-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(resizePanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(resizePanelComponents, comp);\n })])])\n });\n var makeValueTransform = function (transform, value) {\n return function (ir) {\n return transform(ir, value);\n };\n };\n var horizontalFlip = makeValueTransform(flip, 'h');\n var verticalFlip = makeValueTransform(flip, 'v');\n var counterclockwiseRotate = makeValueTransform(rotate, -90);\n var clockwiseRotate = makeValueTransform(rotate, 90);\n var flipRotateOnAction = function (comp, operation) {\n emitTempTransform(comp, operation);\n };\n var flipRotateComponents = [createBackButton(), createSpacer(), createIconButton('flip-horizontally', 'Flip horizontally', function (button) {\n flipRotateOnAction(button, horizontalFlip);\n }, false), createIconButton('flip-vertically', 'Flip vertically', function (button) {\n flipRotateOnAction(button, verticalFlip);\n }, false), createIconButton('rotate-left', 'Rotate counterclockwise', function (button) {\n flipRotateOnAction(button, counterclockwiseRotate);\n }, false), createIconButton('rotate-right', 'Rotate clockwise', function (button) {\n flipRotateOnAction(button, clockwiseRotate);\n }, false), createSpacer(), createApplyButton()];\n var FlipRotatePanel = Container.sketch({\n dom: panelDom,\n components: flipRotateComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-fliprotate-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(flipRotateComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(flipRotateComponents, comp);\n })])])\n });\n var makeSlider = function (label, onChoose, min, value, max) {\n var labelPart = Slider.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n var spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n return record(Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: {\n role: 'presentation'\n }\n },\n model: {\n mode: 'x',\n minX: min,\n maxX: max,\n getInitialValue: constant$1({\n x: value\n })\n },\n components: [labelPart, spectrum, thumb],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChoose: onChoose\n }));\n };\n var makeVariableSlider = function (label, transform, min, value, max) {\n var onChoose = function (slider, _thumb, value) {\n var valTransform = makeValueTransform(transform, value.x / 100);\n emitTransform(slider, valTransform);\n };\n return makeSlider(label, onChoose, min, value, max);\n };\n var variableFilterPanelComponents = function (label, transform, min, value, max) {\n return [createBackButton(), makeVariableSlider(label, transform, min, value, max), createApplyButton()];\n };\n var createVariableFilterPanel = function (label, transform, min, value, max) {\n var filterPanelComponents = variableFilterPanelComponents(label, transform, min, value, max);\n return Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-filter-panel-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(filterPanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(filterPanelComponents, comp);\n })])])\n });\n };\n var filterPanelComponents = [createBackButton(), createSpacer(), createApplyButton()];\n var FilterPanel = Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var BrightnessPanel = createVariableFilterPanel('Brightness', brightness, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', contrast, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', gamma, -100, 0, 100);\n var makeColorTransform = function (red, green, blue) {\n return function (ir) {\n return colorize(ir, red, green, blue);\n };\n };\n var makeColorSlider = function (label) {\n var onChoose = function (slider, _thumb, _value) {\n var redOpt = memRed.getOpt(slider);\n var blueOpt = memBlue.getOpt(slider);\n var greenOpt = memGreen.getOpt(slider);\n redOpt.each(function (red) {\n blueOpt.each(function (blue) {\n greenOpt.each(function (green) {\n var r = Representing.getValue(red).x / 100;\n var g = Representing.getValue(green).x / 100;\n var b = Representing.getValue(blue).x / 100;\n var transform = makeColorTransform(r, g, b);\n emitTransform(slider, transform);\n });\n });\n });\n };\n return makeSlider(label, onChoose, 0, 100, 200);\n };\n var memRed = makeColorSlider('R');\n var memGreen = makeColorSlider('G');\n var memBlue = makeColorSlider('B');\n var colorizePanelComponents = [createBackButton(), memRed, memGreen, memBlue, createApplyButton()];\n var ColorizePanel = Container.sketch({\n dom: panelDom,\n components: colorizePanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var getTransformPanelEvent = function (panel, transform, update) {\n return function (button) {\n var swap = function () {\n memContainer.getOpt(button).each(function (container) {\n Replacing.set(container, [panel]);\n update(container);\n });\n };\n emit$1(button, internal.swap(), {\n transform: transform,\n swap: swap\n });\n };\n };\n var cropPanelUpdate = function (_anyInSystem) {\n imagePanel.showCrop();\n };\n var resizePanelUpdate = function (anyInSystem) {\n memSize.getOpt(anyInSystem).each(function (sizeInput) {\n var measurements = imagePanel.getMeasurements();\n var width = measurements.width;\n var height = measurements.height;\n Representing.setValue(sizeInput, {\n width: width,\n height: height\n });\n });\n };\n var sharpenTransform = Optional.some(sharpen);\n var invertTransform = Optional.some(invert);\n var buttonPanelComponents = [createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, Optional.none(), cropPanelUpdate), false), createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, Optional.none(), resizePanelUpdate), false), createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, Optional.none(), noop$1), false), createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, Optional.none(), noop$1), false), createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false), createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, Optional.none(), noop$1), false), createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, Optional.none(), noop$1), false), createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, Optional.none(), noop$1), false), createIconButton('invert', 'Invert', getTransformPanelEvent(FilterPanel, invertTransform, noop$1), false)];\n var ButtonPanel = Container.sketch({\n dom: panelDom,\n components: buttonPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var container = Container.sketch({\n dom: {\n tag: 'div'\n },\n components: [ButtonPanel],\n containerBehaviours: derive$1([Replacing.config({})])\n });\n var memContainer = record(container);\n var getApplyButton = function (anyInSystem) {\n return memContainer.getOpt(anyInSystem).map(function (container) {\n var panel = container.components()[0];\n return panel.components()[panel.components().length - 1];\n });\n };\n return {\n memContainer: memContainer,\n getApplyButton: getApplyButton\n };\n };\n var global$4 = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Observable');\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.VK');\n var getDocumentSize = function (doc) {\n var max = Math.max;\n var documentElement = doc.documentElement;\n var body = doc.body;\n var scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n var clientWidth = max(documentElement.clientWidth, body.clientWidth);\n var offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n var scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n var clientHeight = max(documentElement.clientHeight, body.clientHeight);\n var offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n return {\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n };\n };\n var isTouchEvent$1 = function (e) {\n return isNonNullable(e.changedTouches);\n };\n var updateWithTouchData = function (e) {\n if (isTouchEvent$1(e)) {\n var keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n for (var i = 0; i < keys.length; i++) {\n e[keys[i]] = e.changedTouches[0][keys[i]];\n }\n }\n };\n function DragHelper(id, settings) {\n var _a, _b, _c;\n var eventOverlay;\n var handleEvents = [];\n var overlayEvents = [];\n var doc = (_a = settings.document) !== null && _a !== void 0 ? _a : document;\n var root = (_b = settings.root) !== null && _b !== void 0 ? _b : doc;\n var sugarDoc = SugarElement.fromDom(doc);\n var downButton;\n var startX;\n var startY;\n var handleElement = SugarElement.fromDom(root.getElementById((_c = settings.handle) !== null && _c !== void 0 ? _c : id));\n var start = function (e) {\n var rawEvent = e.raw;\n var docSize = getDocumentSize(doc);\n updateWithTouchData(rawEvent);\n e.prevent();\n downButton = rawEvent.button;\n startX = rawEvent.screenX;\n startY = rawEvent.screenY;\n var cursor = get$c(handleElement, 'cursor');\n eventOverlay = SugarElement.fromTag('div', doc);\n setAll(eventOverlay, {\n 'position': 'absolute',\n 'top': '0',\n 'left': '0',\n 'width': docSize.width + 'px',\n 'height': docSize.height + 'px',\n 'z-index': 2147483647 + '',\n 'opacity': '0.0001',\n cursor: cursor\n });\n append$2(getBody(sugarDoc), eventOverlay);\n overlayEvents.push(bind(sugarDoc, 'mousemove', drag), bind(sugarDoc, 'touchmove', drag), bind(sugarDoc, 'mouseup', stop), bind(sugarDoc, 'touchend', stop));\n settings.start(rawEvent);\n };\n var drag = function (e) {\n var rawEvent = e.raw;\n updateWithTouchData(rawEvent);\n if (rawEvent.button !== downButton) {\n return stop(e);\n }\n rawEvent.deltaX = rawEvent.screenX - startX;\n rawEvent.deltaY = rawEvent.screenY - startY;\n e.prevent();\n settings.drag(rawEvent);\n };\n var stop = function (e) {\n updateWithTouchData(e.raw);\n each$1(overlayEvents, function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n remove$5(eventOverlay);\n if (settings.stop) {\n settings.stop(e.raw);\n }\n };\n var destroy = function () {\n each$1(overlayEvents.concat(handleEvents), function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n handleEvents = [];\n if (isNonNullable(eventOverlay)) {\n remove$5(eventOverlay);\n }\n };\n handleEvents.push(bind(handleElement, 'mousedown', start), bind(handleElement, 'touchstart', start));\n return {\n destroy: destroy\n };\n }\n var count = 0;\n var create$1 = function (currentRect, viewPortRect, clampRect, containerElm, action) {\n var dragHelpers;\n var events = [];\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n var container = SugarElement.fromDom(containerElm);\n var handles = [{\n name: 'move',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: 0,\n deltaH: 0,\n label: 'Crop Mask'\n }, {\n name: 'nw',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: -1,\n deltaH: -1,\n label: 'Top Left Crop Handle'\n }, {\n name: 'ne',\n xMul: 1,\n yMul: 0,\n deltaX: 0,\n deltaY: 1,\n deltaW: 1,\n deltaH: -1,\n label: 'Top Right Crop Handle'\n }, {\n name: 'sw',\n xMul: 0,\n yMul: 1,\n deltaX: 1,\n deltaY: 0,\n deltaW: -1,\n deltaH: 1,\n label: 'Bottom Left Crop Handle'\n }, {\n name: 'se',\n xMul: 1,\n yMul: 1,\n deltaX: 0,\n deltaY: 0,\n deltaW: 1,\n deltaH: 1,\n label: 'Bottom Right Crop Handle'\n }];\n var blockers = ['top', 'right', 'bottom', 'left'];\n var getAbsoluteRect = function (outerRect, relativeRect) {\n return {\n x: relativeRect.x + outerRect.x,\n y: relativeRect.y + outerRect.y,\n w: relativeRect.w,\n h: relativeRect.h\n };\n };\n var getRelativeRect = function (outerRect, innerRect) {\n return {\n x: innerRect.x - outerRect.x,\n y: innerRect.y - outerRect.y,\n w: innerRect.w,\n h: innerRect.h\n };\n };\n var getInnerRect = function () {\n return getRelativeRect(clampRect, currentRect);\n };\n var moveRect = function (handle, startRect, deltaX, deltaY) {\n var x = startRect.x + deltaX * handle.deltaX;\n var y = startRect.y + deltaY * handle.deltaY;\n var w = Math.max(20, startRect.w + deltaX * handle.deltaW);\n var h = Math.max(20, startRect.h + deltaY * handle.deltaH);\n var rect = currentRect = global$4.clamp({\n x: x,\n y: y,\n w: w,\n h: h\n }, clampRect, handle.name === 'move');\n rect = getRelativeRect(clampRect, rect);\n instance.fire('updateRect', {\n rect: rect\n });\n setInnerRect(rect);\n };\n var render = function () {\n var createDragHelper = function (handle) {\n var startRect;\n return DragHelper(id, {\n document: containerElm.ownerDocument,\n root: getRootNode(container).dom,\n handle: id + '-' + handle.name,\n start: function () {\n startRect = currentRect;\n },\n drag: function (e) {\n moveRect(handle, startRect, e.deltaX, e.deltaY);\n }\n });\n };\n var cropContainer = SugarElement.fromTag('div');\n setAll$1(cropContainer, {\n id: id,\n 'class': prefix + 'croprect-container',\n 'role': 'grid',\n 'aria-dropeffect': 'execute'\n });\n append$2(container, cropContainer);\n each$1(blockers, function (blocker) {\n descendant(container, '#' + id).each(function (blockerElm) {\n var cropBlocker = SugarElement.fromTag('div');\n setAll$1(cropBlocker, {\n 'id': id + '-' + blocker,\n 'class': prefix + 'croprect-block',\n 'data-mce-bogus': 'all'\n });\n set$7(cropBlocker, 'display', 'none');\n append$2(blockerElm, cropBlocker);\n });\n });\n each$1(handles, function (handle) {\n descendant(container, '#' + id).each(function (handleElm) {\n var cropHandle = SugarElement.fromTag('div');\n setAll$1(cropHandle, {\n 'id': id + '-' + handle.name,\n 'aria-label': handle.label,\n 'aria-grabbed': 'false',\n 'data-mce-bogus': 'all',\n 'role': 'gridcell',\n 'tabindex': '-1',\n 'title': handle.label\n });\n add$1(cropHandle, [prefix + 'croprect-handle', prefix + 'croprect-handle-' + handle.name]);\n set$7(cropHandle, 'display', 'none');\n append$2(handleElm, cropHandle);\n });\n });\n dragHelpers = map$2(handles, createDragHelper);\n repaint(currentRect);\n var handleFocus = function (e) {\n set$8(e.target, 'aria-grabbed', e.raw.type === 'focus' ? 'true' : 'false');\n };\n var handleKeydown = function (e) {\n var activeHandle;\n each$1(handles, function (handle) {\n if (get$d(e.target, 'id') === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n var moveAndBlock = function (evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n };\n switch (e.raw.keyCode) {\n case global$2.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n case global$2.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n case global$2.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n case global$2.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n case global$2.ENTER:\n case global$2.SPACEBAR:\n e.prevent();\n action();\n break;\n }\n };\n events.push(bind(container, 'focusin', handleFocus), bind(container, 'focusout', handleFocus), bind(container, 'keydown', handleKeydown));\n };\n var toggleVisibility = function (state) {\n var selectors = __spreadArray(__spreadArray([], map$2(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }), true), map$2(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n }), true).join(',');\n var elems = descendants(container, selectors);\n if (state) {\n each$1(elems, function (elm) {\n return remove$6(elm, 'display');\n });\n } else {\n each$1(elems, function (elm) {\n return set$7(elm, 'display', 'none');\n });\n }\n };\n var repaint = function (rect) {\n var updateElementRect = function (name, newRect) {\n descendant(container, '#' + id + '-' + name).each(function (elm) {\n setAll(elm, {\n left: newRect.x + 'px',\n top: newRect.y + 'px',\n width: Math.max(0, newRect.w) + 'px',\n height: Math.max(0, newRect.h) + 'px'\n });\n });\n };\n each$1(handles, function (handle) {\n descendant(container, '#' + id + '-' + handle.name).each(function (elm) {\n setAll(elm, {\n left: rect.w * handle.xMul + rect.x + 'px',\n top: rect.h * handle.yMul + rect.y + 'px'\n });\n });\n });\n updateElementRect('top', {\n x: viewPortRect.x,\n y: viewPortRect.y,\n w: viewPortRect.w,\n h: rect.y - viewPortRect.y\n });\n updateElementRect('right', {\n x: rect.x + rect.w,\n y: rect.y,\n w: viewPortRect.w - rect.x - rect.w + viewPortRect.x,\n h: rect.h\n });\n updateElementRect('bottom', {\n x: viewPortRect.x,\n y: rect.y + rect.h,\n w: viewPortRect.w,\n h: viewPortRect.h - rect.y - rect.h + viewPortRect.y\n });\n updateElementRect('left', {\n x: viewPortRect.x,\n y: rect.y,\n w: rect.x - viewPortRect.x,\n h: rect.h\n });\n updateElementRect('move', rect);\n };\n var setRect = function (rect) {\n currentRect = rect;\n repaint(currentRect);\n };\n var setViewPortRect = function (rect) {\n viewPortRect = rect;\n repaint(currentRect);\n };\n var setInnerRect = function (rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n };\n var setClampRect = function (rect) {\n clampRect = rect;\n repaint(currentRect);\n };\n var destroy = function () {\n each$1(dragHelpers, function (helper) {\n return helper.destroy();\n });\n dragHelpers = [];\n each$1(events, function (e) {\n return e.unbind();\n });\n events = [];\n };\n render();\n var instance = __assign(__assign({}, global$3), {\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n });\n return instance;\n };\n var CropRect = {\n create: create$1\n };\n var loadImage = function (image) {\n return new global$c(function (resolve) {\n var loaded = function () {\n image.removeEventListener('load', loaded);\n resolve(image);\n };\n if (image.complete) {\n resolve(image);\n } else {\n image.addEventListener('load', loaded);\n }\n });\n };\n var renderImagePanel = function (initialUrl) {\n var memBg = record({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image-bg'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var zoomState = Cell(1);\n var cropRect = api$1();\n var rectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var viewRectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var repaintImg = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var zoom = zoomState.get();\n var panelW = get$a(panel.element);\n var panelH = get$b(panel.element);\n var width = img.dom.naturalWidth * zoom;\n var height = img.dom.naturalHeight * zoom;\n var left = Math.max(0, panelW / 2 - width / 2);\n var top = Math.max(0, panelH / 2 - height / 2);\n var css = {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px',\n position: 'absolute'\n };\n setAll(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll(bg.element, css);\n });\n cropRect.run(function (cRect) {\n var rect = rectState.get();\n cRect.setRect({\n x: rect.x * zoom + left,\n y: rect.y * zoom + top,\n w: rect.w * zoom,\n h: rect.h * zoom\n });\n cRect.setClampRect({\n x: left,\n y: top,\n w: width,\n h: height\n });\n cRect.setViewPortRect({\n x: 0,\n y: 0,\n w: panelW,\n h: panelH\n });\n });\n });\n };\n var zoomFit = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var panelW = get$a(panel.element);\n var panelH = get$b(panel.element);\n var width = img.dom.naturalWidth;\n var height = img.dom.naturalHeight;\n var zoom = Math.min(panelW / width, panelH / height);\n if (zoom >= 1) {\n zoomState.set(1);\n } else {\n zoomState.set(zoom);\n }\n });\n };\n var updateSrc = function (anyInSystem, url) {\n var img = SugarElement.fromTag('img');\n set$8(img, 'src', url);\n return loadImage(img.dom).then(function () {\n if (anyInSystem.getSystem().isConnected()) {\n memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external$2({\n element: img\n });\n Replacing.replaceAt(panel, 1, Optional.some(aImg));\n var lastViewRect = viewRectState.get();\n var viewRect = {\n x: 0,\n y: 0,\n w: img.dom.naturalWidth,\n h: img.dom.naturalHeight\n };\n viewRectState.set(viewRect);\n var rect = global$4.inflate(viewRect, -20, -20);\n rectState.set(rect);\n if (lastViewRect.w !== viewRect.w || lastViewRect.h !== viewRect.h) {\n zoomFit(panel, img);\n }\n repaintImg(panel, img);\n });\n }\n });\n };\n var zoom = function (anyInSystem, direction) {\n var currentZoom = zoomState.get();\n var newZoom = direction > 0 ? Math.min(2, currentZoom + 0.1) : Math.max(0.1, currentZoom - 0.1);\n zoomState.set(newZoom);\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var img = panel.components()[1].element;\n repaintImg(panel, img);\n });\n };\n var showCrop = function () {\n cropRect.run(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n var hideCrop = function () {\n cropRect.run(function (cRect) {\n cRect.toggleVisibility(false);\n });\n };\n var getRect = function () {\n return rectState.get();\n };\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image']\n },\n components: [memBg.asSpec(), {\n dom: {\n tag: 'img',\n attributes: {\n src: initialUrl\n }\n }\n }, {\n dom: {\n tag: 'div'\n },\n behaviours: derive$1([config('image-panel-crop-events', [runOnAttached(function (comp) {\n memContainer.getOpt(comp).each(function (container) {\n var el = container.element.dom;\n var cRect = CropRect.create({\n x: 10,\n y: 10,\n w: 100,\n h: 100\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, el, noop);\n cRect.toggleVisibility(false);\n cRect.on('updateRect', function (e) {\n var rect = e.rect;\n var zoom = zoomState.get();\n var newRect = {\n x: Math.round(rect.x / zoom),\n y: Math.round(rect.y / zoom),\n w: Math.round(rect.w / zoom),\n h: Math.round(rect.h / zoom)\n };\n rectState.set(newRect);\n });\n cropRect.set(cRect);\n });\n }), runOnDetached(function () {\n cropRect.clear();\n })])])\n }],\n containerBehaviours: derive$1([Replacing.config({}), config('image-panel-events', [runOnAttached(function (comp) {\n updateSrc(comp, initialUrl);\n })])])\n });\n var memContainer = record(container);\n var getMeasurements = function () {\n var viewRect = viewRectState.get();\n return {\n width: viewRect.w,\n height: viewRect.h\n };\n };\n return {\n memContainer: memContainer,\n updateSrc: updateSrc,\n zoom: zoom,\n showCrop: showCrop,\n hideCrop: hideCrop,\n getRect: getRect,\n getMeasurements: getMeasurements\n };\n };\n var createButton = function (innerHtml, icon, disabled, action, providersBackstage) {\n return renderIconButton({\n name: innerHtml,\n icon: Optional.some(icon),\n disabled: disabled,\n tooltip: Optional.some(innerHtml),\n primary: false,\n borderless: false\n }, action, providersBackstage);\n };\n var setButtonEnabled = function (button, enabled) {\n if (enabled) {\n Disabling.enable(button);\n } else {\n Disabling.disable(button);\n }\n };\n var renderSideBar = function (providersBackstage) {\n var updateButtonUndoStates = function (anyInSystem, undoEnabled, redoEnabled) {\n memUndo.getOpt(anyInSystem).each(function (undo) {\n setButtonEnabled(undo, undoEnabled);\n });\n memRedo.getOpt(anyInSystem).each(function (redo) {\n setButtonEnabled(redo, redoEnabled);\n });\n };\n var memUndo = record(createButton('Undo', 'undo', true, function (button) {\n emitWith(button, internal.undo(), {\n direction: 1\n });\n }, providersBackstage));\n var memRedo = record(createButton('Redo', 'redo', true, function (button) {\n emitWith(button, internal.redo(), {\n direction: 1\n });\n }, providersBackstage));\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__toolbar', 'tox-image-tools__sidebar']\n },\n components: [memUndo.asSpec(), memRedo.asSpec(), createButton('Zoom in', 'zoom-in', false, function (button) {\n emitWith(button, internal.zoom(), {\n direction: 1\n });\n }, providersBackstage), createButton('Zoom out', 'zoom-out', false, function (button) {\n emitWith(button, internal.zoom(), {\n direction: -1\n });\n }, providersBackstage)]\n });\n return {\n container: container,\n updateButtonUndoStates: updateButtonUndoStates\n };\n };\n function UndoStack() {\n var data = [];\n var index = -1;\n var add = function (state) {\n var removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n };\n var undo = function () {\n if (canUndo()) {\n return data[--index];\n }\n };\n var redo = function () {\n if (canRedo()) {\n return data[++index];\n }\n };\n var canUndo = function () {\n return index > 0;\n };\n var canRedo = function () {\n return index !== -1 && index < data.length - 1;\n };\n return {\n data: data,\n add: add,\n undo: undo,\n redo: redo,\n canUndo: canUndo,\n canRedo: canRedo\n };\n }\n var makeState = function (initialState) {\n var blobState = Cell(initialState);\n var tempState = value$1();\n var undoStack = UndoStack();\n undoStack.add(initialState);\n var getBlobState = function () {\n return blobState.get();\n };\n var setBlobState = function (state) {\n blobState.set(state);\n };\n var getTempState = function () {\n return tempState.get().getOrThunk(blobState.get);\n };\n var updateTempState = function (blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(newTempState);\n return newTempState.url;\n };\n var createState = function (blob) {\n return {\n blob: blob,\n url: URL.createObjectURL(blob)\n };\n };\n var destroyState = function (state) {\n URL.revokeObjectURL(state.url);\n };\n var destroyStates = function (states) {\n global$5.each(states, destroyState);\n };\n var destroyTempState = function () {\n tempState.on(destroyState);\n tempState.clear();\n };\n var addBlobState = function (blob) {\n var newState = createState(blob);\n setBlobState(newState);\n var removed = undoStack.add(newState).removed;\n destroyStates(removed);\n return newState.url;\n };\n var addTempState = function (blob) {\n var newState = createState(blob);\n tempState.set(newState);\n return newState.url;\n };\n var applyTempState = function (postApply) {\n return tempState.get().fold(noop, function (temp) {\n addBlobState(temp.blob);\n postApply();\n });\n };\n var undo = function () {\n var currentState = undoStack.undo();\n setBlobState(currentState);\n return currentState.url;\n };\n var redo = function () {\n var currentState = undoStack.redo();\n setBlobState(currentState);\n return currentState.url;\n };\n var getHistoryStates = function () {\n var undoEnabled = undoStack.canUndo();\n var redoEnabled = undoStack.canRedo();\n return {\n undoEnabled: undoEnabled,\n redoEnabled: redoEnabled\n };\n };\n return {\n getBlobState: getBlobState,\n setBlobState: setBlobState,\n addBlobState: addBlobState,\n getTempState: getTempState,\n updateTempState: updateTempState,\n addTempState: addTempState,\n applyTempState: applyTempState,\n destroyTempState: destroyTempState,\n undo: undo,\n redo: redo,\n getHistoryStates: getHistoryStates\n };\n };\n var renderImageTools = function (detail, providersBackstage) {\n var state = makeState(detail.currentState);\n var zoom = function (anyInSystem, simulatedEvent) {\n var direction = simulatedEvent.event.direction;\n imagePanel.zoom(anyInSystem, direction);\n };\n var updateButtonUndoStates = function (anyInSystem) {\n var historyStates = state.getHistoryStates();\n sideBar.updateButtonUndoStates(anyInSystem, historyStates.undoEnabled, historyStates.redoEnabled);\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.saveState(),\n value: historyStates.undoEnabled\n });\n };\n var disableUndoRedo = function (anyInSystem) {\n sideBar.updateButtonUndoStates(anyInSystem, false, false);\n };\n var undo = function (anyInSystem, _simulatedEvent) {\n var url = state.undo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var redo = function (anyInSystem, _simulatedEvent) {\n var url = state.redo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var imageResultToBlob = function (ir) {\n return ir.toBlob();\n };\n var block = function (anyInSystem) {\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.disable(),\n value: {}\n });\n };\n var unblock = function (anyInSystem) {\n editPanel.getApplyButton(anyInSystem).each(function (applyButton) {\n Disabling.enable(applyButton);\n });\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.enable(),\n value: {}\n });\n };\n var updateSrc = function (anyInSystem, src) {\n block(anyInSystem);\n return imagePanel.updateSrc(anyInSystem, src);\n };\n var blobManipulate = function (anyInSystem, blob, filter, action, swap) {\n block(anyInSystem);\n blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url);\n }).then(function () {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n }).catch(function (err) {\n console.log(err);\n if (anyInSystem.getSystem().isConnected()) {\n unblock(anyInSystem);\n }\n });\n };\n var manipulate = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n return state.updateTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var tempManipulate = function (anyInSystem, filter) {\n var blob = state.getTempState().blob;\n var action = function (blob) {\n return state.addTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, noop);\n };\n var manipulateApply = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n var url = state.addBlobState(blob);\n destroyTempState(anyInSystem);\n return url;\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var apply = function (anyInSystem, simulatedEvent) {\n var postApply = function () {\n destroyTempState(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n };\n state.applyTempState(postApply);\n };\n var destroyTempState = function (anyInSystem) {\n var currentUrl = state.getBlobState().url;\n state.destroyTempState();\n updateButtonUndoStates(anyInSystem);\n return currentUrl;\n };\n var cancel = function (anyInSystem) {\n var currentUrl = destroyTempState(anyInSystem);\n updateSrc(anyInSystem, currentUrl).then(function (_oImg) {\n unblock(anyInSystem);\n });\n };\n var back = function (anyInSystem, simulatedEvent) {\n cancel(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n imagePanel.hideCrop();\n };\n var transform = function (anyInSystem, simulatedEvent) {\n return manipulate(anyInSystem, simulatedEvent.event.transform, noop);\n };\n var tempTransform = function (anyInSystem, simulatedEvent) {\n return tempManipulate(anyInSystem, simulatedEvent.event.transform);\n };\n var transformApply = function (anyInSystem, simulatedEvent) {\n return manipulateApply(anyInSystem, simulatedEvent.event.transform, simulatedEvent.event.swap);\n };\n var imagePanel = renderImagePanel(detail.currentState.url);\n var sideBar = renderSideBar(providersBackstage);\n var editPanel = renderEditPanel(imagePanel, providersBackstage);\n var swap = function (anyInSystem, simulatedEvent) {\n disableUndoRedo(anyInSystem);\n var transform = simulatedEvent.event.transform;\n var swap = simulatedEvent.event.swap;\n transform.fold(function () {\n swap();\n }, function (transform) {\n manipulate(anyInSystem, transform, swap);\n });\n };\n return {\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n }\n },\n components: [editPanel.memContainer.asSpec(), imagePanel.memContainer.asSpec(), sideBar.container],\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return state.getBlobState();\n }\n }\n }), config('image-tools-events', [run$1(internal.undo(), undo), run$1(internal.redo(), redo), run$1(internal.zoom(), zoom), run$1(internal.back(), back), run$1(internal.apply(), apply), run$1(internal.transform(), transform), run$1(internal.tempTransform(), tempTransform), run$1(internal.transformApply(), transformApply), run$1(internal.swap(), swap)]), ComposingConfigs.self()])\n };\n };\n var renderLabel = function (spec, backstageShared) {\n var label = {\n dom: {\n tag: 'label',\n innerHtml: backstageShared.providers.translate(spec.label),\n classes: ['tox-label']\n }\n };\n var comps = map$2(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [label].concat(comps),\n behaviours: derive$1([ComposingConfigs.self(), Replacing.config({}), RepresentingConfigs.domHtml(Optional.none()), Keying.config({\n mode: 'acyclic'\n })])\n };\n };\n var isSingleListItem = function (item) {\n return !has$2(item, 'items');\n };\n var dataAttribute = 'data-value';\n var fetchItems = function (dropdownComp, name, items, selectedValue) {\n return map$2(items, function (item) {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: function () {\n return fetchItems(dropdownComp, name, item.items, selectedValue);\n }\n };\n } else {\n return {\n type: 'togglemenuitem',\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: function () {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, {\n name: name\n });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n };\n var findItemByValue = function (items, value) {\n return findMap(items, function (item) {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n };\n var renderListBox = function (spec, backstage) {\n var providersBackstage = backstage.shared.providers;\n var initialItem = head(spec.items).filter(isSingleListItem);\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: function (sketchSpec) {\n return renderCommonDropdown({\n uid: sketchSpec.uid,\n text: initialItem.map(function (item) {\n return item.text;\n }),\n icon: Optional.none(),\n tooltip: spec.label,\n role: Optional.none(),\n fetch: function (comp, callback) {\n var items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp));\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n },\n onSetup: constant$1(noop),\n getApi: constant$1({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({}), Representing.config({\n store: {\n mode: 'manual',\n initialValue: initialItem.map(function (item) {\n return item.value;\n }).getOr(''),\n getValue: function (comp) {\n return get$d(comp.element, dataAttribute);\n },\n setValue: function (comp, data) {\n findItemByValue(spec.items, data).each(function (item) {\n set$8(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, {\n text: item.text\n });\n });\n }\n }\n })]\n }, 'tox-listbox', backstage.shared);\n }\n }\n });\n var listBoxWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-listboxfield']\n },\n components: [pField]\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([pLabel.toArray(), [listBoxWrap]]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: constant$1(spec.disabled),\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n var renderPanel = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n };\n };\n var factory$e = function (detail, _spec) {\n var options = map$2(detail.options, function (option) {\n return {\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n };\n });\n var initialValues = detail.data.map(function (v) {\n return wrap$1('initialValue', v);\n }).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [Focusing.config({}), Representing.config({\n store: __assign({\n mode: 'manual',\n getValue: function (select) {\n return get$5(select.element);\n },\n setValue: function (select, newValue) {\n var found = find$5(detail.options, function (opt) {\n return opt.value === newValue;\n });\n if (found.isSome()) {\n set$4(select.element, newValue);\n }\n }\n }, initialValues)\n })])\n };\n };\n var HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [required$1('options'), field('selectBehaviours', [Focusing, Representing]), defaulted('selectClasses', []), defaulted('selectAttributes', {}), option('data')],\n factory: factory$e\n });\n var renderSelectBox = function (spec, providersBackstage) {\n var translatedOptions = map$2(spec.items, function (item) {\n return {\n text: providersBackstage.translate(item.text),\n value: item.value\n };\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n selectAttributes: {\n size: spec.size\n },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), Tabstopping.config({}), config('selectbox-change', [run$1(change(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])])\n });\n var chevron = spec.size > 1 ? Optional.none() : Optional.some(render$3('chevron-down', {\n tag: 'div',\n classes: ['tox-selectfield__icon-js']\n }, providersBackstage.icons));\n var selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([[pField], chevron.toArray()])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([pLabel.toArray(), [selectWrap]]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()])\n });\n };\n var renderTable = function (spec, providersBackstage) {\n var renderTh = function (text) {\n return {\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderHeader = function (header) {\n return {\n dom: {\n tag: 'thead'\n },\n components: [{\n dom: {\n tag: 'tr'\n },\n components: map$2(header, renderTh)\n }]\n };\n };\n var renderTd = function (text) {\n return {\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderTr = function (row) {\n return {\n dom: {\n tag: 'tr'\n },\n components: map$2(row, renderTd)\n };\n };\n var renderRows = function (rows) {\n return {\n dom: {\n tag: 'tbody'\n },\n components: map$2(rows, renderTr)\n };\n };\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [renderHeader(spec.header), renderRows(spec.cells)],\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n };\n };\n var renderTextField = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var baseInputBehaviours = [Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: function (comp) {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }), config('textfield-change', [run$1(input(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n }), run$1(postPaste(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })]), Tabstopping.config({})];\n var validatingBehaviours = spec.validation.map(function (vl) {\n return Invalidating.config({\n getRoot: function (input) {\n return parent(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: function (input) {\n var v = Representing.getValue(input);\n var result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n });\n }).toArray();\n var placeholder = spec.placeholder.fold(constant$1({}), function (p) {\n return {\n placeholder: providersBackstage.translate(p)\n };\n });\n var inputMode = spec.inputMode.fold(constant$1({}), function (mode) {\n return {\n inputmode: mode\n };\n });\n var inputAttributes = __assign(__assign({}, placeholder), inputMode);\n var pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n inputAttributes: inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([baseInputBehaviours, validatingBehaviours])),\n selectOnFocus: false,\n factory: Input\n });\n var extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n var extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n var extraBehaviours = [Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n var renderInput = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: spec.disabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n var renderTextarea = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Optional.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: spec.disabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n var events$6 = function (streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive$2([run$1(streamConfig.event, processor), runOnDetached(function () {\n return streamState.cancel();\n })].concat(streamConfig.cancelEvent.map(function (e) {\n return [run$1(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6\n });\n var throttle = function (_config) {\n var state = Cell(null);\n var readState = function () {\n return {\n timer: state.get() !== null ? 'set' : 'unset'\n };\n };\n var setTimer = function (t) {\n state.set(t);\n };\n var cancel = function () {\n var t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$8({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n var init$9 = function (spec) {\n return spec.stream.streams.state(spec);\n };\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$9\n });\n var setup$c = function (streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return function (component, simulatedEvent) {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [requiredOf('stream', choose$1('mode', {\n throttle: [required$1('delay'), defaulted('stopEvent', true), output$1('streams', {\n setup: setup$c,\n state: throttle\n })]\n })), defaulted('event', 'input'), option('cancelEvent'), onStrictHandler('onStream')];\n var Streaming = create$8({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n var setValueFromItem = function (model, input, item) {\n var itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n var setSelectionOn = function (input, f) {\n var el = input.element;\n var value = get$5(el);\n var node = el.dom;\n if (get$d(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n var setCursorAtEnd = function (input) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(value.length, value.length);\n });\n };\n var setSelectionToEnd = function (input, startOffset) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(startOffset, value.length);\n });\n };\n var attemptSelectOver = function (model, input, item) {\n if (!model.selectsOver) {\n return Optional.none();\n } else {\n var currentValue = Representing.getValue(input);\n var inputDisplay_1 = model.getDisplayText(currentValue);\n var itemValue = Representing.getValue(item);\n var itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay_1) === 0 ? Optional.some(function () {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay_1.length);\n }) : Optional.none();\n }\n };\n var itemExecute = constant$1('alloy.typeahead.itemexecute');\n var make$3 = function (detail, components, spec, externals) {\n var navigateList = function (comp, simulatedEvent, highlighter) {\n detail.previewing.set(false);\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(function (menu) {\n Highlighting.getHighlighted(menu).fold(function () {\n highlighter(menu);\n }, function () {\n dispatchEvent(sandbox, menu.element, 'keydown', simulatedEvent);\n });\n });\n } else {\n var onOpenSync = function (sandbox) {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n var focusBehaviours$1 = focusBehaviours(detail);\n var mapFetch = function (comp) {\n return function (tdata) {\n return tdata.map(function (data) {\n var menus = values(data.menus);\n var items = bind$3(menus, function (menu) {\n return filter$2(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map$2(items, function (item) {\n return item.data;\n }));\n return data;\n });\n };\n };\n var behaviours = [Focusing.config({}), Representing.config({\n onSetValue: detail.onSetValue,\n store: __assign({\n mode: 'dataset',\n getDataKey: function (comp) {\n return get$5(comp.element);\n },\n getFallbackEntry: function (itemString) {\n return {\n value: itemString,\n meta: {}\n };\n },\n setValue: function (comp, data) {\n set$4(comp.element, detail.model.getDisplayText(data));\n }\n }, detail.initialData.map(function (d) {\n return wrap$1('initialValue', d);\n }).getOr({}))\n }), Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: function (component, _simulatedEvent) {\n var sandbox = Coupling.getCoupled(component, 'sandbox');\n var focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$5(component.element).length >= detail.minChars) {\n var previousValue_1 = Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu).map(Representing.getValue);\n });\n detail.previewing.set(true);\n var onOpenSync = function (_sandbox) {\n Composing.getCurrent(sandbox).each(function (menu) {\n previousValue_1.fold(function () {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(menu);\n }\n }, function (pv) {\n Highlighting.highlightBy(menu, function (item) {\n var itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(menu).orThunk(function () {\n Highlighting.highlightFirst(menu);\n return Optional.none();\n });\n });\n });\n };\n open(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }), Keying.config({\n mode: 'special',\n onDown: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n return Optional.none();\n },\n onUp: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n var sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu);\n }).map(function (item) {\n emitWith(comp, itemExecute(), {\n item: item\n });\n return true;\n });\n } else {\n var currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Optional.some(true);\n }\n }\n }), Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: {\n mode: 'expanded'\n }\n }), Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox$1(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }), config('typeaheadevents', [runOnExecute$1(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }), run$1(itemExecute(), function (comp, se) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event.item);\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event.item, Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })].concat(detail.dismissOnBlur ? [run$1(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))];\n return {\n uid: detail.uid,\n dom: dom(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: __assign(__assign({}, focusBehaviours$1), augment(detail.typeaheadBehaviours, behaviours)),\n eventOrder: detail.eventOrder\n };\n };\n var schema$g = constant$1([option('lazySink'), required$1('fetch'), defaulted('minChars', 5), defaulted('responseTime', 1000), onHandler('onOpen'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), defaulted('layouts', Optional.none()), defaulted('eventOrder', {}), defaultedObjOf('model', {}, [defaulted('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }), defaulted('selectsOver', true), defaulted('populateFromBrowse', true)]), onHandler('onSetValue'), onKeyboardHandler('onExecute'), onHandler('onItemExecute'), defaulted('inputClasses', []), defaulted('inputAttributes', {}), defaulted('inputStyles', {}), defaulted('matchWidth', true), defaulted('useMinWidth', false), defaulted('dismissOnBlur', true), markers$1(['openClass']), option('initialData'), field('typeaheadBehaviours', [Focusing, Representing, Streaming, Keying, Toggling, Coupling]), customField('previewing', function () {\n return Cell(true);\n })].concat(schema$k()).concat(sandboxFields()));\n var parts$b = constant$1([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: function (detail) {\n return {\n fakeFocus: true,\n onHighlight: function (menu, item) {\n if (!detail.previewing.get()) {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n } else {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n attemptSelectOver(detail.model, input, item).fold(function () {\n return Highlighting.dehighlight(menu, item);\n }, function (fn) {\n return fn();\n });\n });\n }\n detail.previewing.set(false);\n },\n onExecute: function (menu, item) {\n return menu.getSystem().getByUid(detail.uid).toOptional().map(function (typeahead) {\n emitWith(typeahead, itemExecute(), {\n item: item\n });\n return true;\n });\n },\n onHover: function (menu, item) {\n detail.previewing.set(false);\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n var Typeahead = composite({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\n });\n var wrap = function (delegate) {\n var toCached = function () {\n return wrap(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n var bindResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap(Future.nu(function (callback) {\n var timedOut = false;\n var timer = setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign(__assign({}, delegate), {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n var nu$1 = function (worker) {\n return wrap(Future.nu(worker));\n };\n var value = function (value) {\n return wrap(Future.pure(Result.value(value)));\n };\n var error = function (error) {\n return wrap(Future.pure(Result.error(error)));\n };\n var fromResult = function (result) {\n return wrap(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$1(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$1,\n wrap: wrap,\n pure: value,\n value: value,\n error: error,\n fromResult: fromResult,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n var separator$1 = {\n type: 'separator'\n };\n var toMenuItem = function (target) {\n return {\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: {\n attach: target.attach\n },\n onAction: noop\n };\n };\n var staticMenuItem = function (title, url) {\n return {\n type: 'menuitem',\n value: url,\n text: title,\n meta: {\n attach: undefined\n },\n onAction: noop\n };\n };\n var toMenuItems = function (targets) {\n return map$2(targets, toMenuItem);\n };\n var filterLinkTargets = function (type, targets) {\n return filter$2(targets, function (target) {\n return target.type === type;\n });\n };\n var filteredTargets = function (type, targets) {\n return toMenuItems(filterLinkTargets(type, targets));\n };\n var headerTargets = function (linkInfo) {\n return filteredTargets('header', linkInfo.targets);\n };\n var anchorTargets = function (linkInfo) {\n return filteredTargets('anchor', linkInfo.targets);\n };\n var anchorTargetTop = function (linkInfo) {\n return Optional.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var anchorTargetBottom = function (linkInfo) {\n return Optional.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var historyTargets = function (history) {\n return map$2(history, function (url) {\n return staticMenuItem(url, url);\n });\n };\n var joinMenuLists = function (items) {\n return foldl(items, function (a, b) {\n var bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$1, b);\n }, []);\n };\n var filterByQuery = function (term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter$2(menuItems, function (item) {\n var text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(item.value.toLowerCase(), lowerCaseTerm);\n });\n };\n var getItems = function (fileType, input, urlBackstage) {\n var urlInputValue = Representing.getValue(input);\n var term = urlInputValue.meta.text !== undefined ? urlInputValue.meta.text : urlInputValue.value;\n var info = urlBackstage.getLinkInformation();\n return info.fold(function () {\n return [];\n }, function (linkInfo) {\n var history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([history, filterByQuery(term, headerTargets(linkInfo)), filterByQuery(term, flatten([anchorTargetTop(linkInfo), anchorTargets(linkInfo), anchorTargetBottom(linkInfo)]))]) : history;\n });\n };\n var errorId = generate$6('aria-invalid');\n var renderUrlInput = function (spec, backstage, urlBackstage) {\n var _a;\n var providersBackstage = backstage.shared.providers;\n var updateHistory = function (component) {\n var urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n var pField = FormField.parts.field({\n factory: Typeahead,\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: function (input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\n return Future.pure(tdata);\n },\n getHotspot: function (comp) {\n return memUrlBox.getOpt(comp);\n },\n onSetValue: function (comp, _newValue) {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([urlBackstage.getValidationHandler().map(function (handler) {\n return Invalidating.config({\n getRoot: function (comp) {\n return parent(comp.element);\n },\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: function (comp, err) {\n memInvalidIcon.getOpt(comp).each(function (invalidComp) {\n set$8(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: function (input) {\n var urlEntry = Representing.getValue(input);\n return FutureResult.nu(function (completer) {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, function (validation) {\n if (validation.status === 'invalid') {\n var err = Result.error(validation.message);\n completer(err);\n } else {\n var val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n });\n }).toArray(), [Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), Tabstopping.config({}), config('urlinput-events', flatten([spec.filetype === 'file' ? [run$1(input(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n })] : [], [run$1(change(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n updateHistory(comp);\n }), run$1(postPaste(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n updateHistory(comp);\n })]]))]])),\n eventOrder: (_a = {}, _a[input()] = ['streaming', 'urlinput-events', 'invalidating'], _a),\n model: {\n getDisplayText: function (itemData) {\n return itemData.value;\n },\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: {\n openClass: 'tox-textfield--popup-open'\n },\n lazySink: backstage.shared.getSink,\n parts: {\n menu: part(false, 1, 'normal')\n },\n onExecute: function (_menu, component, _entry) {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: function (typeahead, _sandbox, _item, _value) {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, {\n name: spec.name\n });\n }\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var makeIcon = function (name, errId, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n if (label === void 0) {\n label = name;\n }\n return render$3(icon, {\n tag: 'div',\n classes: ['tox-icon', 'tox-control-wrap__status-icon-' + name],\n attributes: __assign({\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite'\n }, errId.fold(function () {\n return {};\n }, function (id) {\n return {\n id: id\n };\n }))\n }, providersBackstage.icons);\n };\n var memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n var memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n var optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n var browseUrlEvent = generate$6('browser.url.event');\n var memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [pField, memStatus.asSpec()],\n behaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n })])\n });\n var memUrlPickerButton = record(renderButton({\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.label.getOr(''),\n disabled: spec.disabled,\n primary: false,\n borderless: true\n }, function (component) {\n return emit(component, browseUrlEvent);\n }, providersBackstage, [], ['tox-browse-url']));\n var controlHWrapper = function () {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([[memUrlBox.asSpec()], optUrlPicker.map(function () {\n return memUrlPickerButton.asSpec();\n }).toArray()])\n };\n };\n var openUrlPicker = function (comp) {\n Composing.getCurrent(comp).each(function (field) {\n var componentData = Representing.getValue(field);\n var urlData = __assign({\n fieldname: spec.name\n }, componentData);\n optUrlPicker.each(function (picker) {\n picker(urlData).get(function (chosenData) {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }), receivingConfig(), config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])])\n });\n };\n var renderAlertBanner = function (spec, providersBackstage) {\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: {\n role: 'alert'\n },\n classes: ['tox-notification', 'tox-notification--in', 'tox-notification--' + spec.level]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--naked', 'tox-button--icon'],\n innerHtml: get$1(spec.icon, providersBackstage.icons),\n attributes: {\n title: providersBackstage.translate(spec.iconTooltip)\n }\n },\n action: function (comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n },\n buttonBehaviours: derive$1([addFocusableBehaviour()])\n })]\n }, {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }]\n });\n };\n var renderCheckbox = function (spec, providerBackstage) {\n var repBehaviour = Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var el = comp.element.dom;\n return el.checked;\n },\n setValue: function (comp, value) {\n var el = comp.element.dom;\n el.checked = value;\n }\n }\n });\n var toggleCheckboxHandler = function (comp) {\n comp.element.dom.click();\n return Optional.some(true);\n };\n var pField = FormField.parts.field({\n factory: {\n sketch: identity$1\n },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: {\n type: 'checkbox'\n }\n },\n behaviours: derive$1([ComposingConfigs.self(), Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n }\n }), Tabstopping.config({}), Focusing.config({}), repBehaviour, Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }), config('checkbox-events', [run$1(change(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])])\n });\n var pLabel = FormField.parts.label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label'],\n innerHtml: providerBackstage.translate(spec.label)\n },\n behaviours: derive$1([Unselecting.config({})])\n });\n var makeIcon = function (className) {\n var iconName = className === 'checked' ? 'selected' : 'unselected';\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-checkbox-icon__' + className]\n }, providerBackstage.icons);\n };\n var memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [makeIcon('checked'), makeIcon('unchecked')]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [pField, memIcons.asSpec(), pLabel],\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n },\n disableClass: 'tox-checkbox--disabled',\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()])\n });\n };\n var renderHtmlPanel = function (spec) {\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html\n }\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html,\n attributes: {\n role: 'document'\n }\n },\n containerBehaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n });\n }\n };\n var make$2 = function (render) {\n return function (parts, spec, backstage) {\n return get$e(spec, 'name').fold(function () {\n return render(spec, backstage);\n }, function (fieldName) {\n return parts.field(fieldName, render(spec, backstage));\n });\n };\n };\n var makeIframe = function (render) {\n return function (parts, spec, backstage) {\n var iframeSpec = deepMerge(spec, {\n source: 'dynamic'\n });\n return make$2(render)(parts, iframeSpec, backstage);\n };\n };\n var factories = {\n bar: make$2(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$2(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alertbanner: make$2(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$2(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$2(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n label: make$2(function (spec, backstage) {\n return renderLabel(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n button: make$2(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$2(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$2(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$2(renderColorPicker),\n dropzone: make$2(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$2(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n listbox: make$2(function (spec, backstage) {\n return renderListBox(spec, backstage);\n }),\n selectbox: make$2(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$2(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$2(function (spec, backstage) {\n return renderUrlInput(spec, backstage, backstage.urlinput);\n }),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2(renderHtmlPanel),\n imagetools: make$2(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$2(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n }),\n panel: make$2(function (spec, backstage) {\n return renderPanel(spec, backstage);\n })\n };\n var noFormParts = {\n field: function (_name, spec) {\n return spec;\n }\n };\n var interpretInForm = function (parts, spec, oldBackstage) {\n var newBackstage = deepMerge(oldBackstage, {\n shared: {\n interpreter: function (childSpec) {\n return interpretParts(parts, childSpec, newBackstage);\n }\n }\n });\n return interpretParts(parts, spec, newBackstage);\n };\n var interpretParts = function (parts, spec, backstage) {\n return get$e(factories, spec.type).fold(function () {\n console.error('Unknown factory type \"' + spec.type + '\", defaulting to container: ', spec);\n return spec;\n }, function (factory) {\n return factory(parts, spec, backstage);\n });\n };\n var interpretWithoutForm = function (spec, backstage) {\n var parts = noFormParts;\n return interpretParts(parts, spec, backstage);\n };\n var bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n var getInlineDialogAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var bubbleSize = 12;\n var overrides = {\n maxHeightFunction: expandable$1()\n };\n var editableAreaAnchor = function () {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function () {\n return [northeast];\n },\n onLtr: function () {\n return [northwest];\n }\n },\n overrides: overrides\n };\n };\n var standardAnchor = function () {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function () {\n return [southeast$2];\n },\n onLtr: function () {\n return [southwest$2];\n }\n },\n overrides: overrides\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getBannerAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var editableAreaAnchor = function () {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: function () {\n return [north];\n },\n onLtr: function () {\n return [north];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function () {\n return [south$2];\n },\n onLtr: function () {\n return [south$2];\n }\n }\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getCursorAnchor = function (editor, bodyElement) {\n return function () {\n return {\n type: 'selection',\n root: bodyElement(),\n getSelection: function () {\n var rng = editor.selection.getRng();\n return Optional.some(SimSelection.range(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n }\n };\n };\n };\n var getNodeAnchor$1 = function (bodyElement) {\n return function (element) {\n return {\n type: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n var getAnchors = function (editor, lazyAnchorbar, isToolbarTop) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n var bodyElement = function () {\n return SugarElement.fromDom(editor.getBody());\n };\n var contentAreaElement = function () {\n return SugarElement.fromDom(editor.getContentAreaContainer());\n };\n var lazyUseEditableAreaAnchor = function () {\n return useFixedToolbarContainer || !isToolbarTop();\n };\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor$1(bodyElement)\n };\n };\n var colorPicker = function (editor) {\n return function (callback, value) {\n var dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n var hasCustomColors = function (editor) {\n return function () {\n return hasCustomColors$1(editor);\n };\n };\n var getColors = function (editor) {\n return function () {\n return getColors$2(editor);\n };\n };\n var getColorCols = function (editor) {\n return function () {\n return getColorCols$1(editor);\n };\n };\n var ColorInputBackstage = function (editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n };\n };\n var isDraggableModal = function (editor) {\n return function () {\n return isDraggableModal$1(editor);\n };\n };\n var DialogBackstage = function (editor) {\n return {\n isDraggableModal: isDraggableModal(editor)\n };\n };\n var HeaderBackstage = function (editor) {\n var mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: function () {\n return mode.get() === 'top';\n },\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n var defaultStyleFormats = [{\n title: 'Headings',\n items: [{\n title: 'Heading 1',\n format: 'h1'\n }, {\n title: 'Heading 2',\n format: 'h2'\n }, {\n title: 'Heading 3',\n format: 'h3'\n }, {\n title: 'Heading 4',\n format: 'h4'\n }, {\n title: 'Heading 5',\n format: 'h5'\n }, {\n title: 'Heading 6',\n format: 'h6'\n }]\n }, {\n title: 'Inline',\n items: [{\n title: 'Bold',\n format: 'bold'\n }, {\n title: 'Italic',\n format: 'italic'\n }, {\n title: 'Underline',\n format: 'underline'\n }, {\n title: 'Strikethrough',\n format: 'strikethrough'\n }, {\n title: 'Superscript',\n format: 'superscript'\n }, {\n title: 'Subscript',\n format: 'subscript'\n }, {\n title: 'Code',\n format: 'code'\n }]\n }, {\n title: 'Blocks',\n items: [{\n title: 'Paragraph',\n format: 'p'\n }, {\n title: 'Blockquote',\n format: 'blockquote'\n }, {\n title: 'Div',\n format: 'div'\n }, {\n title: 'Pre',\n format: 'pre'\n }]\n }, {\n title: 'Align',\n items: [{\n title: 'Left',\n format: 'alignleft'\n }, {\n title: 'Center',\n format: 'aligncenter'\n }, {\n title: 'Right',\n format: 'alignright'\n }, {\n title: 'Justify',\n format: 'alignjustify'\n }]\n }];\n var isNestedFormat = function (format) {\n return has$2(format, 'items');\n };\n var isBlockFormat = function (format) {\n return has$2(format, 'block');\n };\n var isInlineFormat = function (format) {\n return has$2(format, 'inline');\n };\n var isSelectorFormat = function (format) {\n return has$2(format, 'selector');\n };\n var mapFormats = function (userFormats) {\n return foldl(userFormats, function (acc, fmt) {\n if (isNestedFormat(fmt)) {\n var result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n var formatName = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n var formatNameWithPrefix = 'custom-' + formatName;\n return {\n customFormats: acc.customFormats.concat([{\n name: formatNameWithPrefix,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatNameWithPrefix,\n icon: fmt.icon\n }])\n };\n } else {\n return __assign(__assign({}, acc), {\n formats: acc.formats.concat(fmt)\n });\n }\n }, {\n customFormats: [],\n formats: []\n });\n };\n var registerCustomFormats = function (editor, userFormats) {\n var result = mapFormats(userFormats);\n var registerFormats = function (customFormats) {\n each$1(customFormats, function (fmt) {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', function () {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n var getStyleFormats = function (editor) {\n return getUserStyleFormats(editor).map(function (userFormats) {\n var registeredUserFormats = registerCustomFormats(editor, userFormats);\n return isMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n };\n var processBasic = function (item, isSelectedFor, getPreviewFor) {\n var formatterSpec = {\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n };\n return deepMerge(item, formatterSpec);\n };\n var register$8 = function (editor, formats, isSelectedFor, getPreviewFor) {\n var enrichSupported = function (item) {\n return processBasic(item, isSelectedFor, getPreviewFor);\n };\n var enrichMenu = function (item) {\n var submenuSpec = {\n type: 'submenu'\n };\n return deepMerge(item, submenuSpec);\n };\n var enrichCustom = function (item) {\n var formatName = isString(item.name) ? item.name : generate$6(item.title);\n var formatNameWithPrefix = 'custom-' + formatName;\n var customSpec = {\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\n };\n var newItem = deepMerge(item, customSpec);\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n var doEnrich = function (items) {\n return map$2(items, function (item) {\n var keys$1 = keys(item);\n if (hasNonNullableKey(item, 'items')) {\n var newItems = doEnrich(item.items);\n return deepMerge(enrichMenu(item), {\n getStyleItems: constant$1(newItems)\n });\n } else if (hasNonNullableKey(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains$2(keys$1, 'title')) {\n return deepMerge(item, {\n type: 'separator'\n });\n } else {\n return enrichCustom(item);\n }\n });\n };\n return doEnrich(formats);\n };\n var init$8 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n var flatten = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, flatten) : [fmt.format];\n };\n var settingsFormats = Cell([]);\n var settingsFlattenedFormats = Cell([]);\n var eventsFormats = Cell([]);\n var eventsFlattenedFormats = Cell([]);\n var replaceSettings = Cell(false);\n editor.on('PreInit', function (_e) {\n var formats = getStyleFormats(editor);\n var enriched = register$8(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind$3(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$8(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind$3(modifications, flatten));\n });\n var getData = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n var fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n var getFlattenedKeys = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n var fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return {\n getData: getData,\n getFlattenedKeys: getFlattenedKeys\n };\n };\n var isElement = function (node) {\n return isNonNullable(node) && node.nodeType === 1;\n };\n var trim = global$5.trim;\n var hasContentEditableState = function (value) {\n return function (node) {\n if (isElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var create = function (type, title, url, level, attach) {\n return {\n type: type,\n title: title,\n url: url,\n level: level,\n attach: attach\n };\n };\n var isChildOfContentEditableTrue = function (node) {\n while (node = node.parentNode) {\n var value = node.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n return false;\n };\n var select = function (selector, root) {\n return map$2(descendants(SugarElement.fromDom(root), selector), function (element) {\n return element.dom;\n });\n };\n var getElementText = function (elm) {\n return elm.innerText || elm.textContent;\n };\n var getOrGenerateId = function (elm) {\n return elm.id ? elm.id : generate$6('h');\n };\n var isAnchor = function (elm) {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n var isValidAnchor = function (elm) {\n return isAnchor(elm) && isEditable(elm);\n };\n var isHeader = function (elm) {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n var isEditable = function (elm) {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n var isValidHeader = function (elm) {\n return isHeader(elm) && isEditable(elm);\n };\n var getLevel = function (elm) {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n var headerTarget = function (elm) {\n var headerId = getOrGenerateId(elm);\n var attach = function () {\n elm.id = headerId;\n };\n return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n var anchorTarget = function (elm) {\n var anchorId = elm.id || elm.name;\n var anchorText = getElementText(elm);\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n var getHeaderTargets = function (elms) {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n var getAnchorTargets = function (elms) {\n return map$2(filter$2(elms, isValidAnchor), anchorTarget);\n };\n var getTargetElements = function (elm) {\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n var hasTitle = function (target) {\n return trim(target.title).length > 0;\n };\n var find = function (elm) {\n var elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n var LinkTargets = {\n find: find\n };\n var STORAGE_KEY = 'tinymce-url-history';\n var HISTORY_LENGTH = 5;\n var isHttpUrl = function (url) {\n return isString(url) && /^https?/.test(url);\n };\n var isArrayOfUrl = function (a) {\n return isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n };\n var isRecordOfUrlArray = function (r) {\n return isObject(r) && find$4(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n var getAllHistory = function () {\n var unparsedHistory = global$8.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n var history;\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n var setAllHistory = function (history) {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n global$8.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n var getHistory = function (fileType) {\n var history = getAllHistory();\n return get$e(history, fileType).getOr([]);\n };\n var addToHistory = function (url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n var history = getAllHistory();\n var items = get$e(history, fileType).getOr([]);\n var itemsWithoutUrl = filter$2(items, function (item) {\n return item !== url;\n });\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n var isTruthy = function (value) {\n return !!value;\n };\n var makeMap = function (value) {\n return map$1(global$5.makeMap(value, /[, ]/), isTruthy);\n };\n var getPicker = function (editor) {\n return Optional.from(getFilePickerCallback(editor)).filter(isFunction);\n };\n var getPickerTypes = function (editor) {\n var optFileTypes = Optional.some(getFilePickerTypes(editor)).filter(isTruthy);\n var optLegacyTypes = Optional.some(getFileBrowserCallbackTypes(editor)).filter(isTruthy);\n var optTypes = optFileTypes.or(optLegacyTypes).map(makeMap);\n return getPicker(editor).fold(never, function (_picker) {\n return optTypes.fold(always, function (types) {\n return keys(types).length > 0 ? types : false;\n });\n });\n };\n var getPickerSetting = function (editor, filetype) {\n var pickerTypes = getPickerTypes(editor);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n var getUrlPicker = function (editor, filetype) {\n return getPickerSetting(editor, filetype).map(function (picker) {\n return function (entry) {\n return Future.nu(function (completer) {\n var handler = function (value, meta) {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n var r = {\n value: value,\n meta: meta\n };\n completer(r);\n };\n var meta = __assign({\n filetype: filetype,\n fieldname: entry.fieldname\n }, Optional.from(entry.meta).getOr({}));\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n var getTextSetting = function (value) {\n return Optional.from(value).filter(isString).getOrUndefined();\n };\n var getLinkInformation = function (editor) {\n if (noTypeaheadUrls(editor)) {\n return Optional.none();\n }\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n var getValidationHandler = function (editor) {\n return Optional.from(getFilePickerValidatorHandler(editor));\n };\n var UrlInputBackstage = function (editor) {\n return {\n getHistory: getHistory,\n addToHistory: addToHistory,\n getLinkInformation: function () {\n return getLinkInformation(editor);\n },\n getValidationHandler: function () {\n return getValidationHandler(editor);\n },\n getUrlPicker: function (filetype) {\n return getUrlPicker(editor, filetype);\n }\n };\n };\n var init$7 = function (sink, editor, lazyAnchorbar) {\n var contextMenuState = Cell(false);\n var toolbar = HeaderBackstage(editor);\n var backstage = {\n shared: {\n providers: {\n icons: function () {\n return editor.ui.registry.getAll().icons;\n },\n menuItems: function () {\n return editor.ui.registry.getAll().menuItems;\n },\n translate: global$e.translate,\n isDisabled: function () {\n return editor.mode.isReadOnly() || editor.ui.isDisabled();\n },\n getSetting: editor.getParam.bind(editor)\n },\n interpreter: function (s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),\n header: toolbar,\n getSink: function () {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$8(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: function () {\n return contextMenuState.get();\n },\n setContextMenuState: function (state) {\n return contextMenuState.set(state);\n }\n };\n return backstage;\n };\n var setup$b = function (editor, mothership, uiMothership) {\n var broadcastEvent = function (name, evt) {\n each$1([mothership, uiMothership], function (ship) {\n ship.broadcastEvent(name, evt);\n });\n };\n var broadcastOn = function (channel, message) {\n each$1([mothership, uiMothership], function (ship) {\n ship.broadcastOn([channel], message);\n });\n };\n var fireDismissPopups = function (evt) {\n return broadcastOn(dismissPopups(), {\n target: evt.target\n });\n };\n var doc = getDocument();\n var onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n var onTouchmove = bind(doc, 'touchmove', function (evt) {\n return broadcastEvent(documentTouchmove(), evt);\n });\n var onTouchend = bind(doc, 'touchend', function (evt) {\n return broadcastEvent(documentTouchend(), evt);\n });\n var onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n var onMouseup = bind(doc, 'mouseup', function (evt) {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), {\n target: evt.target\n });\n }\n });\n var onContentClick = function (raw) {\n return broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(raw.target)\n });\n };\n var onContentMouseup = function (raw) {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), {\n target: SugarElement.fromDom(raw.target)\n });\n }\n };\n var onContentMousedown = function () {\n each$1(editor.editorManager.get(), function (loopEditor) {\n if (editor !== loopEditor) {\n loopEditor.fire('DismissPopups', {\n relatedTarget: editor\n });\n }\n });\n };\n var onWindowScroll = function (evt) {\n return broadcastEvent(windowScroll(), fromRawEvent(evt));\n };\n var onWindowResize = function (evt) {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n var onEditorResize = function () {\n return broadcastOn(repositionPopups(), {});\n };\n var onEditorProgress = function (evt) {\n if (evt.state) {\n broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(editor.getContainer())\n });\n }\n };\n var onDismissPopups = function (event) {\n broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(event.relatedTarget.getContainer())\n });\n };\n editor.on('PostRender', function () {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('mousedown', onContentMousedown);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n editor.on('DismissPopups', onDismissPopups);\n });\n editor.on('remove', function () {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('mousedown', onContentMousedown);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\n editor.off('DismissPopups', onDismissPopups);\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.unbind();\n onMouseup.unbind();\n });\n editor.on('detach', function () {\n detachSystem(mothership);\n detachSystem(uiMothership);\n mothership.destroy();\n uiMothership.destroy();\n });\n };\n var parts$a = AlloyParts;\n var partType = PartType;\n var schema$f = constant$1([defaulted('shell', false), required$1('makeItem'), defaulted('setupItem', noop), SketchBehaviours.field('listBehaviours', [Replacing])]);\n var customListDetail = function () {\n return {\n behaviours: derive$1([Replacing.config({})])\n };\n };\n var itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n var parts$9 = constant$1([itemsPart]);\n var name = constant$1('CustomList');\n var factory$d = function (detail, components, _spec, _external) {\n var setItems = function (list, items) {\n getListContainer(list).fold(function () {\n console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, function (container) {\n var itemComps = Replacing.contents(container);\n var numListsRequired = items.length;\n var numListsToAdd = numListsRequired - itemComps.length;\n var itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, function () {\n return detail.makeItem();\n }) : [];\n var itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, function (item) {\n return Replacing.remove(container, item);\n });\n each$1(itemsToAdd, function (item) {\n return Replacing.append(container, item);\n });\n var builtLists = Replacing.contents(container);\n each$1(builtLists, function (item, i) {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n var getListContainer = function (component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: {\n setItems: setItems\n }\n };\n };\n var CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$d,\n apis: {\n setItems: function (apis, list, items) {\n apis.setItems(list, items);\n }\n }\n });\n var schema$e = constant$1([required$1('dom'), defaulted('shell', true), field('toolbarBehaviours', [Replacing])]);\n var enhanceGroups = function () {\n return {\n behaviours: derive$1([Replacing.config({})])\n };\n };\n var parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n var factory$c = function (detail, components, _spec, _externals) {\n var setGroups = function (toolbar, groups) {\n getGroupContainer(toolbar).fold(function () {\n console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, function (container) {\n Replacing.set(container, groups);\n });\n };\n var getGroupContainer = function (component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: {\n setGroups: setGroups\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n var Toolbar = composite({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$c,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n var setup$a = noop;\n var isDocked$2 = never;\n var getBehaviours$1 = constant$1([]);\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$1\n });\n var getOffsetParent = function (element) {\n var isFixed = is$1(getRaw(element, 'position'), 'fixed');\n var offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(function () {\n var marker = SugarElement.fromTag('span');\n return parent(element).bind(function (parent) {\n append$2(parent, marker);\n var offsetParent$1 = offsetParent(marker);\n remove$5(marker);\n return offsetParent$1;\n });\n });\n };\n var getOrigin = function (element) {\n return getOffsetParent(element).map(absolute$3).getOrThunk(function () {\n return SugarPosition(0, 0);\n });\n };\n var morphAdt = Adt.generate([{\n static: []\n }, {\n absolute: ['positionCss']\n }, {\n fixed: ['positionCss']\n }]);\n var appear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n var disappear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n var isPartiallyVisible = function (box, viewport) {\n return box.y < viewport.bottom && box.bottom > viewport.y;\n };\n var isTopCompletelyVisible = function (box, viewport) {\n return box.y >= viewport.y;\n };\n var isBottomCompletelyVisible = function (box, viewport) {\n return box.bottom <= viewport.bottom;\n };\n var isVisibleForModes = function (modes, box, viewport) {\n return forall(modes, function (mode) {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n };\n var getPrior = function (elem, state) {\n return state.getInitialPos().map(function (pos) {\n return bounds(pos.bounds.x, pos.bounds.y, get$a(elem), get$b(elem));\n });\n };\n var storePrior = function (elem, box, state) {\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$c(elem, 'position') || 'static',\n bounds: box\n });\n };\n var revertToOriginal = function (elem, box, state) {\n return state.getInitialPos().bind(function (position) {\n state.clearInitialPos();\n switch (position.position) {\n case 'static':\n return Optional.some(morphAdt.static());\n case 'absolute':\n var offsetBox_1 = getOffsetParent(elem).map(box$1).getOrThunk(function () {\n return box$1(body());\n });\n return Optional.some(morphAdt.absolute(NuPositionCss('absolute', get$e(position.style, 'left').map(function (_left) {\n return box.x - offsetBox_1.x;\n }), get$e(position.style, 'top').map(function (_top) {\n return box.y - offsetBox_1.y;\n }), get$e(position.style, 'right').map(function (_right) {\n return offsetBox_1.right - box.right;\n }), get$e(position.style, 'bottom').map(function (_bottom) {\n return offsetBox_1.bottom - box.bottom;\n }))));\n default:\n return Optional.none();\n }\n });\n };\n var morphToOriginal = function (elem, viewport, state) {\n return getPrior(elem, state).filter(function (box) {\n return isVisibleForModes(state.getModes(), box, viewport);\n }).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n var morphToFixed = function (elem, viewport, state) {\n var box = box$1(elem);\n if (!isVisibleForModes(state.getModes(), box, viewport)) {\n storePrior(elem, box, state);\n var winBox = win();\n var left = box.x - winBox.x;\n var top_1 = viewport.y - winBox.y;\n var bottom = winBox.bottom - viewport.bottom;\n var isTop = box.y <= viewport.y;\n return Optional.some(morphAdt.fixed(NuPositionCss('fixed', Optional.some(left), isTop ? Optional.some(top_1) : Optional.none(), Optional.none(), !isTop ? Optional.some(bottom) : Optional.none())));\n } else {\n return Optional.none();\n }\n };\n var getMorph = function (component, viewport, state) {\n var elem = component.element;\n var isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? morphToOriginal(elem, viewport, state) : morphToFixed(elem, viewport, state);\n };\n var getMorphToOriginal = function (component, state) {\n var elem = component.element;\n return getPrior(elem, state).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n var morphToStatic = function (component, config, state) {\n state.setDocked(false);\n each$1(['left', 'right', 'top', 'bottom', 'position'], function (prop) {\n return remove$6(component.element, prop);\n });\n config.onUndocked(component);\n };\n var morphToCoord = function (component, config, state, position) {\n var isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n var method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n var updateVisibility = function (component, config, state, viewport, morphToDocked) {\n if (morphToDocked === void 0) {\n morphToDocked = false;\n }\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (box) {\n var isVisible = isPartiallyVisible(box, viewport);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$1(component.element, [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n var method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n var refreshInternal = function (component, config, state) {\n var viewport = config.lazyViewport(component);\n var isDocked = state.isDocked();\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n getMorph(component, viewport, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, function (position) {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, position);\n });\n });\n };\n var resetInternal = function (component, config, state) {\n var elem = component.element;\n state.setDocked(false);\n getMorphToOriginal(component, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, noop);\n });\n state.setVisible(true);\n config.contextual.each(function (contextInfo) {\n remove$1(elem, [contextInfo.fadeInClass, contextInfo.fadeOutClass, contextInfo.transitionClass]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n var refresh$4 = function (component, config, state) {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n var reset = function (component, config, state) {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n var isDocked$1 = function (component, config, state) {\n return state.isDocked();\n };\n var setModes = function (component, config, state, modes) {\n return state.setModes(modes);\n };\n var getModes = function (component, config, state) {\n return state.getModes();\n };\n var DockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$4,\n reset: reset,\n isDocked: isDocked$1,\n getModes: getModes,\n setModes: setModes\n });\n var events$5 = function (dockInfo, dockState) {\n return derive$2([runOnSource(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$1(component.element, [contextInfo.transitionClass, contextInfo.fadeInClass]);\n var notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }), run$1(windowScroll(), function (component, _) {\n refresh$4(component, dockInfo, dockState);\n }), run$1(windowResize(), function (component, _) {\n reset(component, dockInfo, dockState);\n })]);\n };\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$5\n });\n var DockingSchema = [optionObjOf('contextual', [requiredString('fadeInClass'), requiredString('fadeOutClass'), requiredString('transitionClass'), requiredFunction('lazyContext'), onHandler('onShow'), onHandler('onShown'), onHandler('onHide'), onHandler('onHidden')]), defaultedFunction('lazyViewport', win), defaultedArrayOf('modes', ['top', 'bottom'], string), onHandler('onDocked'), onHandler('onUndocked')];\n var init$6 = function (spec) {\n var docked = Cell(false);\n var visible = Cell(true);\n var initialBounds = value$1();\n var modes = Cell(spec.modes);\n var readState = function () {\n return 'docked: ' + docked.get() + ', visible: ' + visible.get() + ', modes: ' + modes.get().join(',');\n };\n return nu$8({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPos: initialBounds.get,\n setInitialPos: initialBounds.set,\n clearInitialPos: initialBounds.clear,\n isVisible: visible.get,\n setVisible: visible.set,\n getModes: modes.get,\n setModes: modes.set,\n readState: readState\n });\n };\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$6\n });\n var Docking = create$8({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n var toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n var visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n var editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n var editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n var scrollFromBehindHeader = function (e, containerHeader) {\n var doc = owner$4(containerHeader);\n var viewHeight = doc.dom.defaultView.innerHeight;\n var scrollPos = get$9(doc);\n var markerElement = SugarElement.fromDom(e.elm);\n var markerPos = absolute$2(markerElement);\n var markerHeight = get$b(markerElement);\n var markerTop = markerPos.y;\n var markerBottom = markerTop + markerHeight;\n var editorHeaderPos = absolute$3(containerHeader);\n var editorHeaderHeight = get$b(containerHeader);\n var editorHeaderTop = editorHeaderPos.top;\n var editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n var editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n var editorHeaderDockedAtBottom = Math.abs(editorHeaderBottom - (scrollPos.top + viewHeight)) < 2;\n if (editorHeaderDockedAtTop && markerTop < editorHeaderBottom) {\n to(scrollPos.left, markerTop - editorHeaderHeight, doc);\n } else if (editorHeaderDockedAtBottom && markerBottom > editorHeaderTop) {\n var y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n var isDockedMode = function (header, mode) {\n return contains$2(Docking.getModes(header), mode);\n };\n var updateIframeContentFlow = function (header) {\n var getOccupiedHeight = function (elm) {\n return getOuter$2(elm) + (parseInt(get$c(elm, 'margin-top'), 10) || 0) + (parseInt(get$c(elm, 'margin-bottom'), 10) || 0);\n };\n var elm = header.element;\n parent(elm).each(function (parentElem) {\n var padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n var parentWidth = get$a(parentElem);\n set$7(elm, 'width', parentWidth + 'px');\n set$7(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, padding);\n }\n });\n };\n var updateSinkVisibility = function (sinkElem, visible) {\n if (visible) {\n remove$2(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [visibility.transitionClass, visibility.fadeInClass]);\n } else {\n remove$2(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [visibility.fadeOutClass, visibility.transitionClass]);\n }\n };\n var updateEditorClasses = function (editor, docked) {\n var editorContainer = SugarElement.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$2(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$2(editorContainer, editorStickyOnClass);\n }\n };\n var restoreFocus = function (headerElem, focusedElem) {\n var ownerDoc = owner$4(focusedElem);\n active(ownerDoc).filter(function (activeElm) {\n return !eq(focusedElem, activeElm);\n }).filter(function (activeElm) {\n return eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm);\n }).each(function () {\n return focus$3(focusedElem);\n });\n };\n var findFocusedElem = function (rootElm, lazySink) {\n return search(rootElm).orThunk(function () {\n return lazySink().toOptional().bind(function (sink) {\n return search(sink.element);\n });\n });\n };\n var setup$9 = function (editor, sharedBackstage, lazyHeader) {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('ResizeWindow ResizeEditor', function () {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', function () {\n lazyHeader().each(function (comp) {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('AfterScrollIntoView', function (e) {\n lazyHeader().each(function (header) {\n Docking.refresh(header);\n var headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', function () {\n updateEditorClasses(editor, false);\n });\n };\n var isDocked = function (lazyHeader) {\n return lazyHeader().map(Docking.isDocked).getOr(false);\n };\n var getIframeBehaviours = function () {\n var _a;\n return [Receiving.config({\n channels: (_a = {}, _a[toolbarHeightChange()] = {\n onReceive: updateIframeContentFlow\n }, _a)\n })];\n };\n var getBehaviours = function (editor, sharedBackstage) {\n var focusedElm = value$1();\n var lazySink = sharedBackstage.getSink;\n var runOnSinkElement = function (f) {\n lazySink().each(function (sink) {\n return f(sink.element);\n });\n };\n var onDockingSwitch = function (comp) {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(function (sink) {\n return sink.getSystem().broadcastOn([repositionPopups()], {});\n });\n };\n var additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return __spreadArray([Focusing.config({}), Docking.config({\n contextual: __assign({\n lazyContext: function (comp) {\n var headerHeight = getOuter$2(comp.element);\n var container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n var box = box$1(SugarElement.fromDom(container));\n var boxHeight = box.height - headerHeight;\n var topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return Optional.some(bounds(box.x, topBound, box.width, boxHeight));\n },\n onShow: function () {\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, true);\n });\n },\n onShown: function (comp) {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [visibility.transitionClass, visibility.fadeInClass]);\n });\n focusedElm.get().each(function (elem) {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: function (comp) {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, false);\n });\n },\n onHidden: function () {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [visibility.transitionClass]);\n });\n }\n }, visibility),\n lazyViewport: function (comp) {\n var win$1 = win();\n var offset = getStickyToolbarOffset(editor);\n var top = win$1.y + (isDockedMode(comp, 'top') ? offset : 0);\n var height = win$1.height - (isDockedMode(comp, 'bottom') ? offset : 0);\n return bounds(win$1.x, top, win$1.width, height);\n },\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n })], additionalBehaviours, true);\n };\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n var renderHeader = function (spec) {\n var editor = spec.editor;\n var getBehaviours$2 = spec.sticky ? getBehaviours : getBehaviours$1;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours$2(editor, spec.sharedBackstage))\n };\n };\n var groupToolbarButtonSchema = objOf([requiredString('type'), requiredOf('items', oneOf([arrOfObj([requiredString('name'), requiredArrayOf('items', string)]), string]))].concat(baseToolbarButtonFields));\n var createGroupToolbarButton = function (spec) {\n return asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n };\n var baseMenuButtonFields = [optionString('text'), optionString('tooltip'), optionString('icon'), requiredFunction('fetch'), defaultedFunction('onSetup', function () {\n return noop;\n })];\n var MenuButtonSchema = objOf(__spreadArray([requiredString('type')], baseMenuButtonFields, true));\n var createMenuButton = function (spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n var splitButtonSchema = objOf([requiredString('type'), optionString('tooltip'), optionString('icon'), optionString('text'), optionFunction('select'), requiredFunction('fetch'), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedStringEnum('presets', 'normal', ['normal', 'color', 'listpreview']), defaulted('columns', 1), requiredFunction('onAction'), requiredFunction('onItemAction')]);\n var createSplitButton = function (spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n var factory$b = function (detail, spec) {\n var setMenus = function (comp, menus) {\n var newMenus = map$2(menus, function (m) {\n var buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: function (callback) {\n callback(m.getItems());\n }\n };\n var internal = createMenuButton(buttonSpec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Optional.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n var apis = {\n focus: Keying.focusIn,\n setMenus: setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([Replacing.config({}), config('menubar-events', [runOnAttached(function (component) {\n detail.onSetup(component);\n }), run$1(mouseover(), function (comp, se) {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$1(se.event.target, '.' + 'tox-mbtn').each(function (hoveredButton) {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(function (activeComp) {\n comp.getSystem().getByDom(hoveredButton).each(function (hoveredComp) {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }), run$1(focusShifted(), function (comp, se) {\n se.event.prevFocus.bind(function (prev) {\n return comp.getSystem().getByDom(prev).toOptional();\n }).each(function (prev) {\n se.event.newFocus.bind(function (nu) {\n return comp.getSystem().getByDom(nu).toOptional();\n }).each(function (nu) {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })]), Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: function (comp) {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }), Tabstopping.config({})]),\n apis: apis,\n domModification: {\n attributes: {\n role: 'menubar'\n }\n }\n };\n };\n var SilverMenubar = single({\n factory: factory$b,\n name: 'silver.Menubar',\n configFields: [required$1('dom'), required$1('uid'), required$1('onEscape'), required$1('backstage'), defaulted('onSetup', noop)],\n apis: {\n focus: function (apis, comp) {\n apis.focus(comp);\n },\n setMenus: function (apis, comp, menus) {\n apis.setMenus(comp, menus);\n }\n }\n });\n var getAnimationRoot = function (component, slideConfig) {\n return slideConfig.getAnimationRoot.fold(function () {\n return component.element;\n }, function (get) {\n return get(component);\n });\n };\n var getDimensionProperty = function (slideConfig) {\n return slideConfig.dimension.property;\n };\n var getDimension = function (slideConfig, elem) {\n return slideConfig.dimension.getDimension(elem);\n };\n var disableTransitions = function (component, slideConfig) {\n var root = getAnimationRoot(component, slideConfig);\n remove$1(root, [slideConfig.shrinkingClass, slideConfig.growingClass]);\n };\n var setShrunk = function (component, slideConfig) {\n remove$2(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$7(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n var setGrown = function (component, slideConfig) {\n remove$2(component.element, slideConfig.closedClass);\n add$2(component.element, slideConfig.openClass);\n remove$6(component.element, getDimensionProperty(slideConfig));\n };\n var doImmediateShrink = function (component, slideConfig, slideState, _calculatedSize) {\n slideState.setCollapsed();\n set$7(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n reflow(component.element);\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n var doStartShrink = function (component, slideConfig, slideState, calculatedSize) {\n var size = calculatedSize.getOrThunk(function () {\n return getDimension(slideConfig, component.element);\n });\n slideState.setCollapsed();\n set$7(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n var root = getAnimationRoot(component, slideConfig);\n remove$2(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n var doStartSmartShrink = function (component, slideConfig, slideState) {\n var size = getDimension(slideConfig, component.element);\n var shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Optional.some(size));\n };\n var doStartGrow = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has(root, slideConfig.shrinkingClass);\n var beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n var fullSize = getDimension(slideConfig, component.element);\n var startPartialGrow = function () {\n set$7(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n var startCompleteGrow = function () {\n setShrunk(component, slideConfig);\n };\n var setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$2(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$7(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n var refresh$3 = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element, getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element);\n set$7(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n var grow = function (component, slideConfig, slideState) {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n var shrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n var immediateShrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n var hasGrown = function (component, slideConfig, slideState) {\n return slideState.isExpanded();\n };\n var hasShrunk = function (component, slideConfig, slideState) {\n return slideState.isCollapsed();\n };\n var isGrowing = function (component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.growingClass) === true;\n };\n var isShrinking = function (component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n var isTransitioning = function (component, slideConfig, slideState) {\n return isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n };\n var toggleGrow = function (component, slideConfig, slideState) {\n var f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n var SlidingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$3,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions\n });\n var exhibit = function (base, slideConfig, _slideState) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$7({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$7({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n var events$4 = function (slideConfig, slideState) {\n return derive$2([runOnSource(transitionend(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$6(component.element, slideConfig.dimension.property);\n }\n var notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n };\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit,\n events: events$4\n });\n var SlidingSchema = [required$1('closedClass'), required$1('openClass'), required$1('shrinkingClass'), required$1('growingClass'), option('getAnimationRoot'), onHandler('onShrunk'), onHandler('onStartShrink'), onHandler('onGrown'), onHandler('onStartGrow'), defaulted('expanded', false), requiredOf('dimension', choose$1('property', {\n width: [output$1('property', 'width'), output$1('getDimension', function (elem) {\n return get$a(elem) + 'px';\n })],\n height: [output$1('property', 'height'), output$1('getDimension', function (elem) {\n return get$b(elem) + 'px';\n })]\n }))];\n var init$5 = function (spec) {\n var state = Cell(spec.expanded);\n var readState = function () {\n return 'expanded: ' + state.get();\n };\n return nu$8({\n isExpanded: function () {\n return state.get() === true;\n },\n isCollapsed: function () {\n return state.get() === false;\n },\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState: readState\n });\n };\n var SlidingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$5\n });\n var Sliding = create$8({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n var owner = 'container';\n var schema$d = [field('slotBehaviours', [])];\n var getPartName = function (name) {\n return '';\n };\n var sketch = function (sSpec) {\n var parts = function () {\n var record = [];\n var slot = function (name, config) {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n return {\n slot: slot,\n record: constant$1(record)\n };\n }();\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n var make$1 = function (detail, components) {\n var getSlotNames = function (_) {\n return getAllPartNames(detail);\n };\n var getSlot = function (container, key) {\n return getPart(container, detail, key);\n };\n var onSlot = function (f, def) {\n return function (container, key) {\n return getPart(container, detail, key).map(function (slot) {\n return f(slot, key);\n }).getOr(def);\n };\n };\n var onSlots = function (f) {\n return function (container, keys) {\n each$1(keys, function (key) {\n return f(container, key);\n });\n };\n };\n var doShowing = function (comp, _key) {\n return get$d(comp.element, 'aria-hidden') !== 'true';\n };\n var doShow = function (comp, key) {\n if (!doShowing(comp)) {\n var element = comp.element;\n remove$6(element, 'display');\n remove$7(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n var doHide = function (comp, key) {\n if (doShowing(comp)) {\n var element = comp.element;\n set$7(element, 'display', 'none');\n set$8(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n var isShowing = onSlot(doShowing, false);\n var hideSlot = onSlot(doHide);\n var hideSlots = onSlots(hideSlot);\n var hideAllSlots = function (container) {\n return hideSlots(container, getSlotNames());\n };\n var showSlot = onSlot(doShow);\n var apis = {\n getSlotNames: getSlotNames,\n getSlot: getSlot,\n isShowing: isShowing,\n hideSlot: hideSlot,\n hideAllSlots: hideAllSlots,\n showSlot: showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$2(detail.slotBehaviours),\n apis: apis\n };\n };\n var slotApis = map$1({\n getSlotNames: function (apis, c) {\n return apis.getSlotNames(c);\n },\n getSlot: function (apis, c, key) {\n return apis.getSlot(c, key);\n },\n isShowing: function (apis, c, key) {\n return apis.isShowing(c, key);\n },\n hideSlot: function (apis, c, key) {\n return apis.hideSlot(c, key);\n },\n hideAllSlots: function (apis, c) {\n return apis.hideAllSlots(c);\n },\n showSlot: function (apis, c, key) {\n return apis.showSlot(c, key);\n }\n }, function (value) {\n return makeApi(value);\n });\n var SlotContainer = __assign(__assign({}, slotApis), {\n sketch: sketch\n });\n var sidebarSchema = objOf([optionString('icon'), optionString('tooltip'), defaultedFunction('onShow', noop), defaultedFunction('onHide', noop), defaultedFunction('onSetup', function () {\n return noop;\n })]);\n var createSidebar = function (spec) {\n return asRaw('sidebar', sidebarSchema, spec);\n };\n var setup$8 = function (editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each$1(keys(sidebars), function (name) {\n var spec = sidebars[name];\n var isActive = function () {\n return is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), name);\n };\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: function (buttonApi) {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: function (buttonApi) {\n var handleToggle = function () {\n return buttonApi.setActive(isActive());\n };\n editor.on('ToggleSidebar', handleToggle);\n return function () {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n var getApi = function (comp) {\n return {\n element: function () {\n return comp.element.dom;\n }\n };\n };\n var makePanels = function (parts, panelConfigs) {\n var specs = map$2(keys(panelConfigs), function (name) {\n var spec = panelConfigs[name];\n var bridged = getOrDie(createSidebar(spec));\n return {\n name: name,\n getApi: getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map$2(specs, function (spec) {\n var editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell), run$1(slotVisibility(), function (sidepanel, se) {\n var data = se.event;\n var optSidePanelSpec = find$5(specs, function (config) {\n return config.name === data.name;\n });\n optSidePanelSpec.each(function (sidePanelSpec) {\n var handler = data.visible ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })])\n });\n });\n };\n var makeSidebar = function (panelConfigs) {\n return SlotContainer.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(function (slotContainer) {\n return SlotContainer.hideAllSlots(slotContainer);\n })])\n };\n });\n };\n var setSidebar = function (sidebar, panelConfigs) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n return Replacing.set(slider, [makeSidebar(panelConfigs)]);\n });\n };\n var toggleSidebar = function (sidebar, name) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(function (slotContainer) {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n }\n });\n });\n };\n var whichSidebar = function (sidebar) {\n var optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(function (slider) {\n var sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n var optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(function (slotContainer) {\n return find$5(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Optional.none();\n }\n });\n };\n var fixSize = generate$6('FixSizeEvent');\n var autoSize = generate$6('AutoSizeEvent');\n var renderSidebar = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: {\n role: 'complementary'\n }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({}), Sliding.config({\n dimension: {\n property: 'width'\n },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: function (slider) {\n emit(slider, autoSize);\n },\n onStartGrow: function (slider) {\n emitWith(slider, fixSize, {\n width: getRaw(slider.element, 'width').getOr('')\n });\n },\n onStartShrink: function (slider) {\n emitWith(slider, fixSize, {\n width: get$a(slider.element) + 'px'\n });\n }\n }), Replacing.config({}), Composing.config({\n find: function (comp) {\n var children = Replacing.contents(comp);\n return head(children);\n }\n })])\n }],\n behaviours: derive$1([ComposingConfigs.childAt(0), config('sidebar-sliding-events', [run$1(fixSize, function (comp, se) {\n set$7(comp.element, 'width', se.event.width);\n }), run$1(autoSize, function (comp, _se) {\n remove$6(comp.element, 'width');\n })])])\n };\n };\n var block = function (component, config, state, getBusySpec) {\n set$8(component.element, 'aria-busy', true);\n var root = config.getRoot(component).getOr(component);\n var blockerBehaviours = derive$1([Keying.config({\n mode: 'special',\n onTab: function () {\n return Optional.some(true);\n },\n onShiftTab: function () {\n return Optional.some(true);\n }\n }), Focusing.config({})]);\n var blockSpec = getBusySpec(root, blockerBehaviours);\n var blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade(blocker));\n if (blocker.hasConfigured(Keying) && config.focus) {\n Keying.focusIn(blocker);\n }\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n state.blockWith(function () {\n return Replacing.remove(root, blocker);\n });\n };\n var unblock = function (component, config, state) {\n remove$7(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock\n });\n var BlockingSchema = [defaultedFunction('getRoot', Optional.none), defaultedBoolean('focus', true), onHandler('onBlock'), onHandler('onUnblock')];\n var init$4 = function () {\n var blocker = destroyable();\n var blockWith = function (destroy) {\n blocker.set({\n destroy: destroy\n });\n };\n return nu$8({\n readState: blocker.isSet,\n blockWith: blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n var Blocking = create$8({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n var getBusySpec$1 = function (providerBackstage) {\n return function (_root, _behaviours) {\n return {\n dom: {\n tag: 'div',\n attributes: {\n 'aria-label': providerBackstage.translate('Loading...'),\n 'tabindex': '0'\n },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{\n dom: fromHtml('')\n }]\n };\n };\n };\n var focusBusyComponent = function (throbber) {\n return Composing.getCurrent(throbber).each(function (comp) {\n return focus$3(comp.element);\n });\n };\n var toggleEditorTabIndex = function (editor, state) {\n var tabIndexAttr = 'tabindex';\n var dataTabIndexAttr = 'data-mce-' + tabIndexAttr;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(function (iframe) {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(function (tabIndex) {\n return set$8(iframe, dataTabIndexAttr, tabIndex);\n });\n set$8(iframe, tabIndexAttr, -1);\n } else {\n remove$7(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(function (tabIndex) {\n set$8(iframe, tabIndexAttr, tabIndex);\n remove$7(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n var toggleThrobber = function (editor, comp, state, providerBackstage) {\n var element = comp.element;\n toggleEditorTabIndex(editor, state);\n if (state) {\n Blocking.block(comp, getBusySpec$1(providerBackstage));\n remove$6(element, 'display');\n remove$7(element, 'aria-hidden');\n if (editor.hasFocus()) {\n focusBusyComponent(comp);\n }\n } else {\n var throbberFocus = Composing.getCurrent(comp).exists(function (busyComp) {\n return hasFocus(busyComp.element);\n });\n Blocking.unblock(comp);\n set$7(element, 'display', 'none');\n set$8(element, 'aria-hidden', 'true');\n if (throbberFocus) {\n editor.focus();\n }\n }\n };\n var renderThrobber = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: {\n 'aria-hidden': 'true'\n },\n classes: ['tox-throbber'],\n styles: {\n display: 'none'\n }\n },\n behaviours: derive$1([Replacing.config({}), Blocking.config({\n focus: false\n }), Composing.config({\n find: function (comp) {\n return head(comp.components());\n }\n })]),\n components: []\n };\n };\n var isFocusEvent = function (event) {\n return event.type === 'focusin';\n };\n var isPasteBinTarget = function (event) {\n if (isFocusEvent(event)) {\n var node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$2).exists(function (targetElm) {\n return has(targetElm, 'mce-pastebin');\n });\n } else {\n return false;\n }\n };\n var setup$7 = function (editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = value$1();\n var stealFocus = function (e) {\n if (throbberState.get() && !isPasteBinTarget(e)) {\n e.preventDefault();\n focusBusyComponent(lazyThrobber());\n editor.editorManager.setActive(editor);\n }\n };\n if (!editor.inline) {\n editor.on('PreInit', function () {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', function (e) {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n var toggle = function (state) {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n editor.fire('AfterProgressState', {\n state: state\n });\n }\n };\n editor.on('ProgressState', function (e) {\n timer.on(global$f.clearTimeout);\n if (isNumber(e.time)) {\n var timerId = global$f.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n var generate$1 = function (xs, f) {\n var init = {\n len: 0,\n list: []\n };\n var r = foldl(xs, function (b, a) {\n var value = f(a, b.len);\n return value.fold(constant$1(b), function (v) {\n return {\n len: v.finish,\n list: b.list.concat([v])\n };\n });\n }, init);\n return r.list;\n };\n var output = function (within, extra, withinWidth) {\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n var apportion = function (units, total, len) {\n var parray = generate$1(units, function (unit, current) {\n var width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width: width\n });\n });\n var within = filter$2(parray, function (unit) {\n return unit.finish <= total;\n });\n var withinWidth = foldr(within, function (acc, el) {\n return acc + el.width;\n }, 0);\n var extra = parray.slice(within.length);\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n var toUnit = function (parray) {\n return map$2(parray, function (unit) {\n return unit.element;\n });\n };\n var fitLast = function (within, extra, withinWidth) {\n var fits = toUnit(within.concat(extra));\n return output(fits, [], withinWidth);\n };\n var overflow = function (within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n var fitAll = function (within, extra, withinWidth) {\n return output(toUnit(within), [], withinWidth);\n };\n var tryFit = function (total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n var partition = function (total, units, len, overflower) {\n var divide = tryFit(total, units, len).getOrThunk(function () {\n return apportion(units, total - len(overflower), len);\n });\n var within = divide.within;\n var extra = divide.extra;\n var withinWidth = divide.withinWidth;\n if (extra.length === 1 && extra[0].width <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n var setGroups$1 = function (toolbar, storedGroups) {\n var bGroups = map$2(storedGroups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(toolbar, bGroups);\n };\n var findFocusedComp = function (comps) {\n return findMap(comps, function (comp) {\n return search(comp.element).bind(function (focusedElm) {\n return comp.getSystem().getByDom(focusedElm).toOptional();\n });\n });\n };\n var refresh$2 = function (toolbar, detail, setOverflow) {\n var builtGroups = detail.builtGroups.get();\n if (builtGroups.length === 0) {\n return;\n }\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$7(primary.element, 'visibility', 'hidden');\n var groups = builtGroups.concat([overflowGroup]);\n var focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n var availableWidth = get$a(primary.element);\n var overflows = partition(availableWidth, detail.builtGroups.get(), function (comp) {\n return get$a(comp.element);\n }, overflowGroup);\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups$1(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n remove$6(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n var schema$c = constant$1([field('splitToolbarBehaviours', [Coupling]), customField('builtGroups', function () {\n return Cell([]);\n })]);\n var schema$b = constant$1([markers$1(['overflowToggledClass']), optionFunction('getOverflowBounds'), required$1('lazySink'), customField('overflowGroups', function () {\n return Cell([]);\n })].concat(schema$c()));\n var parts$7 = constant$1([required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }), external$1({\n schema: schema$e(),\n name: 'overflow'\n }), external$1({\n name: 'overflow-button'\n }), external$1({\n name: 'overflow-group'\n })]);\n var expandable = constant$1(function (element, available) {\n setMax(element, Math.floor(available));\n });\n var schema$a = constant$1([markers$1(['toggledClass']), required$1('lazySink'), requiredFunction('fetch'), optionFunction('getBounds'), optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]), schema$y()]);\n var parts$6 = constant$1([external$1({\n name: 'button',\n overrides: function (detail) {\n return {\n dom: {\n attributes: {\n 'aria-haspopup': 'true'\n }\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: {\n mode: 'expanded'\n },\n toggleOnExecute: false\n })])\n };\n }\n }), external$1({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })]);\n var toggle = function (button, externals) {\n var toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n var position = function (button, toolbar, detail, layouts) {\n var bounds = detail.getBounds.map(function (bounder) {\n return bounder();\n });\n var sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable()\n }\n }\n }, bounds);\n };\n var setGroups = function (button, toolbar, detail, layouts, groups) {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n var makeSandbox = function (button, spec, detail) {\n var ariaOwner = manager();\n var onOpen = function (sandbox, toolbar) {\n detail.fetch().get(function (groups) {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n ariaOwner.link(button.element);\n Keying.focusIn(toolbar);\n });\n };\n var onClose = function () {\n Toggling.off(button);\n Focusing.focus(button);\n ariaOwner.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: {\n id: ariaOwner.id\n }\n },\n behaviours: derive$1([Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }), Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: function () {\n return detail.lazySink(button).getOrDie();\n }\n }), Receiving.config({\n channels: __assign(__assign({}, receivingChannel$1(__assign({\n isExtraPart: never\n }, detail.fireDismissalEventInstead.map(function (fe) {\n return {\n fireEventInstead: {\n event: fe.event\n }\n };\n }).getOr({})))), receivingChannel({\n doReposition: function () {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n }))\n })])\n };\n };\n var factory$a = function (detail, components, spec, externals) {\n return __assign(__assign({}, Button.sketch(__assign(__assign({}, externals.button()), {\n action: function (button) {\n toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({\n dump: externals.button().buttonBehaviours\n }, [Coupling.config({\n others: {\n toolbarSandbox: function (button) {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }))), {\n apis: {\n setGroups: function (button, groups) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: function (button) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: function (button) {\n toggle(button, externals);\n },\n getToolbar: function (button) {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: function (button) {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n };\n var FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$a,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: function (apis, button, groups) {\n apis.setGroups(button, groups);\n },\n reposition: function (apis, button) {\n apis.reposition(button);\n },\n toggle: function (apis, button) {\n apis.toggle(button);\n },\n getToolbar: function (apis, button) {\n return apis.getToolbar(button);\n },\n isOpen: function (apis, button) {\n return apis.isOpen(button);\n }\n }\n });\n var schema$9 = constant$1([required$1('items'), markers$1(['itemSelector']), field('tgroupBehaviours', [Keying])]);\n var parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n var factory$9 = function (detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: {\n attributes: {\n role: 'toolbar'\n }\n }\n };\n };\n var ToolbarGroup = composite({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$9\n });\n var buildGroups = function (comps) {\n return map$2(comps, function (g) {\n return premade(g);\n });\n };\n var refresh$1 = function (toolbar, memFloatingToolbarButton, detail) {\n refresh$2(toolbar, detail, function (overflowGroups) {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n var factory$8 = function (detail, components, spec, externals) {\n var memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(buildGroups(detail.overflowGroups.get()));\n });\n },\n layouts: {\n onLtr: function () {\n return [southwest$2, southeast$2];\n },\n onRtl: function () {\n return [southeast$2, southwest$2];\n },\n onBottomLtr: function () {\n return [northwest$2, northeast$2];\n },\n onBottomRtl: function () {\n return [northeast$2, northwest$2];\n }\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: {\n toggledClass: detail.markers.overflowToggledClass\n },\n parts: {\n button: externals['overflow-button'](),\n toolbar: externals.overflow()\n }\n }));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: function () {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), {\n items: [memFloatingToolbarButton.asSpec()]\n }));\n }\n }\n })]),\n apis: {\n setGroups: function (toolbar, groups) {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: function (toolbar) {\n return refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n toggle: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n isOpen: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false);\n },\n reposition: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar);\n }\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n var SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$8,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n reposition: function (apis, toolbar) {\n apis.reposition(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n }\n }\n });\n var schema$8 = constant$1([markers$1(['closedClass', 'openClass', 'shrinkingClass', 'growingClass', 'overflowToggledClass']), onHandler('onOpened'), onHandler('onClosed')].concat(schema$c()));\n var parts$4 = constant$1([required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }), required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'overflow',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([Sliding.config({\n dimension: {\n property: 'height'\n },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: function (comp) {\n getPart(comp, detail, 'overflow-button').each(function (button) {\n Toggling.off(button);\n Focusing.focus(button);\n });\n detail.onClosed(comp);\n },\n onGrown: function (comp) {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }), Keying.config({\n mode: 'acyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })])\n };\n }\n }), external$1({\n name: 'overflow-button',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: {\n mode: 'pressed'\n },\n toggleOnExecute: false\n })])\n };\n }\n }), external$1({\n name: 'overflow-group'\n })]);\n var isOpen = function (toolbar, detail) {\n return getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n };\n var toggleToolbar = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow-button').bind(function () {\n return getPart(toolbar, detail, 'overflow');\n }).each(function (overf) {\n refresh(toolbar, detail);\n Sliding.toggleGrow(overf);\n });\n };\n var refresh = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow').each(function (overflow) {\n refresh$2(toolbar, detail, function (groups) {\n var builtGroups = map$2(groups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(function (button) {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n var factory$7 = function (detail, components, spec, externals) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n var doSetGroups = function (toolbar, groups) {\n var built = map$2(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: function (toolbar) {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), {\n items: [Button.sketch(__assign(__assign({}, externals['overflow-button']()), {\n action: function (_button) {\n emit(toolbar, toolbarToggleEvent);\n }\n }))]\n }));\n }\n }\n }), config('toolbar-toggle-events', [run$1(toolbarToggleEvent, function (toolbar) {\n toggleToolbar(toolbar, detail);\n })])]),\n apis: {\n setGroups: function (toolbar, groups) {\n doSetGroups(toolbar, groups);\n refresh(toolbar, detail);\n },\n refresh: function (toolbar) {\n return refresh(toolbar, detail);\n },\n toggle: function (toolbar) {\n return toggleToolbar(toolbar, detail);\n },\n isOpen: function (toolbar) {\n return isOpen(toolbar, detail);\n }\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n var SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$7,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(toolbar);\n }\n }\n });\n var renderToolbarGroupCommon = function (toolbarGroup) {\n var attributes = toolbarGroup.title.fold(function () {\n return {};\n }, function (title) {\n return {\n attributes: {\n title: title\n }\n };\n });\n return {\n dom: __assign({\n tag: 'div',\n classes: ['tox-toolbar__group']\n }, attributes),\n components: [ToolbarGroup.parts.items({})],\n items: toolbarGroup.items,\n markers: {\n itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-js:not([disabled])'\n },\n tgroupBehaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n };\n };\n var renderToolbarGroup = function (toolbarGroup) {\n return ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n };\n var getToolbarbehaviours = function (toolbarSpec, modeName) {\n var onAttached = runOnAttached(function (component) {\n var groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([DisablingConfigs.toolbarButton(toolbarSpec.providers.isDisabled), receivingConfig(), Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }), config('toolbar-events', [onAttached])]);\n };\n var renderMoreToolbarCommon = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Optional.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n name: 'more',\n icon: Optional.some('more-drawer'),\n disabled: false,\n tooltip: Optional.some('More...'),\n primary: false,\n borderless: false\n }, Optional.none(), toolbarSpec.providers)\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n };\n };\n var renderFloatingMoreToolbar = function (toolbarSpec) {\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n var overflowXOffset = 4;\n var primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch(__assign(__assign({}, baseSpec), {\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: function () {\n var headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n var headerBounds = absolute$2(headerElem);\n var docElem = documentElement(headerElem);\n var docBounds = absolute$2(docElem);\n var height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: __assign(__assign({}, baseSpec.parts), {\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: toolbarSpec.attributes\n }\n }\n }),\n components: [primary],\n markers: {\n overflowToggledClass: 'tox-tbtn--enabled'\n }\n }));\n };\n var renderSlidingMoreToolbar = function (toolbarSpec) {\n var primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n var overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch(__assign(__assign({}, baseSpec), {\n components: [primary, overflow],\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n onOpened: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], {\n type: 'opened'\n });\n },\n onClosed: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], {\n type: 'closed'\n });\n }\n }));\n };\n var renderToolbar = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar'].concat(toolbarSpec.type === ToolbarMode.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n });\n };\n var factory$6 = function (detail, components, _spec) {\n var apis = {\n getSocket: function (comp) {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: function (comp, panelConfigs) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function (comp, name) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function (comp) {\n return parts$a.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: function (comp) {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: function (comp) {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function (comp, groups) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: function (comp, toolbars) {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(function (mToolbar) {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: function (comp) {\n var toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(function (toolbar) {\n return toolbar.getApis().refresh(toolbar);\n });\n },\n toggleToolbarDrawer: function (comp) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n mapFrom(toolbar.getApis().toggle, function (toggle) {\n return toggle(toolbar);\n });\n });\n },\n isToolbarDrawerToggled: function (comp) {\n return parts$a.getPart(comp, detail, 'toolbar').bind(function (toolbar) {\n return Optional.from(toolbar.getApis().isOpen).map(function (isOpen) {\n return isOpen(toolbar);\n });\n }).getOr(false);\n },\n getThrobber: function (comp) {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function (comp) {\n var optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(function () {\n return parts$a.getPart(comp, detail, 'multiple-toolbar');\n });\n optToolbar.each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function (comp, menus) {\n parts$a.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function (comp) {\n parts$a.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.focus(menubar);\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n behaviours: detail.behaviours\n };\n };\n var partMenubar = partType.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n var toolbarFactory = function (spec) {\n if (spec.type === ToolbarMode.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n var partMultipleToolbar = partType.optional({\n factory: {\n sketch: function (spec) {\n return CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: function () {\n return renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: function () {\n spec.onEscape();\n return Optional.some(true);\n }\n });\n },\n setupItem: function (_mToolbar, tc, data, _index) {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n });\n }\n },\n name: 'multiple-toolbar',\n schema: [required$1('dom'), required$1('onEscape')]\n });\n var partToolbar = partType.optional({\n factory: {\n sketch: function (spec) {\n var renderer = toolbarFactory(spec);\n var toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: function () {\n spec.onEscape();\n return Optional.some(true);\n },\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n providers: spec.providers,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n },\n attributes: spec.attributes\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [required$1('dom'), required$1('onEscape'), required$1('getSink')]\n });\n var partHeader = partType.optional({\n factory: {\n sketch: renderHeader\n },\n name: 'header',\n schema: [required$1('dom')]\n });\n var partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n var partSidebar = partType.optional({\n factory: {\n sketch: renderSidebar\n },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n var partThrobber = partType.optional({\n factory: {\n sketch: renderThrobber\n },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [required$1('dom'), required$1('behaviours')],\n partFields: [partHeader, partMenubar, partToolbar, partMultipleToolbar, partSocket, partSidebar, partThrobber],\n apis: {\n getSocket: function (apis, comp) {\n return apis.getSocket(comp);\n },\n setSidebar: function (apis, comp, panelConfigs) {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: function (apis, comp, name) {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: function (apis, comp) {\n return apis.whichSidebar(comp);\n },\n getHeader: function (apis, comp) {\n return apis.getHeader(comp);\n },\n getToolbar: function (apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function (apis, comp, grps) {\n var groups = map$2(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: function (apis, comp, ts) {\n var renderedToolbars = map$2(ts, function (g) {\n return map$2(g, renderToolbarGroup);\n });\n apis.setToolbars(comp, renderedToolbars);\n },\n refreshToolbar: function (apis, comp) {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: function (apis, comp) {\n apis.toggleToolbarDrawer(comp);\n },\n isToolbarDrawerToggled: function (apis, comp) {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: function (apis, comp) {\n return apis.getThrobber(comp);\n },\n setMenubar: function (apis, comp, menus) {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: function (apis, comp) {\n apis.focusMenubar(comp);\n },\n focusToolbar: function (apis, comp) {\n apis.focusToolbar(comp);\n }\n }\n });\n var defaultMenubar = 'file edit view insert format tools table help';\n var defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | export print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align lineheight | forecolor backcolor | language | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'spellchecker spellcheckerlanguage | a11ycheck code wordcount'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n var make = function (menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function () {\n return bind$3(menu.items, function (i) {\n var itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, function (removedMenuItem) {\n return removedMenuItem === itemName;\n })) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{\n type: 'separator'\n }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n });\n }\n };\n };\n var parseItemsString = function (items) {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n return items;\n };\n var identifyMenus = function (editor, registry) {\n var rawMenuData = __assign(__assign({}, defaultMenus), registry.menus);\n var userDefinedMenus = keys(registry.menus).length > 0;\n var menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n var validMenus = filter$2(menubar, function (menuName) {\n var isDefaultMenu = has$2(defaultMenus, menuName);\n if (userDefinedMenus) {\n return isDefaultMenu || get$e(registry.menus, menuName).exists(function (menu) {\n return has$2(menu, 'items');\n });\n } else {\n return isDefaultMenu;\n }\n });\n var menus = map$2(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(menus, function (menu) {\n var isNotSeparator = function (item) {\n return item.type !== 'separator';\n };\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n var fireSkinLoaded = function (editor) {\n var done = function () {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n var fireSkinLoadError = function (editor, err) {\n return function () {\n return fireSkinLoadError$1(editor, {\n message: err\n });\n };\n };\n var loadStylesheet = function (editor, stylesheetUrl, styleSheetLoader) {\n return new global$c(function (resolve, reject) {\n styleSheetLoader.load(stylesheetUrl, resolve, reject);\n editor.on('remove', function () {\n return styleSheetLoader.unload(stylesheetUrl);\n });\n });\n };\n var loadUiSkins = function (editor, skinUrl) {\n var skinUiCss = skinUrl + '/skin.min.css';\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n };\n var loadShadowDomUiSkins = function (editor, skinUrl) {\n var isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (isInShadowRoot$1) {\n var shadowDomSkinCss = skinUrl + '/skin.shadowdom.min.css';\n return loadStylesheet(editor, shadowDomSkinCss, global$b.DOM.styleSheetLoader);\n } else {\n return global$c.resolve();\n }\n };\n var loadSkin = function (isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n if (skinUrl) {\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (isSkinDisabled(editor) === false && isString(skinUrl)) {\n global$c.all([loadUiSkins(editor, skinUrl), loadShadowDomUiSkins(editor, skinUrl)]).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n } else {\n fireSkinLoaded(editor)();\n }\n };\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n var onSetupFormatToggle = function (editor, name) {\n return function (api) {\n var boundCallback = unbindable();\n var init = function () {\n api.setActive(editor.formatter.match(name));\n var binding = editor.formatter.formatChanged(name, api.setActive);\n boundCallback.set(binding);\n };\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n boundCallback.clear();\n };\n };\n };\n var onSetupEvent = function (editor, event, f) {\n return function (api) {\n var handleEvent = function () {\n return f(api);\n };\n var init = function () {\n f(api);\n editor.on(event, handleEvent);\n };\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n };\n var onActionToggleFormat$1 = function (editor) {\n return function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n };\n };\n var onActionExecCommand = function (editor, command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n var generateSelectItems = function (_editor, backstage, spec) {\n var generateItem = function (rawItem, response, disabled, value) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Optional.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n var items = bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n disabled: items.length <= 0,\n getSubmenuItems: function () {\n return bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n }\n });\n }\n } else {\n return Optional.some(__assign({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\n disabled: disabled,\n onAction: spec.onAction(rawItem)\n }, rawItem.getStylePreview().fold(function () {\n return {};\n }, function (preview) {\n return {\n meta: {\n style: preview\n }\n };\n })));\n }\n };\n var validate = function (item, response, value) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n var validateItems = function (preItems) {\n var value = spec.getCurrentValue();\n var response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, function (item) {\n return validate(item, response, value);\n });\n };\n var getFetch = function (backstage, getStyleItems) {\n return function (comp, callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n };\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n var createMenuItems = function (editor, backstage, spec) {\n var dataset = spec.dataset;\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map$2(dataset.data, function (d) {\n return processBasic(d, spec.isSelectedFor, spec.getPreviewFor);\n });\n } : dataset.getData;\n return {\n items: generateSelectItems(editor, backstage, spec),\n getStyleItems: getStyleItems\n };\n };\n var createSelectButton = function (editor, backstage, spec) {\n var _a = createMenuItems(editor, backstage, spec),\n items = _a.items,\n getStyleItems = _a.getStyleItems;\n var getApi = function (comp) {\n return {\n getComponent: constant$1(comp)\n };\n };\n var onSetup = onSetupEvent(editor, 'NodeChange', function (api) {\n var comp = api.getComponent();\n spec.updateText(comp);\n });\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Optional.none() : spec.text,\n icon: spec.icon,\n tooltip: Optional.from(spec.tooltip),\n role: Optional.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup: onSetup,\n getApi: getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: []\n }, 'tox-tbtn', backstage.shared);\n };\n var process = function (rawFormats) {\n return map$2(rawFormats, function (item) {\n var title = item,\n format = item;\n var values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title: title,\n format: format\n };\n });\n };\n var buildBasicStaticDataset = function (data) {\n return {\n type: 'basic',\n data: data\n };\n };\n var Delimiter = /*#__PURE__*/function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n return Delimiter;\n }(Delimiter || {});\n var split = function (rawFormats, delimiter) {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n var buildBasicSettingsDataset = function (editor, settingName, defaults, delimiter) {\n var rawFormats = editor.getParam(settingName, defaults, 'string');\n var data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data: data\n };\n };\n var alignMenuItems = [{\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n }, {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n }, {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n }, {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }];\n var getSpec$4 = function (editor) {\n var getMatchingValue = function () {\n return find$5(alignMenuItems, function (item) {\n return editor.formatter.match(item.format);\n });\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (_format) {\n return Optional.none;\n };\n var updateSelectMenuIcon = function (comp) {\n var match = getMatchingValue();\n var alignment = match.fold(constant$1('left'), function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, {\n icon: 'align-' + alignment\n });\n };\n var dataset = buildBasicStaticDataset(alignMenuItems);\n var onAction = function (rawItem) {\n return function () {\n return find$5(alignMenuItems, function (item) {\n return item.format === rawItem.format;\n }).each(function (item) {\n return editor.execCommand(item.command);\n });\n };\n };\n return {\n tooltip: 'Align',\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuIcon,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createAlignSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$4(editor));\n };\n var alignSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats';\n var systemStackFonts = ['-apple-system', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'sans-serif'];\n var splitFonts = function (fontFamily) {\n var fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, function (font) {\n return font.replace(/^['\"]+|['\"]+$/g, '');\n });\n };\n var isSystemFontStack = function (fontFamily) {\n var matchesSystemStack = function () {\n var fonts = splitFonts(fontFamily.toLowerCase());\n return forall(systemStackFonts, function (font) {\n return fonts.indexOf(font.toLowerCase()) > -1;\n });\n };\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n var getSpec$3 = function (editor) {\n var systemFont = 'System Font';\n var getMatchingValue = function () {\n var getFirstFont = function (fontFamily) {\n return fontFamily ? splitFonts(fontFamily)[0] : '';\n };\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n var matchOpt = find$5(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n return someIf(isSystemFontStack(font), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt: matchOpt,\n font: fontFamily\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = function (item) {\n return function () {\n return Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? {\n 'font-family': item\n } : {}\n });\n };\n };\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(),\n matchOpt = _a.matchOpt,\n font = _a.font;\n var text = matchOpt.fold(constant$1(font), function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: getCurrentValue,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$3(editor));\n };\n var fontSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('fontformats', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\n var legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n var keywordFontSizes = {\n 'xx-small': '7pt',\n 'x-small': '8pt',\n 'small': '10pt',\n 'medium': '12pt',\n 'large': '14pt',\n 'x-large': '18pt',\n 'xx-large': '24pt'\n };\n var round = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$e(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n var toLegacy = function (fontSize) {\n return get$e(legacyFontSizes, fontSize).getOr('');\n };\n var getSpec$2 = function (editor) {\n var getMatchingValue = function () {\n var matchOpt = Optional.none();\n var items = dataset.data;\n var fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n var _loop_1 = function (precision) {\n var pt = toPt(fontSize, precision);\n var legacy = toLegacy(pt);\n matchOpt = find$5(items, function (item) {\n return item.format === fontSize || item.format === pt || item.format === legacy;\n });\n };\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n return {\n matchOpt: matchOpt,\n size: fontSize\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = constant$1(Optional.none);\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(),\n matchOpt = _a.matchOpt,\n size = _a.size;\n var text = matchOpt.fold(constant$1(size), function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n text: Optional.some('12pt'),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n getCurrentValue: getCurrentValue,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontsizeSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$2(editor));\n };\n var fontsizeSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontsizes', {\n text: 'Font sizes',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n var findNearest = function (editor, getStyles) {\n var styles = getStyles();\n var formats = map$2(styles, function (style) {\n return style.format;\n });\n return Optional.from(editor.formatter.closest(formats)).bind(function (fmt) {\n return find$5(styles, function (data) {\n return data.format === fmt;\n });\n }).orThunk(function () {\n return someIf(editor.formatter.match('p'), {\n title: 'Paragraph',\n format: 'p'\n });\n });\n };\n var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';\n var getSpec$1 = function (editor) {\n var fallbackFormat = 'Paragraph';\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var detectedFormat = findNearest(editor, function () {\n return dataset.data;\n });\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createFormatSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$1(editor));\n };\n var formatSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('blockformats', {\n text: 'Blocks',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n var getSpec = function (editor, dataset) {\n var fallbackFormat = 'Paragraph';\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n var updateSelectMenuText = function (comp) {\n var getFormatItems = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n var flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n var detectedFormat = findNearest(editor, constant$1(flattenedItems));\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n return {\n tooltip: 'Formats',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n },\n dataset: dataset\n };\n };\n var createStyleSelect = function (editor, backstage) {\n var dataset = __assign({\n type: 'advanced'\n }, backstage.styleselect);\n return createSelectButton(editor, backstage, getSpec(editor, dataset));\n };\n var styleSelectMenu = function (editor, backstage) {\n var dataset = __assign({\n type: 'advanced'\n }, backstage.styleselect);\n var menuItems = createMenuItems(editor, backstage, getSpec(editor, dataset));\n editor.ui.registry.addNestedMenuItem('formats', {\n text: 'Formats',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n var events$3 = function (reflectingConfig, reflectingState) {\n var update = function (component, data) {\n reflectingConfig.updateState.each(function (updateState) {\n var newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(function (renderComponents) {\n var newComponents = renderComponents(data, reflectingState.get());\n var newChildren = map$2(newComponents, component.getSystem().build);\n replaceChildren(component, newChildren);\n });\n };\n return derive$2([run$1(receive(), function (component, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n var channel = reflectingConfig.channel;\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }), runOnAttached(function (comp, _se) {\n reflectingConfig.initialData.each(function (rawData) {\n update(comp, rawData);\n });\n })]);\n };\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$3\n });\n var getState = function (component, replaceConfig, reflectState) {\n return reflectState;\n };\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n var ReflectingSchema = [required$1('channel'), option('renderComponents'), option('updateState'), option('initialData')];\n var init$3 = function () {\n var cell = Cell(Optional.none());\n var clear = function () {\n return cell.set(Optional.none());\n };\n var readState = function () {\n return cell.get().getOr('none');\n };\n return {\n readState: readState,\n get: cell.get,\n set: cell.set,\n clear: clear\n };\n };\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$3\n });\n var Reflecting = create$8({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n var schema$7 = constant$1([required$1('toggleClass'), required$1('fetch'), onStrictHandler('onExecute'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), schema$y(), onStrictHandler('onItemExecute'), option('lazySink'), required$1('dom'), onHandler('onOpen'), field('splitDropdownBehaviours', [Coupling, Keying, Focusing]), defaulted('matchWidth', false), defaulted('useMinWidth', false), defaulted('eventOrder', {}), option('role')].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: function () {\n return {\n buttonBehaviours: derive$1([Focusing.revoke()])\n };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: {\n role: 'presentation'\n }\n },\n action: function (arrow) {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n var buttonPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'button',\n defaults: function () {\n return {\n buttonBehaviours: derive$1([Focusing.revoke()])\n };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: {\n role: 'presentation'\n }\n },\n action: function (btn) {\n btn.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n var parts$3 = constant$1([arrowPart, buttonPart, optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: {\n display: 'none'\n },\n attributes: {\n 'aria-hidden': 'true'\n },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }), external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return {\n onExecute: function (tmenu, item) {\n tmenu.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }), partType$1()]);\n var factory$5 = function (detail, components, spec, externals) {\n var _a;\n var switchToMenu = function (sandbox) {\n Composing.getCurrent(sandbox).each(function (current) {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var openMenu = function (comp) {\n action(comp);\n return Optional.some(true);\n };\n var executeOnButton = function (comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n var buttonEvents = __assign(__assign({}, derive$2([runOnAttached(function (component, _simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$6('aria');\n set$8(descriptor.element, 'id', descriptorId);\n set$8(component.element, 'aria-describedby', descriptorId);\n });\n })])), events$a(Optional.some(action)));\n var apis = {\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = ['disabling', 'toggling', 'alloy.base.behaviour'], _a)),\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [Coupling.config({\n others: {\n sandbox: function (hotspot) {\n var arrow = getPartOrDie(hotspot, detail, 'arrow');\n var extras = {\n onOpen: function () {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox$1(detail, hotspot, extras);\n }\n }\n }), Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }), Focusing.config({}), Toggling.config({\n toggleOnExecute: false,\n aria: {\n mode: 'expanded'\n }\n })]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n var SplitDropdown = composite({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: {\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n var getButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getToggleApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getTooltipAttributes = function (tooltip, providersBackstage) {\n return tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n };\n var focusButtonEvent = generate$6('focus-button');\n var renderCommonStructure = function (icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _d;\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(text.isSome() ? ['tox-tbtn--select'] : []),\n attributes: getTooltipAttributes(tooltip, providersBackstage)\n },\n components: componentRenderPipeline([icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }), text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })]),\n eventOrder: (_d = {}, _d[mousedown()] = ['focusing', 'alloy.base.behaviour', 'common-button-display-events'], _d),\n buttonBehaviours: derive$1([DisablingConfigs.toolbarButton(providersBackstage.isDisabled), receivingConfig(), config('common-button-display-events', [run$1(mousedown(), function (button, se) {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })])].concat(receiver.map(function (r) {\n return Reflecting.config({\n channel: r,\n initialData: {\n icon: icon,\n text: text\n },\n renderComponents: function (data, _state) {\n return componentRenderPipeline([data.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }), data.text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })]);\n }\n });\n }).toArray()).concat(behaviours.getOr([])))\n };\n };\n var renderFloatingToolbarButton = function (spec, backstage, identifyButtons, attributes) {\n var sharedBackstage = backstage.shared;\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n });\n },\n markers: {\n toggledClass: 'tox-tbtn--enabled'\n },\n parts: {\n button: renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.none(), sharedBackstage.providers),\n toolbar: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: attributes\n }\n }\n }\n });\n };\n var renderCommonToolbarButton = function (spec, specialisation, providersBackstage) {\n var editorOffCell = Cell(noop);\n var structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.none(), providersBackstage);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: derive$1([config('toolbar-button-events', [onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }), onControlAttached(specialisation, editorOffCell), onControlDetached(specialisation, editorOffCell)]), DisablingConfigs.toolbarButton(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }), receivingConfig()].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n var renderToolbarButton = function (spec, providersBackstage) {\n return renderToolbarButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarButtonWith = function (spec, providersBackstage, bonusEvents) {\n return renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [].concat(bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : []),\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage);\n };\n var renderToolbarToggleButton = function (spec, providersBackstage) {\n return renderToolbarToggleButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarToggleButtonWith = function (spec, providersBackstage, bonusEvents) {\n return deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [Replacing.config({}), Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: {\n mode: 'pressed'\n },\n toggleOnExecute: false\n })].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n };\n var fetchChoices = function (getApi, spec, providersBackstage) {\n return function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached(function (comp, _se) {\n detectSize(comp, 4, classForPreset(spec.presets)).each(function (_d) {\n var numRows = _d.numRows,\n numColumns = _d.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n var renderSplitButton = function (spec, sharedBackstage) {\n var _d;\n var displayChannel = generate$6('channel-update-split-dropdown-display');\n var getApi = function (comp) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(comp);\n },\n setDisabled: function (state) {\n return Disabling.set(comp, state);\n },\n setIconFill: function (id, value) {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function (id, value) {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'stroke', value);\n });\n },\n setActive: function (state) {\n set$8(comp.element, 'aria-pressed', state);\n descendant(comp.element, 'span').each(function (button) {\n comp.getSystem().getByDom(button).each(function (buttonComp) {\n return Toggling.set(buttonComp, state);\n });\n });\n },\n isActive: function () {\n return descendant(comp.element, 'span').exists(function (button) {\n return comp.getSystem().getByDom(button).exists(Toggling.isOn);\n });\n }\n };\n };\n var editorOffCell = Cell(noop);\n var specialisation = {\n getApi: getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: __assign({\n 'aria-pressed': false\n }, getTooltipAttributes(spec.tooltip, sharedBackstage.providers))\n },\n onExecute: function (button) {\n spec.onAction(getApi(button));\n },\n onItemExecute: function (_a, _b, _c) {},\n splitDropdownBehaviours: derive$1([DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled), receivingConfig(), config('split-dropdown-events', [run$1(focusButtonEvent, Focusing.focus), onControlAttached(specialisation, editorOffCell), onControlDetached(specialisation, editorOffCell)]), Unselecting.config({})]),\n eventOrder: (_d = {}, _d[attachedToDom()] = ['alloy.base.behaviour', 'split-dropdown-events'], _d),\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: {\n menu: part(false, spec.columns, spec.presets)\n },\n components: [SplitDropdown.parts.button(renderCommonStructure(spec.icon, spec.text, Optional.none(), Optional.some(displayChannel), Optional.some([Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n })]), sharedBackstage.providers)), SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: ['tox-tbtn', 'tox-split-button__chevron'],\n innerHtml: get$1('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled), receivingConfig(), addFocusableBehaviour()])\n }), SplitDropdown.parts['aria-descriptor']({\n text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter')\n })]\n });\n };\n var defaultToolbar = [{\n name: 'history',\n items: ['undo', 'redo']\n }, {\n name: 'styles',\n items: ['styleselect']\n }, {\n name: 'formatting',\n items: ['bold', 'italic']\n }, {\n name: 'alignment',\n items: ['alignleft', 'aligncenter', 'alignright', 'alignjustify']\n }, {\n name: 'indentation',\n items: ['outdent', 'indent']\n }, {\n name: 'permanent pen',\n items: ['permanentpen']\n }, {\n name: 'comments',\n items: ['addcomment']\n }];\n var renderFromBridge = function (bridgeBuilder, render) {\n return function (spec, extras, editor) {\n var internal = bridgeBuilder(spec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return render(internal, extras, editor);\n };\n };\n var types = {\n button: renderFromBridge(createToolbarButton, function (s, extras) {\n return renderToolbarButton(s, extras.backstage.shared.providers);\n }),\n togglebutton: renderFromBridge(createToggleButton, function (s, extras) {\n return renderToolbarToggleButton(s, extras.backstage.shared.providers);\n }),\n menubutton: renderFromBridge(createMenuButton, function (s, extras) {\n return renderMenuButton(s, 'tox-tbtn', extras.backstage, Optional.none());\n }),\n splitbutton: renderFromBridge(createSplitButton, function (s, extras) {\n return renderSplitButton(s, extras.backstage.shared);\n }),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, function (s, extras, editor) {\n var _a;\n var buttons = editor.ui.registry.getAll().buttons;\n var identify = function (toolbar) {\n return identifyButtons(editor, {\n buttons: buttons,\n toolbar: toolbar,\n allowToolbarGroups: false\n }, extras, Optional.none());\n };\n var attributes = (_a = {}, _a[Attribute] = extras.backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop, _a);\n switch (getToolbarMode(editor)) {\n case ToolbarMode.floating:\n return renderFloatingToolbarButton(s, extras.backstage, identify, attributes);\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\n }),\n styleSelectButton: function (editor, extras) {\n return createStyleSelect(editor, extras.backstage);\n },\n fontsizeSelectButton: function (editor, extras) {\n return createFontsizeSelect(editor, extras.backstage);\n },\n fontSelectButton: function (editor, extras) {\n return createFontSelect(editor, extras.backstage);\n },\n formatButton: function (editor, extras) {\n return createFormatSelect(editor, extras.backstage);\n },\n alignMenuButton: function (editor, extras) {\n return createAlignSelect(editor, extras.backstage);\n }\n };\n var extractFrom = function (spec, extras, editor) {\n return get$e(types, spec.type).fold(function () {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, function (render) {\n return Optional.some(render(spec, extras, editor));\n });\n };\n var bespokeButtons = {\n styleselect: types.styleSelectButton,\n fontsizeselect: types.fontsizeSelectButton,\n fontselect: types.fontSelectButton,\n formatselect: types.formatButton,\n align: types.alignMenuButton\n };\n var removeUnusedDefaults = function (buttons) {\n var filteredItemGroups = map$2(defaultToolbar, function (group) {\n var items = filter$2(group.items, function (subItem) {\n return has$2(buttons, subItem) || has$2(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter$2(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n var convertStringToolbar = function (strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, function (g) {\n return {\n items: g.trim().split(' ')\n };\n });\n };\n var isToolbarGroupSettingArray = function (toolbar) {\n return isArrayOf(toolbar, function (t) {\n return has$2(t, 'name') && has$2(t, 'items');\n });\n };\n var createToolbar = function (toolbarConfig) {\n var toolbar = toolbarConfig.toolbar;\n var buttons = toolbarConfig.buttons;\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n var lookupButton = function (editor, buttons, toolbarItem, allowToolbarGroups, extras, prefixes) {\n return get$e(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get$e(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get$e(bespokeButtons, toolbarItem.toLowerCase()).map(function (r) {\n return r(editor, extras);\n }).orThunk(function () {\n return Optional.none();\n });\n }, function (spec) {\n if (spec.type === 'grouptoolbarbutton' && !allowToolbarGroups) {\n console.warn('Ignoring the \\'' + toolbarItem + '\\' toolbar button. Group toolbar buttons are only supported when using floating toolbar mode and cannot be nested.');\n return Optional.none();\n } else {\n return extractFrom(spec, extras, editor);\n }\n });\n };\n var identifyButtons = function (editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map$2(toolbarGroups, function (group) {\n var items = bind$3(group.items, function (toolbarItem) {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, extras, prefixes).toArray();\n });\n return {\n title: Optional.from(editor.translate(group.name)),\n items: items\n };\n });\n return filter$2(groups, function (group) {\n return group.items.length > 0;\n });\n };\n var setToolbar = function (editor, uiComponents, rawUiConfig, backstage) {\n var comp = uiComponents.outerContainer;\n var toolbarConfig = rawUiConfig.toolbar;\n var toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n var toolbars = toolbarConfig.map(function (t) {\n var config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, {\n backstage: backstage\n }, Optional.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, {\n backstage: backstage\n }, Optional.none()));\n }\n };\n var detection = detect$1();\n var isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n var setupEvents$1 = function (editor, uiComponents) {\n var dom = editor.dom;\n var contentWindow = editor.getWin();\n var initialDocEle = editor.getDoc().documentElement;\n var lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n var lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n var resizeWindow = function () {\n var outer = lastWindowDimensions.get();\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n var resizeDocument = function () {\n var docEle = editor.getDoc().documentElement;\n var inner = lastDocumentDimensions.get();\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n var scroll = function (e) {\n return fireScrollContent(editor, e);\n };\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n var elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n var mothership = uiComponents.uiMothership.element;\n editor.on('hide', function () {\n set$7(mothership, 'display', 'none');\n });\n editor.on('show', function () {\n remove$6(mothership, 'display');\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', function () {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n var render$1 = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var lastToolbarWidth = Cell(0);\n var outerContainer = uiComponents.outerContainer;\n iframe(editor);\n var eTargetNode = SugarElement.fromDom(args.targetNode);\n var uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, uiComponents.mothership);\n attachSystem(uiRoot, uiComponents.uiMothership);\n editor.on('PostRender', function () {\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setSidebar(outerContainer, rawUiConfig.sidebar);\n setupEvents$1(editor, uiComponents);\n });\n var socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12) {\n setAll(socket.element, {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n var limit = first(function () {\n editor.fire('ScrollContent');\n }, 20);\n var unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n setupReadonlyModeSwitch(editor, uiComponents);\n editor.addCommand('ToggleSidebar', function (_ui, value) {\n OuterContainer.toggleSidebar(outerContainer, value);\n editor.fire('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', function () {\n return OuterContainer.whichSidebar(outerContainer);\n });\n var toolbarMode = getToolbarMode(editor);\n var refreshDrawer = function () {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n if (toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n var width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n var api = {\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n var parseToInt = function (val) {\n var re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n var numToPx = function (val) {\n return isNumber(val) ? val + 'px' : val;\n };\n var calcCappedSize = function (size, minSize, maxSize) {\n var minOverride = minSize.filter(function (min) {\n return size < min;\n });\n var maxOverride = maxSize.filter(function (max) {\n return size > max;\n });\n return minOverride.or(maxOverride).getOr(size);\n };\n var getHeight = function (editor) {\n var baseHeight = getHeightSetting(editor);\n var minHeight = getMinHeightSetting(editor);\n var maxHeight = getMaxHeightSetting(editor);\n return parseToInt(baseHeight).map(function (height) {\n return calcCappedSize(height, minHeight, maxHeight);\n });\n };\n var getHeightWithFallback = function (editor) {\n var height = getHeight(editor);\n return height.getOr(getHeightSetting(editor));\n };\n var getWidth = function (editor) {\n var baseWidth = getWidthSetting(editor);\n var minWidth = getMinWidthSetting(editor);\n var maxWidth = getMaxWidthSetting(editor);\n return parseToInt(baseWidth).map(function (width) {\n return calcCappedSize(width, minWidth, maxWidth);\n });\n };\n var getWidthWithFallback = function (editor) {\n var width = getWidth(editor);\n return width.getOr(getWidthSetting(editor));\n };\n var InlineHeader = function (editor, targetElm, uiComponents, backstage, floatContainer) {\n var uiMothership = uiComponents.uiMothership,\n outerContainer = uiComponents.outerContainer;\n var DOM = global$b.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var isSticky = isStickyToolbar(editor);\n var editorMaxWidthOpt = getMaxWidthSetting(editor).or(getWidth(editor));\n var headerBackstage = backstage.shared.header;\n var isPositionedAtTop = headerBackstage.isPositionedAtTop;\n var toolbarMode = getToolbarMode(editor);\n var isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n var visible = Cell(false);\n var isVisible = function () {\n return visible.get() && !editor.removed;\n };\n var calcToolbarOffset = function (toolbar) {\n return isSplitToolbar ? toolbar.fold(constant$1(0), function (tbar) {\n return tbar.components().length > 1 ? get$b(tbar.components()[1].element) : 0;\n }) : 0;\n };\n var calcMode = function (container) {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n var toolbar_1 = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar_1);\n var toolbarHeight = get$b(container.element) - offset;\n var targetBounds = box$1(targetElm);\n var roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n var doc = documentElement(targetElm);\n var docHeight = Math.max(doc.dom.scrollHeight, get$b(doc));\n var roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n if (roomAtBottom) {\n return 'bottom';\n } else {\n var winBounds = win();\n var isRoomAtBottomViewport = winBounds.bottom < targetBounds.bottom - toolbarHeight;\n return isRoomAtBottomViewport ? 'bottom' : 'top';\n }\n }\n case ToolbarLocation.bottom:\n return 'bottom';\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n var setupMode = function (mode) {\n var container = floatContainer.get();\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n var verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$8(container.element, Attribute, verticalDir);\n };\n var updateChromeWidth = function () {\n var maxWidth = editorMaxWidthOpt.getOrThunk(function () {\n var bodyMargin = parseToInt(get$c(body(), 'margin-left')).getOr(0);\n return get$a(body()) - absolute$3(targetElm).left + bodyMargin;\n });\n set$7(floatContainer.get().element, 'max-width', maxWidth + 'px');\n };\n var updateChromePosition = function () {\n var toolbar = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar);\n var targetBounds = box$1(targetElm);\n var top = isPositionedAtTop() ? Math.max(targetBounds.y - get$b(floatContainer.get().element) + offset, 0) : targetBounds.bottom;\n setAll(outerContainer.element, {\n position: 'absolute',\n top: Math.round(top) + 'px',\n left: Math.round(targetBounds.x) + 'px'\n });\n };\n var repositionPopups$1 = function () {\n uiMothership.broadcastOn([repositionPopups()], {});\n };\n var updateChromeUi = function (resetDocking) {\n if (resetDocking === void 0) {\n resetDocking = false;\n }\n if (!isVisible()) {\n return;\n }\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(outerContainer);\n }\n if (!useFixedToolbarContainer) {\n updateChromePosition();\n }\n if (isSticky) {\n var floatContainerComp = floatContainer.get();\n resetDocking ? Docking.reset(floatContainerComp) : Docking.refresh(floatContainerComp);\n }\n repositionPopups$1();\n };\n var updateMode = function (updateUi) {\n if (updateUi === void 0) {\n updateUi = true;\n }\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return;\n }\n var currentMode = headerBackstage.getDockingMode();\n var newMode = calcMode(floatContainer.get());\n if (newMode !== currentMode) {\n setupMode(newMode);\n if (updateUi) {\n updateChromeUi(true);\n }\n }\n };\n var show = function () {\n visible.set(true);\n set$7(outerContainer.element, 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n remove$6(uiMothership.element, 'display');\n updateMode(false);\n updateChromeUi();\n };\n var hide = function () {\n visible.set(false);\n if (uiComponents.outerContainer) {\n set$7(outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n set$7(uiMothership.element, 'display', 'none');\n };\n return {\n isVisible: isVisible,\n isPositionedAtTop: isPositionedAtTop,\n show: show,\n hide: hide,\n update: updateChromeUi,\n updateMode: updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n var getTargetPosAndBounds = function (targetElm, isToolbarTop) {\n var bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds: bounds\n };\n };\n var setupEvents = function (editor, targetElm, ui, toolbarPersist) {\n var prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n var resizeContent = function (e) {\n var _a = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()),\n pos = _a.pos,\n bounds = _a.bounds;\n var _b = prevPosAndBounds.get(),\n prevPos = _b.pos,\n prevBounds = _b.bounds;\n var hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos: pos,\n bounds: bounds\n });\n if (hasResized) {\n fireResizeContent(editor, e);\n }\n if (ui.isVisible()) {\n if (prevPos !== pos) {\n ui.update(true);\n } else if (hasResized) {\n ui.updateMode();\n ui.repositionPopups();\n }\n }\n };\n if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n editor.on('SkinLoaded ResizeWindow', function () {\n return ui.update(true);\n });\n editor.on('NodeChange keydown', function (e) {\n global$f.requestAnimationFrame(function () {\n return resizeContent(e);\n });\n });\n editor.on('ScrollWindow', function () {\n return ui.updateMode();\n });\n var elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', resizeContent));\n editor.on('remove', function () {\n elementLoad.clear();\n });\n };\n var render = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var mothership = uiComponents.mothership,\n uiMothership = uiComponents.uiMothership,\n outerContainer = uiComponents.outerContainer;\n var floatContainer = Cell(null);\n var targetElm = SugarElement.fromDom(args.targetNode);\n var ui = InlineHeader(editor, targetElm, uiComponents, backstage, floatContainer);\n var toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n var render = function () {\n if (floatContainer.get()) {\n ui.show();\n return;\n }\n floatContainer.set(OuterContainer.getHeader(outerContainer).getOrDie());\n var uiContainer = getUiContainer(editor);\n attachSystem(uiContainer, mothership);\n attachSystem(uiContainer, uiMothership);\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n ui.show();\n setupEvents(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n editor.on('show', render);\n editor.on('hide', ui.hide);\n if (!toolbarPersist) {\n editor.on('focus', render);\n editor.on('blur', ui.hide);\n }\n editor.on('init', function () {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n var api = {\n show: function () {\n ui.show();\n },\n hide: function () {\n ui.hide();\n },\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n var showContextToolbarEvent = 'contexttoolbar-show';\n var hideContextToolbarEvent = 'contexttoolbar-hide';\n var getFormApi = function (input) {\n return {\n hide: function () {\n return emit(input, sandboxClose());\n },\n getValue: function () {\n return Representing.getValue(input);\n }\n };\n };\n var runOnExecute = function (memInput, original) {\n return run$1(internalToolbarButtonExecute, function (comp, se) {\n var input = memInput.get(comp);\n var formApi = getFormApi(input);\n original.onAction(formApi, se.event.buttonApi);\n });\n };\n var renderContextButton = function (memInput, button, extras) {\n var _a = button.original;\n _a.primary;\n var rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToolbarButton(__assign(__assign({}, rest), {\n type: 'button',\n onAction: noop\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n var renderContextToggleButton = function (memInput, button, extras) {\n var _a = button.original;\n _a.primary;\n var rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToggleButton(__assign(__assign({}, rest), {\n type: 'togglebutton',\n onAction: noop\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n var generateOne = function (memInput, button, providersBackstage) {\n var extras = {\n backstage: {\n shared: {\n providers: providersBackstage\n }\n }\n };\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n var generate = function (memInput, buttons, providersBackstage) {\n var mementos = map$2(buttons, function (button) {\n return record(generateOne(memInput, button, providersBackstage));\n });\n var asSpecs = function () {\n return map$2(mementos, function (mem) {\n return mem.asSpec();\n });\n };\n var findPrimary = function (compInSystem) {\n return findMap(buttons, function (button, i) {\n if (button.primary) {\n return Optional.from(mementos[i]).bind(function (mem) {\n return mem.getOpt(compInSystem);\n }).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n };\n return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n var buildInitGroups = function (ctx, providers) {\n var inputAttributes = ctx.label.fold(function () {\n return {};\n }, function (label) {\n return {\n 'aria-label': label\n };\n });\n var memInput = record(Input.sketch({\n inputClasses: ['tox-toolbar-textfield', 'tox-toolbar-nav-js'],\n data: ctx.initValue(),\n inputAttributes: inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: function (input) {\n return commands.findPrimary(input).map(function (primary) {\n emitExecute(primary);\n return true;\n });\n },\n onLeft: function (comp, se) {\n se.cut();\n return Optional.none();\n },\n onRight: function (comp, se) {\n se.cut();\n return Optional.none();\n }\n })])\n }));\n var commands = generate(memInput, ctx.commands, providers);\n return [{\n title: Optional.none(),\n items: [memInput.asSpec()]\n }, {\n title: Optional.none(),\n items: commands.asSpecs()\n }];\n };\n var renderContextForm = function (toolbarType, ctx, providers) {\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: providers\n });\n };\n var ContextForm = {\n renderContextForm: renderContextForm,\n buildInitGroups: buildInitGroups\n };\n var isVerticalOverlap = function (a, b, threshold) {\n if (threshold === void 0) {\n threshold = 0.01;\n }\n return b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n };\n var getRangeRect = function (rng) {\n var rect = rng.getBoundingClientRect();\n if (rect.height <= 0 && rect.width <= 0) {\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n var elm = isText$1(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$2).map(function (e) {\n return e.dom.getBoundingClientRect();\n }).getOr(rect);\n } else {\n return rect;\n }\n };\n var getSelectionBounds = function (editor) {\n var rng = editor.selection.getRng();\n var rect = getRangeRect(rng);\n if (editor.inline) {\n var scroll_1 = get$9();\n return bounds(scroll_1.left + rect.left, scroll_1.top + rect.top, rect.width, rect.height);\n } else {\n var bodyPos = absolute$2(SugarElement.fromDom(editor.getBody()));\n return bounds(bodyPos.x + rect.left, bodyPos.y + rect.top, rect.width, rect.height);\n }\n };\n var getAnchorElementBounds = function (editor, lastElement) {\n return lastElement.filter(inBody).map(absolute$2).getOrThunk(function () {\n return getSelectionBounds(editor);\n });\n };\n var getHorizontalBounds = function (contentAreaBox, viewportBounds, margin) {\n var x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n var right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x: x,\n width: right - x\n };\n };\n var getVerticalBounds = function (editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) {\n var container = SugarElement.fromDom(editor.getContainer());\n var header = descendant(container, '.tox-editor-header').getOr(container);\n var headerBox = box$1(header);\n var isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n var isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n }\n var containerBounds = toolbarType === 'line' ? box$1(container) : contentAreaBox;\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom - margin, viewportBounds.bottom)\n };\n }\n return {\n y: Math.max(containerBounds.y + margin, viewportBounds.y),\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n };\n var getContextToolbarBounds = function (editor, sharedBackstage, toolbarType, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n var viewportBounds = getBounds$3(window);\n var contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds, margin),\n x = _a.x,\n width = _a.width;\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n var isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n var _b = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin),\n y = _b.y,\n bottom = _b.bottom;\n return bounds(x, y, width, bottom - y);\n }\n };\n var bubbleSize$1 = 12;\n var bubbleAlignments$1 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top'],\n inset: ['tox-pop--inset']\n };\n var anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n var isEntireElementSelected = function (editor, elem) {\n var rng = editor.selection.getRng();\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n return rng.startContainer === rng.endContainer && rng.startOffset === rng.endOffset - 1 && eq(leaf$1.element, elem);\n };\n var preservePosition = function (elem, position, f) {\n var currentPosition = getRaw(elem, 'position');\n set$7(elem, 'position', position);\n var result = f(elem);\n currentPosition.each(function (pos) {\n return set$7(elem, 'position', pos);\n });\n return result;\n };\n var shouldUseInsetLayouts = function (position) {\n return position === 'node';\n };\n var determineInsetLayout = function (editor, contextbar, elem, data, bounds) {\n var selectionBounds = getSelectionBounds(editor);\n var isSameAnchorElement = data.lastElement().exists(function (prev) {\n return eq(elem, prev);\n });\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), function () {\n var isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar));\n return isOverlapping && !data.isReposition() ? flip$2 : preserve;\n });\n } else {\n var yBounds = data.getMode() === 'fixed' ? bounds.y + get$9().top : bounds.y;\n var contextbarHeight = get$b(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n var getAnchorSpec$2 = function (editor, mobile, data, position) {\n var smartInsetLayout = function (elem) {\n return function (anchor, element, bubbles, placee, bounds) {\n var layout = determineInsetLayout(editor, placee, elem, data, bounds);\n var newAnchor = __assign(__assign({}, anchor), {\n y: bounds.y,\n height: bounds.height\n });\n return __assign(__assign({}, layout(newAnchor, element, bubbles, placee, bounds)), {\n alwaysFit: true\n });\n };\n };\n var getInsetLayouts = function (elem) {\n return shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n };\n var desktopAnchorSpecLayouts = {\n onLtr: function (elem) {\n return [north$2, south$2, northeast$2, southeast$2, northwest$2, southwest$2].concat(getInsetLayouts(elem));\n },\n onRtl: function (elem) {\n return [north$2, south$2, northwest$2, southwest$2, northeast$2, southeast$2].concat(getInsetLayouts(elem));\n }\n };\n var mobileAnchorSpecLayouts = {\n onLtr: function (elem) {\n return [south$2, southeast$2, southwest$2, northeast$2, northwest$2, north$2].concat(getInsetLayouts(elem));\n },\n onRtl: function (elem) {\n return [south$2, southwest$2, southeast$2, northwest$2, northeast$2, north$2].concat(getInsetLayouts(elem));\n }\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n var getAnchorLayout = function (editor, position, isTouch, data) {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: function () {\n return [east$2];\n },\n onRtl: function () {\n return [west$2];\n }\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$5(0, bubbleSize$1, bubbleAlignments$1, 1 / bubbleSize$1),\n layouts: getAnchorSpec$2(editor, isTouch, data, position),\n overrides: anchorOverrides\n };\n }\n };\n var matchTargetWith = function (elem, candidates) {\n var ctxs = filter$2(candidates, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom);\n });\n var _a = partition$3(ctxs, function (t) {\n return t.type === 'contexttoolbar';\n }),\n pass = _a.pass,\n fail = _a.fail;\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n var filterByPositionForStartNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var doesPositionExist = function (value) {\n return exists(toolbars, function (t) {\n return t.position === value;\n });\n };\n var filterToolbarsByPosition = function (value) {\n return filter$2(toolbars, function (t) {\n return t.position === value;\n });\n };\n var hasSelectionToolbars = doesPositionExist('selection');\n var hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n var nodeToolbars = filterToolbarsByPosition('node');\n var selectionToolbars = map$2(filterToolbarsByPosition('selection'), function (t) {\n return __assign(__assign({}, t), {\n position: 'node'\n });\n });\n return nodeToolbars.concat(selectionToolbars);\n } else {\n return hasSelectionToolbars ? filterToolbarsByPosition('selection') : filterToolbarsByPosition('node');\n }\n } else {\n return filterToolbarsByPosition('line');\n }\n }\n };\n var filterByPositionForAncestorNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var findPosition_1 = function (value) {\n return find$5(toolbars, function (t) {\n return t.position === value;\n });\n };\n var basePosition = findPosition_1('selection').orThunk(function () {\n return findPosition_1('node');\n }).orThunk(function () {\n return findPosition_1('line');\n }).map(function (t) {\n return t.position;\n });\n return basePosition.fold(function () {\n return [];\n }, function (pos) {\n return filter$2(toolbars, function (t) {\n return t.position === pos;\n });\n });\n }\n };\n var matchStartNode = function (elem, nodeCandidates, editorCandidates) {\n var nodeMatches = matchTargetWith(elem, nodeCandidates);\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n var editorMatches = matchTargetWith(elem, editorCandidates);\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n var toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem: elem,\n toolbars: toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n var matchAncestor = function (isRoot, startNode, scopes) {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, function (ancestorElem) {\n if (isElement$2(ancestorElem)) {\n var _a = matchTargetWith(ancestorElem, scopes.inNodeScope),\n contextToolbars = _a.contextToolbars,\n contextForms = _a.contextForms;\n var toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars: toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n var lookup$1 = function (scopes, editor) {\n var rootElem = SugarElement.fromDom(editor.getBody());\n var isRoot = function (elem) {\n return eq(elem, rootElem);\n };\n var isOutsideRoot = function (startNode) {\n return !isRoot(startNode) && !contains(rootElem, startNode);\n };\n var startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(function () {\n return matchAncestor(isRoot, startNode, scopes);\n });\n };\n var categorise = function (contextToolbars, navigate) {\n var forms = {};\n var inNodeScope = [];\n var inEditorScope = [];\n var formNavigators = {};\n var lookupTable = {};\n var registerForm = function (key, toolbarSpec) {\n var contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(function (launch) {\n formNavigators['form:' + key + ''] = __assign(__assign({}, toolbarSpec.launch), {\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: function () {\n navigate(contextForm);\n }\n });\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n var registerToolbar = function (key, toolbarSpec) {\n createContextToolbar(toolbarSpec).each(function (contextToolbar) {\n if (toolbarSpec.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n var keys$1 = keys(contextToolbars);\n each$1(keys$1, function (key) {\n var toolbarApi = contextToolbars[key];\n if (toolbarApi.type === 'contextform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms: forms,\n inNodeScope: inNodeScope,\n inEditorScope: inEditorScope,\n lookupTable: lookupTable,\n formNavigators: formNavigators\n };\n };\n var forwardSlideEvent = generate$6('forward-slide');\n var backSlideEvent = generate$6('backward-slide');\n var changeSlideEvent = generate$6('change-slide-event');\n var resizingClass = 'tox-pop--resizing';\n var renderContextToolbar = function (spec) {\n var stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: {\n event: 'doNotDismissYet'\n },\n onShow: function (comp) {\n stack.set([]);\n InlineView.getContent(comp).each(function (c) {\n remove$6(c.element, 'visibility');\n });\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n },\n inlineBehaviours: derive$1([config('context-toolbar-events', [runOnSource(transitionend(), function (comp, se) {\n if (se.event.raw.propertyName === 'width') {\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n }\n }), run$1(changeSlideEvent, function (comp, se) {\n var elem = comp.element;\n remove$6(elem, 'width');\n var currentWidth = get$a(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n var newWidth = get$a(elem);\n set$7(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event.focus.bind(function (f) {\n focus$3(f);\n return search(elem);\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active(getRootNode(elem));\n });\n });\n global$f.setTimeout(function () {\n set$7(comp.element, 'width', newWidth + 'px');\n }, 0);\n }), run$1(forwardSlideEvent, function (comp, se) {\n InlineView.getContent(comp).each(function (oldContents) {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }), run$1(backSlideEvent, function (comp, _se) {\n last$2(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade(last.bar),\n focus: last.focus\n });\n });\n })]), Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n return last$2(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n });\n }\n })]),\n lazySink: function () {\n return Result.value(spec.sink);\n }\n });\n };\n var transitionClass = 'tox-pop--transition';\n var register$7 = function (editor, registryContextToolbars, sink, extras) {\n var backstage = extras.backstage;\n var sharedBackstage = backstage.shared;\n var isTouch = detect$1().deviceType.isTouch;\n var lastElement = value$1();\n var lastTrigger = value$1();\n var lastContextPosition = value$1();\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function () {\n editor.focus();\n return Optional.some(true);\n }\n }));\n var getBounds = function () {\n var position = lastContextPosition.get().getOr('node');\n var margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n var canLaunchToolbar = function () {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n var isSameLaunchElement = function (elem) {\n return is$1(lift2(elem, lastElement.get(), eq), true);\n };\n var shouldContextToolbarHide = function () {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n var contextToolbarBounds = getBounds();\n var anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds);\n }\n };\n var close = function () {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n var hideOrRepositionIfNecessary = function () {\n if (InlineView.isOpen(contextbar)) {\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\n var wrapInPopDialog = function (toolbarSpec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic'\n }), config('pop-dialog-wrap-events', [runOnAttached(function (comp) {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', function () {\n return Keying.focusIn(comp);\n });\n }), runOnDetached(function (_comp) {\n editor.shortcuts.remove('ctrl+F9');\n })])])\n };\n };\n var getScopes = cached(function () {\n return categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, {\n forwardContents: wrapInPopDialog(alloySpec)\n });\n });\n });\n var buildContextToolbarGroups = function (allButtons, ctx) {\n return identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras, Optional.some(['form:']));\n };\n var buildContextFormGroups = function (ctx, providers) {\n return ContextForm.buildInitGroups(ctx, providers);\n };\n var buildToolbar = function (toolbars) {\n var buttons = editor.ui.registry.getAll().buttons;\n var scopes = getScopes();\n var allButtons = __assign(__assign({}, buttons), scopes.formNavigators);\n var toolbarType = getToolbarMode(editor) === ToolbarMode.scrolling ? ToolbarMode.scrolling : ToolbarMode.default;\n var initGroups = flatten(map$2(toolbars, function (ctx) {\n return ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextFormGroups(ctx, sharedBackstage.providers);\n }));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n var getAnchor = function (position, element) {\n var anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n var anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: function () {\n return is$1(lastTrigger.get(), 0);\n },\n getMode: function () {\n return Positioning.getMode(sink);\n }\n });\n return deepMerge(anchorage, anchorLayout);\n };\n var launchContext = function (toolbarApi, elem) {\n launchContextToolbar.cancel();\n if (!canLaunchToolbar()) {\n return;\n }\n var toolbarSpec = buildToolbar(toolbarApi);\n var position = toolbarApi[0].position;\n var anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (!isSameLaunchElement(elem)) {\n remove$2(contextBarEle, transitionClass);\n Positioning.reset(sink, contextbar);\n }\n InlineView.showWithinBounds(contextbar, wrapInPopDialog(toolbarSpec), {\n anchor: anchor,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, function () {\n return Optional.some(getBounds());\n });\n elem.fold(lastElement.clear, lastElement.set);\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n }\n };\n var launchContextToolbar = last(function () {\n if (!editor.hasFocus() || editor.removed) {\n return;\n }\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n var scopes = getScopes();\n lookup$1(scopes, editor).fold(close, function (info) {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', function () {\n editor.on('remove', close);\n editor.on('ScrollContent ScrollWindow ObjectResized ResizeEditor longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent', launchContextToolbar.throttle);\n editor.on(hideContextToolbarEvent, close);\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n get$e(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n editor.on('focusout', function (_e) {\n global$f.setEditorTimeout(editor, function () {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', function () {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('AfterProgressState', function (event) {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('NodeChange', function (_e) {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n var register$6 = function (editor) {\n var alignToolbarButtons = [{\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n }, {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n }, {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n }, {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }];\n each$1(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n icon: item.icon,\n onAction: onActionExecCommand(editor, item.cmd),\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n editor.ui.registry.addButton('alignnone', {\n tooltip: 'No alignment',\n icon: 'align-none',\n onAction: onActionExecCommand(editor, 'JustifyNone')\n });\n };\n var units = {\n unsupportedLength: ['em', 'ex', 'cap', 'ch', 'ic', 'rem', 'lh', 'rlh', 'vw', 'vh', 'vi', 'vb', 'vmin', 'vmax', 'cm', 'mm', 'Q', 'in', 'pc', 'pt', 'px'],\n fixed: ['px', 'pt'],\n relative: ['%'],\n empty: ['']\n };\n var pattern = function () {\n var decimalDigits = '[0-9]+';\n var signedInteger = '[+-]?' + decimalDigits;\n var exponentPart = '[eE]' + signedInteger;\n var dot = '\\\\.';\n var opt = function (input) {\n return '(?:' + input + ')?';\n };\n var unsignedDecimalLiteral = ['Infinity', decimalDigits + dot + opt(decimalDigits) + opt(exponentPart), dot + decimalDigits + opt(exponentPart), decimalDigits + opt(exponentPart)].join('|');\n var float = '[+-]?(?:' + unsignedDecimalLiteral + ')';\n return new RegExp('^(' + float + ')(.*)$');\n }();\n var isUnit = function (unit, accepted) {\n return exists(accepted, function (acc) {\n return exists(units[acc], function (check) {\n return unit === check;\n });\n });\n };\n var parse = function (input, accepted) {\n var match = Optional.from(pattern.exec(input));\n return match.bind(function (array) {\n var value = Number(array[1]);\n var unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value: value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n var normalise = function (input, accepted) {\n return parse(input, accepted).map(function (_a) {\n var value = _a.value,\n unit = _a.unit;\n return value + unit;\n });\n };\n var registerController = function (editor, spec) {\n var getMenuItems = function () {\n var options = spec.getOptions(editor);\n var initial = spec.getCurrent(editor).map(spec.hash);\n var current = value$1();\n return map$2(options, function (value) {\n return {\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: function (api) {\n var setActive = function (active) {\n if (active) {\n current.on(function (oldApi) {\n return oldApi.setActive(false);\n });\n current.set(api);\n }\n api.setActive(active);\n };\n setActive(is$1(initial, spec.hash(value)));\n var unbindWatcher = spec.watcher(editor, value, setActive);\n return function () {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: function () {\n return spec.setCurrent(editor, value);\n }\n };\n });\n };\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: function (callback) {\n return callback(getMenuItems());\n },\n onSetup: spec.onToolbarSetup\n });\n editor.ui.registry.addNestedMenuItem(spec.name, {\n type: 'nestedmenuitem',\n text: spec.text,\n getSubmenuItems: getMenuItems,\n onSetup: spec.onMenuSetup\n });\n };\n var lineHeightSpec = {\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: function (input) {\n return normalise(input, ['fixed', 'relative', 'empty']).getOr(input);\n },\n display: identity$1,\n watcher: function (editor, value, callback) {\n return editor.formatter.formatChanged('lineheight', callback, false, {\n value: value\n }).unbind;\n },\n getCurrent: function (editor) {\n return Optional.from(editor.queryCommandValue('LineHeight'));\n },\n setCurrent: function (editor, value) {\n return editor.execCommand('LineHeight', false, value);\n }\n };\n var languageSpec = function (editor) {\n var settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(function (settings) {\n return {\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: function (input) {\n return isUndefined(input.customCode) ? input.code : input.code + '/' + input.customCode;\n },\n display: function (input) {\n return input.title;\n },\n watcher: function (editor, value, callback) {\n return editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: value.customCode\n }).unbind;\n },\n getCurrent: function (editor) {\n var node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, function (n) {\n return Optional.some(n).filter(isElement$2).bind(function (ele) {\n var codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(function (code) {\n var customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code: code,\n customCode: customCode,\n title: ''\n };\n });\n });\n });\n },\n setCurrent: function (editor, lang) {\n return editor.execCommand('Lang', false, lang);\n },\n onToolbarSetup: function (api) {\n var unbinder = unbindable();\n api.setActive(editor.formatter.match('lang', {}, undefined, true));\n unbinder.set(editor.formatter.formatChanged('lang', api.setActive, true));\n return unbinder.clear;\n }\n };\n });\n };\n var register$5 = function (editor) {\n registerController(editor, lineHeightSpec);\n languageSpec(editor).each(function (spec) {\n return registerController(editor, spec);\n });\n };\n var register$4 = function (editor, backstage) {\n alignSelectMenu(editor, backstage);\n fontSelectMenu(editor, backstage);\n styleSelectMenu(editor, backstage);\n formatSelectMenu(editor, backstage);\n fontsizeSelectMenu(editor, backstage);\n };\n var onSetupOutdentState = function (editor) {\n return onSetupEvent(editor, 'NodeChange', function (api) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n });\n };\n var registerButtons$2 = function (editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: onSetupOutdentState(editor),\n onAction: onActionExecCommand(editor, 'outdent')\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: onActionExecCommand(editor, 'indent')\n });\n };\n var register$3 = function (editor) {\n registerButtons$2(editor);\n };\n var onActionToggleFormat = function (editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n var registerFormatButtons = function (editor) {\n global$5.each([{\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n }, {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n }, {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n }, {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n }, {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n }, {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }], function (btn, _idx) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupFormatToggle(editor, btn.name),\n onAction: onActionToggleFormat(editor, btn.name)\n });\n });\n for (var i = 1; i <= 6; i++) {\n var name_1 = 'h' + i;\n editor.ui.registry.addToggleButton(name_1, {\n text: name_1.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name_1),\n onAction: onActionToggleFormat(editor, name_1)\n });\n }\n };\n var registerCommandButtons = function (editor) {\n global$5.each([{\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n }, {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n }, {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n }, {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n }, {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n }, {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n }, {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n }, {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n }], function (btn) {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n };\n var registerCommandToggleButtons = function (editor) {\n global$5.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], function (btn) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n var registerButtons$1 = function (editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n var registerMenuItems$2 = function (editor) {\n global$5.each([{\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n }, {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n }, {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n }, {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through',\n shortcut: ''\n }, {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript',\n shortcut: ''\n }, {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript',\n shortcut: ''\n }, {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting',\n shortcut: ''\n }, {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document',\n shortcut: ''\n }, {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n }, {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n }, {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n }, {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n }], function (btn) {\n editor.ui.registry.addMenuItem(btn.name, {\n text: btn.text,\n icon: btn.icon,\n shortcut: btn.shortcut,\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n var register$2 = function (editor) {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n var onSetupUndoRedoState = function (editor, type) {\n return onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function (api) {\n api.setDisabled(editor.mode.isReadOnly() || !editor.undoManager[type]());\n });\n };\n var registerMenuItems$1 = function (editor) {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n var registerButtons = function (editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n var register$1 = function (editor) {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n var onSetupVisualAidState = function (editor) {\n return onSetupEvent(editor, 'VisualAid', function (api) {\n api.setActive(editor.hasVisual);\n });\n };\n var registerMenuItems = function (editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n var registerToolbarButton = function (editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n var register = function (editor) {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n var setup$6 = function (editor, backstage) {\n register$6(editor);\n register$2(editor);\n register$4(editor, backstage);\n register$1(editor);\n register$a(editor);\n register(editor);\n register$3(editor);\n register$5(editor);\n };\n var nu = function (x, y) {\n return {\n type: 'makeshift',\n x: x,\n y: y\n };\n };\n var transpose = function (pos, dx, dy) {\n return nu(pos.x + dx, pos.y + dy);\n };\n var isTouchEvent = function (e) {\n return e.type === 'longpress' || e.type.indexOf('touch') === 0;\n };\n var fromPageXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n var fromClientXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n var transposeContentAreaContainer = function (element, pos) {\n var containerPos = global$b.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n var getPointAnchor = function (editor, e) {\n if (e.type === 'contextmenu' || e.type === 'longpress') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n var getSelectionAnchor = function (editor) {\n return {\n type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n var getNodeAnchor = function (editor) {\n return {\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n };\n };\n var getAnchorSpec$1 = function (editor, e, anchorType) {\n switch (anchorType) {\n case 'node':\n return getNodeAnchor(editor);\n case 'point':\n return getPointAnchor(editor, e);\n case 'selection':\n return getSelectionAnchor(editor);\n }\n };\n var initAndShow$1 = function (editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var items = buildMenu();\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, {\n anchor: anchorSpec\n }, {\n menu: {\n markers: markers('normal')\n },\n data: menuData\n });\n });\n };\n var layouts = {\n onLtr: function () {\n return [south$2, southeast$2, southwest$2, northeast$2, northwest$2, north$2, north, south, northeast, southeast, northwest, southwest];\n },\n onRtl: function () {\n return [south$2, southwest$2, southeast$2, northwest$2, northeast$2, north$2, north, south, northwest, southwest, northeast, southeast];\n }\n };\n var bubbleSize = 12;\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n var isTouchWithinSelection = function (editor, e) {\n var selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n var touch_1 = e.touches[0];\n var rng = selection.getRng();\n var rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(function (rngRect) {\n return rngRect.left <= touch_1.clientX && rngRect.right >= touch_1.clientX && rngRect.top <= touch_1.clientY && rngRect.bottom >= touch_1.clientY;\n });\n }\n };\n var setupiOSOverrides = function (editor) {\n var originalSelection = editor.selection.getRng();\n var selectionReset = function () {\n global$f.setEditorTimeout(editor, function () {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n var preventMousedown = function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n var clearSelectionReset = function () {\n return unbindEventListeners();\n };\n editor.once('longpresscancel', clearSelectionReset);\n var unbindEventListeners = function () {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n var getAnchorSpec = function (editor, e, anchorType) {\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n var bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return __assign({\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n }\n }, anchorSpec);\n };\n var show = function (editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) {\n var anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, {\n anchor: anchorSpec\n }, {\n menu: {\n markers: markers('normal'),\n highlightImmediately: highlightImmediately\n },\n data: menuData,\n type: 'horizontal'\n }, function () {\n return Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection'));\n });\n editor.fire(hideContextToolbarEvent);\n });\n };\n var initAndShow = function (editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var detection = detect$1();\n var isiOS = detection.os.isiOS();\n var isOSX = detection.os.isOSX();\n var isAndroid = detection.os.isAndroid();\n var isTouch = detection.deviceType.isTouch();\n var shouldHighlightImmediately = function () {\n return !(isAndroid || isiOS || isOSX && isTouch);\n };\n var open = function () {\n var items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n if ((isOSX || isiOS) && anchorType !== 'node') {\n var openiOS_1 = function () {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS_1();\n } else {\n editor.once('selectionchange', openiOS_1);\n editor.once('touchend', function () {\n return editor.off('selectionchange', openiOS_1);\n });\n }\n } else {\n open();\n }\n };\n var patchPipeConfig = function (config) {\n return typeof config === 'string' ? config.split(/[ ,]/) : config;\n };\n var shouldNeverUseNative = function (editor) {\n return editor.getParam('contextmenu_never_use_native', false, 'boolean');\n };\n var getMenuItems = function (editor, name, defaultItems) {\n var contextMenus = editor.ui.registry.getAll().contextMenus;\n return Optional.from(editor.getParam(name)).map(patchPipeConfig).getOrThunk(function () {\n return filter$2(patchPipeConfig(defaultItems), function (item) {\n return has$2(contextMenus, item);\n });\n });\n };\n var isContextMenuDisabled = function (editor) {\n return editor.getParam('contextmenu') === false;\n };\n var getContextMenu = function (editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n var getAvoidOverlapSelector = function (editor) {\n return editor.getParam('contextmenu_avoid_overlap', '', 'string');\n };\n var isSeparator = function (item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n var separator = {\n type: 'separator'\n };\n var makeContextItem = function (item) {\n var commonMenuItem = function (item) {\n return {\n text: item.text,\n icon: item.icon,\n disabled: item.disabled,\n shortcut: item.shortcut\n };\n };\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator;\n case 'submenu':\n return __assign(__assign({\n type: 'nestedmenuitem'\n }, commonMenuItem(item)), {\n getSubmenuItems: function () {\n var items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map$2(items, makeContextItem);\n }\n }\n });\n default:\n return __assign(__assign({\n type: 'menuitem'\n }, commonMenuItem(item)), {\n onAction: noarg(item.onAction)\n });\n }\n }\n };\n var addContextMenuGroup = function (xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n var lastMenuItem = last$2(xs).filter(function (item) {\n return !isSeparator(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator];\n });\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n var generateContextMenu = function (contextMenus, menuConfig, selectedElement) {\n var sections = foldl(menuConfig, function (acc, name) {\n return get$e(contextMenus, name.toLowerCase()).map(function (menu) {\n var items = menu.update(selectedElement);\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n var allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(function () {\n return acc.concat([name]);\n });\n }, []);\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n var isNativeOverrideKeyEvent = function (editor, e) {\n return e.ctrlKey && !shouldNeverUseNative(editor);\n };\n var isTriggeredByKeyboard = function (editor, e) {\n return e.type !== 'longpress' && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n };\n var getSelectedElement = function (editor, e) {\n return isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n };\n var getAnchorType = function (editor, e) {\n var selector = getAvoidOverlapSelector(editor);\n var anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n if (isNotEmpty(selector)) {\n var target = getSelectedElement(editor, e);\n var selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n var setup$5 = function (editor, lazySink, backstage) {\n var detection = detect$1();\n var isTouch = detection.deviceType.isTouch;\n var contextmenu = build$1(InlineView.sketch({\n dom: {\n tag: 'div'\n },\n lazySink: lazySink,\n onEscape: function () {\n return editor.focus();\n },\n onShow: function () {\n return backstage.setContextMenuState(true);\n },\n onHide: function () {\n return backstage.setContextMenuState(false);\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), function (comp, _se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n var hideContextMenu = function (_e) {\n return InlineView.hide(contextmenu);\n };\n var showContextMenu = function (e) {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n var anchorType = getAnchorType(editor, e);\n var buildMenu = function () {\n var selectedElement = getSelectedElement(editor, e);\n var registry = editor.ui.registry.getAll();\n var menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n var initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n editor.on('init', function () {\n var hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n var adt = Adt.generate([{\n offset: ['x', 'y']\n }, {\n absolute: ['x', 'y']\n }, {\n fixed: ['x', 'y']\n }]);\n var subtract = function (change) {\n return function (point) {\n return point.translate(-change.left, -change.top);\n };\n };\n var add = function (change) {\n return function (point) {\n return point.translate(change.left, change.top);\n };\n };\n var transform = function (changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, SugarPosition(x, y));\n };\n };\n var asFixed = function (coord, scroll, origin) {\n return coord.fold(transform([add(origin), subtract(scroll)]), transform([subtract(scroll)]), transform([]));\n };\n var asAbsolute = function (coord, scroll, origin) {\n return coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n };\n var asOffset = function (coord, scroll, origin) {\n return coord.fold(transform([]), transform([subtract(origin)]), transform([add(scroll), subtract(origin)]));\n };\n var withinRange = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left - a2.left) <= xRange && Math.abs(a1.top - a2.top) <= yRange;\n };\n var getDeltas = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n var left = Math.abs(a1.left - a2.left);\n var top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n var toStyles = function (coord, scroll, origin) {\n var stylesOpt = coord.fold(function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n });\n return __assign({\n right: Optional.none(),\n bottom: Optional.none()\n }, stylesOpt);\n };\n var translate = function (coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return absolute(x + deltaX, y + deltaY);\n }, function (x, y) {\n return fixed(x + deltaX, y + deltaY);\n });\n };\n var absorb = function (partialCoord, originalCoord, scroll, origin) {\n var absorbOne = function (stencil, nu) {\n return function (optX, optY) {\n var original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left), optY.getOr(original.top));\n };\n };\n return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n var offset = adt.offset;\n var absolute = adt.absolute;\n var fixed = adt.fixed;\n var parseAttrToInt = function (element, name) {\n var value = get$d(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n var get = function (component, snapsInfo) {\n var element = component.element;\n var x = parseAttrToInt(element, snapsInfo.leftAttr);\n var y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n var set = function (component, snapsInfo, pt) {\n var element = component.element;\n set$8(element, snapsInfo.leftAttr, pt.left + 'px');\n set$8(element, snapsInfo.topAttr, pt.top + 'px');\n };\n var clear = function (component, snapsInfo) {\n var element = component.element;\n remove$7(element, snapsInfo.leftAttr);\n remove$7(element, snapsInfo.topAttr);\n };\n var getCoords = function (component, snapInfo, coord, delta) {\n return get(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed$1) {\n return fixed(fixed$1.left + delta.left, fixed$1.top + delta.top);\n });\n };\n var moveOrSnap = function (component, snapInfo, coord, delta, scroll, origin) {\n var newCoord = getCoords(component, snapInfo, coord, delta);\n var snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n var fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.none()\n };\n }, function (spanned) {\n return {\n coord: spanned.output,\n extra: spanned.extra\n };\n });\n };\n var stopDrag = function (component, snapInfo) {\n clear(component, snapInfo);\n };\n var findMatchingSnap = function (snaps, newCoord, scroll, origin) {\n return findMap(snaps, function (snap) {\n var sensor = snap.sensor;\n var inRange = withinRange(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return inRange ? Optional.some({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }) : Optional.none();\n });\n };\n var findClosestSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n var matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(function () {\n var bestSnap = foldl(snaps, function (acc, snap) {\n var sensor = snap.sensor;\n var deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(function () {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n }, function (bestDeltas) {\n var currAvg = (deltas.left + deltas.top) / 2;\n var bestAvg = (bestDeltas.left + bestDeltas.top) / 2;\n if (currAvg <= bestAvg) {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Optional.none(),\n snap: Optional.none()\n });\n return bestSnap.snap.map(function (snap) {\n return {\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n };\n });\n });\n };\n var findSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n var snapTo$1 = function (snap, scroll, origin) {\n return {\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n };\n };\n var snapTo = function (component, dragConfig, _state, snap) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var snapPin = snapTo$1(snap, scroll_1, origin_1);\n var styles = toStyles(snapPin.coord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n };\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n var initialAttribute = 'data-initial-z-index';\n var resetZIndex = function (blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getOpt(root, initialAttribute).fold(function () {\n return remove$6(root, 'z-index');\n }, function (zIndex) {\n return set$7(root, 'z-index', zIndex);\n });\n remove$7(root, initialAttribute);\n });\n };\n var changeZIndex = function (blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$8(root, initialAttribute, zindex);\n });\n set$7(root, 'z-index', get$c(blocker.element, 'z-index'));\n });\n };\n var instigate = function (anyComponent, blocker) {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n var discard = function (blocker) {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n var createComponent = function (component, blockerClass, blockerEvents) {\n return component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [blockerClass]\n },\n events: blockerEvents\n }));\n };\n var SnapSchema = optionObjOf('snaps', [required$1('getSnapPoints'), onHandler('onSensor'), required$1('leftAttr'), required$1('topAttr'), defaulted('lazyViewport', win), defaulted('mustSnap', false)]);\n var schema$6 = [defaulted('useFixed', never), required$1('blockerClass'), defaulted('getTarget', identity$1), defaulted('onDrag', noop), defaulted('repositionTarget', true), defaulted('onDrop', noop), defaultedFunction('getBounds', win), SnapSchema];\n var getCurrentCoord = function (target) {\n return lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), function (left, top, position) {\n var nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(function () {\n var location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n };\n var clampCoords = function (component, coords, scroll, origin, startData) {\n var bounds = startData.bounds;\n var absoluteCoord = asAbsolute(coords, scroll, origin);\n var newX = clamp$1(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n var newY = clamp$1(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n var newCoords = absolute(newX, newY);\n return coords.fold(function () {\n var offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), function () {\n var fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n var calcNewCoord = function (component, optSnaps, currentCoord, scroll, origin, delta, startData) {\n var newCoord = optSnaps.fold(function () {\n var translated = translate(currentCoord, delta.left, delta.top);\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed(fixedCoord.left, fixedCoord.top);\n }, function (snapInfo) {\n var snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(function (extra) {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n var dragBy = function (component, dragConfig, startData, delta) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var currentCoord = getCurrentCoord(target);\n var newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll_1, origin_1, delta, startData);\n var styles = toStyles(newCoord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n var calcStartData = function (dragConfig, comp) {\n return {\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n };\n };\n var move = function (component, dragConfig, dragState, dragMode, event) {\n var delta = dragState.update(dragMode, event);\n var dragStartData = dragState.getStartData().getOrThunk(function () {\n return calcStartData(dragConfig, component);\n });\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n var stop = function (component, blocker, dragConfig, dragState) {\n blocker.each(discard);\n dragConfig.snaps.each(function (snapInfo) {\n stopDrag(component, snapInfo);\n });\n var target = dragConfig.getTarget(component.element);\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n var handlers = function (events) {\n return function (dragConfig, dragState) {\n var updateStartState = function (comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive$2(__spreadArray([run$1(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n })], events(dragConfig, dragState, updateStartState), true));\n };\n };\n var init$2 = function (dragApi) {\n return derive$2([run$1(mousedown(), dragApi.forceDrop), run$1(mouseup(), dragApi.drop), run$1(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n }), run$1(mouseout(), dragApi.delayDrop)]);\n };\n var getData$1 = function (event) {\n return Optional.from(SugarPosition(event.x, event.y));\n };\n var getDelta$1 = function (old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n var MouseData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData$1,\n getDelta: getDelta$1\n });\n var events$2 = function (dragConfig, dragState, updateStartState) {\n return [run$1(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n var stop$1 = function () {\n return stop(component, Optional.some(blocker), dragConfig, dragState);\n };\n var delayDrop = DelayedFunction(stop$1, 200);\n var dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: function (event) {\n delayDrop.cancel();\n move(component, dragConfig, dragState, MouseData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n };\n var schema$5 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events$2)\n })], false);\n var init$1 = function (dragApi) {\n return derive$2([run$1(touchstart(), dragApi.forceDrop), run$1(touchend(), dragApi.drop), run$1(touchcancel(), dragApi.drop), run$1(touchmove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n })]);\n };\n var getDataFrom = function (touches) {\n var touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n var getData = function (event) {\n var raw = event.raw;\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n var getDelta = function (old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n var TouchData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData,\n getDelta: getDelta\n });\n var events$1 = function (dragConfig, dragState, updateStartState) {\n var blockerSingleton = value$1();\n var stopBlocking = function (component) {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n return [run$1(touchstart(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n var stop = function () {\n return stopBlocking(component);\n };\n var dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: function (event) {\n move(component, dragConfig, dragState, TouchData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$1(dragApi));\n blockerSingleton.set(blocker);\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }), run$1(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }), run$1(touchend(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n stopBlocking(component);\n }), run$1(touchcancel(), stopBlocking)];\n };\n var schema$4 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events$1)\n })], false);\n var events = function (dragConfig, dragState, updateStartState) {\n return __spreadArray(__spreadArray([], events$2(dragConfig, dragState, updateStartState), true), events$1(dragConfig, dragState, updateStartState), true);\n };\n var schema$3 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events)\n })], false);\n var mouse = schema$5;\n var touch = schema$4;\n var mouseOrTouch = schema$3;\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n var init = function () {\n var previous = Optional.none();\n var startData = Optional.none();\n var reset = function () {\n previous = Optional.none();\n startData = Optional.none();\n };\n var calculateDelta = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.getDelta(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n var update = function (mode, dragEvent) {\n return mode.getData(dragEvent).bind(function (nuData) {\n return calculateDelta(mode, nuData);\n });\n };\n var setStartData = function (data) {\n startData = Optional.some(data);\n };\n var getStartData = function () {\n return startData;\n };\n var readState = constant$1({});\n return nu$8({\n readState: readState,\n reset: reset,\n update: update,\n getStartData: getStartData,\n setStartData: setStartData\n });\n };\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n var Dragging = createModes({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: function (dragConfig, dragState) {\n var dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: function (sConfig) {\n return {\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n };\n }\n },\n state: DragState,\n apis: DraggingApis\n });\n var snapWidth = 40;\n var snapOffset = snapWidth / 2;\n var calcSnap = function (selectorOpt, td, x, y, width, height) {\n return selectorOpt.fold(function () {\n return Dragging.snap({\n sensor: absolute(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute(Optional.some(x), Optional.some(y)),\n extra: {\n td: td\n }\n });\n }, function (selectorHandle) {\n var sensorLeft = x - snapOffset;\n var sensorTop = y - snapOffset;\n var sensorWidth = snapWidth;\n var sensorHeight = snapWidth;\n var rect = selectorHandle.element.dom.getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: {\n td: td\n }\n });\n });\n };\n var getSnapsConfig = function (getSnapPoints, cell, onChange) {\n var isSameCell = function (cellOpt, td) {\n return cellOpt.exists(function (currentTd) {\n return eq(currentTd, td);\n });\n };\n return {\n getSnapPoints: getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: function (component, extra) {\n var td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n var createSelector = function (snaps) {\n return record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps: snaps\n }), Unselecting.config({})]),\n eventOrder: {\n mousedown: ['dragging', 'alloy.base.behaviour'],\n touchstart: ['dragging', 'alloy.base.behaviour']\n }\n }));\n };\n var setup$4 = function (editor, sink) {\n var tlTds = Cell([]);\n var brTds = Cell([]);\n var isVisible = Cell(false);\n var startCell = value$1();\n var finishCell = value$1();\n var getTopLeftSnap = function (td) {\n var box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n var getTopLeftSnaps = function () {\n return map$2(tlTds.get(), function (td) {\n return getTopLeftSnap(td);\n });\n };\n var getBottomRightSnap = function (td) {\n var box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n var getBottomRightSnaps = function () {\n return map$2(brTds.get(), function (td) {\n return getBottomRightSnap(td);\n });\n };\n var topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, function (start) {\n finishCell.get().each(function (finish) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, function (finish) {\n startCell.get().each(function (start) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var memTopLeft = createSelector(topLeftSnaps);\n var memBottomRight = createSelector(bottomRightSnaps);\n var topLeft = build$1(memTopLeft.asSpec());\n var bottomRight = build$1(memBottomRight.asSpec());\n var showOrHideHandle = function (selector, cell, isAbove, isBelow) {\n var cellRect = cell.dom.getBoundingClientRect();\n remove$6(selector.element, 'display');\n var viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n var aboveViewport = isAbove(cellRect);\n var belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$7(selector.element, 'display', 'none');\n }\n };\n var snapTo = function (selector, cell, getSnapConfig, pos) {\n var snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n var isAbove = function (rect) {\n return rect[pos] < 0;\n };\n var isBelow = function (rect, viewportHeight) {\n return rect[pos] > viewportHeight;\n };\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n var snapTopLeft = function (cell) {\n return snapTo(topLeft, cell, getTopLeftSnap, 'top');\n };\n var snapLastTopLeft = function () {\n return startCell.get().each(snapTopLeft);\n };\n var snapBottomRight = function (cell) {\n return snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n };\n var snapLastBottomRight = function () {\n return finishCell.get().each(snapBottomRight);\n };\n if (detect$1().deviceType.isTouch()) {\n editor.on('TableSelectionChange', function (e) {\n if (!isVisible.get()) {\n attach(sink, topLeft);\n attach(sink, bottomRight);\n isVisible.set(true);\n }\n startCell.set(e.start);\n finishCell.set(e.finish);\n e.otherCells.each(function (otherCells) {\n tlTds.set(otherCells.upOrLeftCells);\n brTds.set(otherCells.downOrRightCells);\n snapTopLeft(e.start);\n snapBottomRight(e.finish);\n });\n });\n editor.on('ResizeEditor ResizeWindow ScrollContent', function () {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', function () {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n startCell.clear();\n finishCell.clear();\n });\n }\n };\n var isHidden = function (elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\n return true;\n }\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\n return true;\n }\n }\n return false;\n };\n var renderElementPath = function (editor, settings, providersBackstage) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n var getDataPath = function (data) {\n var parts = data || [];\n var newPathElements = map$2(parts, function (part, index) {\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: {\n 'role': 'button',\n 'data-index': index,\n 'tab-index': -1,\n 'aria-level': index + 1\n },\n innerHtml: part.name\n },\n action: function (_btn) {\n editor.focus();\n editor.selection.select(part.element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig()])\n });\n });\n var divider = {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: {\n 'aria-hidden': true\n },\n innerHtml: ' ' + settings.delimiter + ' '\n }\n };\n return foldl(newPathElements.slice(1), function (acc, element) {\n var newAcc = acc;\n newAcc.push(divider);\n newAcc.push(element);\n return newAcc;\n }, [newPathElements[0]]);\n };\n var updatePath = function (parents) {\n var newPath = [];\n var i = parents.length;\n while (i-- > 0) {\n var parent_1 = parents[i];\n if (parent_1.nodeType === 1 && !isHidden(parent_1)) {\n var args = editor.fire('ResolveName', {\n name: parent_1.nodeName.toLowerCase(),\n target: parent_1\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent_1\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: {\n role: 'navigation'\n }\n },\n behaviours: derive$1([Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }), Disabling.config({\n disabled: providersBackstage.isDisabled\n }), receivingConfig(), Tabstopping.config({}), Replacing.config({}), config('elementPathEvents', [runOnAttached(function (comp, _e) {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', function () {\n return Keying.focusIn(comp);\n });\n editor.on('NodeChange', function (e) {\n var newPath = updatePath(e.parents);\n if (newPath.length > 0) {\n Replacing.set(comp, getDataPath(newPath));\n } else {\n Replacing.set(comp, []);\n }\n });\n })])]),\n components: []\n };\n };\n var ResizeTypes = /*#__PURE__*/function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n return ResizeTypes;\n }(ResizeTypes || {});\n var getDimensions = function (editor, deltas, resizeType, originalHeight, originalWidth) {\n var dimensions = {};\n dimensions.height = calcCappedSize(originalHeight + deltas.top, getMinHeightSetting(editor), getMaxHeightSetting(editor));\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthSetting(editor), getMaxWidthSetting(editor));\n }\n return dimensions;\n };\n var resize = function (editor, deltas, resizeType) {\n var container = SugarElement.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$b(container), get$a(container));\n each(dimensions, function (val, dim) {\n return set$7(container, dim, numToPx(val));\n });\n fireResizeEditor(editor);\n };\n var getResizeType = function (editor) {\n var fallback = !editor.hasPlugin('autoresize');\n var resize = editor.getParam('resize', fallback);\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n var keyboardHandler = function (editor, resizeType, x, y) {\n var scale = 20;\n var delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n var renderResizeHandler = function (editor, providersBackstage) {\n var resizeType = getResizeType(editor);\n if (resizeType === ResizeTypes.None) {\n return Optional.none();\n }\n return Optional.some(render$3('resize-handle', {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: {\n title: providersBackstage.translate('Resize')\n },\n behaviours: [Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function (_comp, _target, delta) {\n return resize(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n }), Keying.config({\n mode: 'special',\n onLeft: function () {\n return keyboardHandler(editor, resizeType, -1, 0);\n },\n onRight: function () {\n return keyboardHandler(editor, resizeType, 1, 0);\n },\n onUp: function () {\n return keyboardHandler(editor, resizeType, 0, -1);\n },\n onDown: function () {\n return keyboardHandler(editor, resizeType, 0, 1);\n }\n }), Tabstopping.config({}), Focusing.config({})]\n }, providersBackstage.icons));\n };\n var renderWordCount = function (editor, providersBackstage) {\n var _a;\n var replaceCountText = function (comp, count, mode) {\n return Replacing.set(comp, [text$1(providersBackstage.translate(['{0} ' + mode, count[mode]]))]);\n };\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig(), Tabstopping.config({}), Replacing.config({}), Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }), config('wordcount-events', [runOnExecute$1(function (comp) {\n var currentVal = Representing.getValue(comp);\n var newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }), runOnAttached(function (comp) {\n editor.on('wordCountUpdate', function (e) {\n var mode = Representing.getValue(comp).mode;\n Representing.setValue(comp, {\n mode: mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })])]),\n eventOrder: (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'wordcount-events'], _a)\n });\n };\n var renderStatusbar = function (editor, providersBackstage) {\n var renderBranding = function () {\n var label = global$e.translate(['Powered by {0}', 'Tiny']);\n var linkHtml = '' + label + '';\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding'],\n innerHtml: linkHtml\n }\n };\n };\n var getTextComponents = function () {\n var components = [];\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (editor.getParam('branding', true, 'boolean')) {\n components.push(renderBranding());\n }\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__text-container']\n },\n components: components\n }];\n }\n return [];\n };\n var getComponents = function () {\n var components = getTextComponents();\n var resizeHandler = renderResizeHandler(editor, providersBackstage);\n return components.concat(resizeHandler.toArray());\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n var setup$3 = function (editor) {\n var _a;\n var isInline = editor.inline;\n var mode = isInline ? Inline : Iframe;\n var header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n var lazyOuterContainer = Optional.none();\n var platform = detect$1();\n var isIE = platform.browser.isIE();\n var platformClasses = isIE ? ['tox-platform-ie'] : [];\n var isTouch = platform.deviceType.isTouch();\n var touchPlatformClass = 'tox-platform-touch';\n var deviceClasses = isTouch ? [touchPlatformClass] : [];\n var isToolbarBottom = isToolbarLocationBottom(editor);\n var uiContainer = getUiContainer(editor);\n var dirAttributes = global$e.isRtl() ? {\n attributes: {\n dir: 'rtl'\n }\n } : {};\n var verticalDirAttributes = {\n attributes: (_a = {}, _a[Attribute] = isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom, _a)\n };\n var lazyHeader = function () {\n return lazyOuterContainer.bind(OuterContainer.getHeader);\n };\n var isHeaderDocked = function () {\n return header.isDocked(lazyHeader);\n };\n var resizeUiMothership = function () {\n set$7(uiMothership.element, 'width', document.body.clientWidth + 'px');\n };\n var makeSinkDefinition = function () {\n var isGridUiContainer = eq(body(), uiContainer) && get$c(uiContainer, 'display') === 'grid';\n var sinkSpec = {\n dom: __assign({\n tag: 'div',\n classes: ['tox', 'tox-silver-sink', 'tox-tinymce-aux'].concat(platformClasses).concat(deviceClasses)\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({\n useFixed: function () {\n return isHeaderDocked();\n }\n })])\n };\n var reactiveWidthSpec = {\n dom: {\n styles: {\n width: document.body.clientWidth + 'px'\n }\n },\n events: derive$2([run$1(windowResize(), resizeUiMothership)])\n };\n return deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {});\n };\n var sink = build$1(makeSinkDefinition());\n var lazySink = function () {\n return Result.value(sink);\n };\n var memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n var lazyAnchorBar = function () {\n return lazyOuterContainer.bind(function (container) {\n return memAnchorBar.getOpt(container);\n }).getOrDie('Could not find a anchor bar element');\n };\n var lazyToolbar = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getToolbar(container);\n }).getOrDie('Could not find more toolbar element');\n };\n var lazyThrobber = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getThrobber(container);\n }).getOrDie('Could not find throbber element');\n };\n var backstage = init$7(sink, editor, lazyAnchorBar);\n var partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstage,\n onEscape: function () {\n editor.focus();\n }\n });\n var toolbarMode = getToolbarMode(editor);\n var partToolbar = OuterContainer.parts.toolbar(__assign({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySink,\n providers: backstage.shared.providers,\n onEscape: function () {\n editor.focus();\n },\n type: toolbarMode,\n lazyToolbar: lazyToolbar,\n lazyHeader: function () {\n return lazyHeader().getOrDie('Could not find header element');\n }\n }, verticalDirAttributes));\n var partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstage.shared.providers,\n onEscape: function () {\n editor.focus();\n },\n type: toolbarMode\n });\n var partSocket = OuterContainer.parts.socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n var partSidebar = OuterContainer.parts.sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n var partThrobber = OuterContainer.parts.throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstage\n });\n var sb = editor.getParam('statusbar', true, 'boolean');\n var statusbar = sb && !isInline ? Optional.some(renderStatusbar(editor, backstage.shared.providers)) : Optional.none();\n var socketSidebarContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [partSocket, partSidebar]\n };\n var hasMultipleToolbar = isMultipleToolbars(editor);\n var hasToolbar = isToolbarEnabled(editor);\n var hasMenubar = isMenubarEnabled(editor);\n var getPartToolbar = function () {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n var partHeader = OuterContainer.parts.header({\n dom: __assign({\n tag: 'div',\n classes: ['tox-editor-header']\n }, verticalDirAttributes),\n components: flatten([hasMenubar ? [partMenubar] : [], getPartToolbar(), useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]]),\n sticky: isStickyToolbar(editor),\n editor: editor,\n sharedBackstage: backstage.shared\n });\n var editorComponents = flatten([isToolbarBottom ? [] : [partHeader], isInline ? [] : [socketSidebarContainer], isToolbarBottom ? [partHeader] : []]);\n var editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n var containerComponents = flatten([[editorContainer], isInline ? [] : statusbar.toArray(), [partThrobber]]);\n var isHidden = isDistractionFree(editor);\n var attributes = __assign(__assign({\n role: 'application'\n }, global$e.isRtl() ? {\n dir: 'rtl'\n } : {}), isHidden ? {\n 'aria-hidden': 'true'\n } : {});\n var outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: ['tox', 'tox-tinymce'].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses).concat(platformClasses),\n styles: __assign({\n visibility: 'hidden'\n }, isHidden ? {\n opacity: '0',\n border: '0'\n } : {}),\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1([receivingConfig(), Disabling.config({\n disableClass: 'tox-tinymce--disabled'\n }), Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a, .tox-statusbar__resize-handle'\n })])\n }));\n lazyOuterContainer = Optional.some(outerContainer);\n editor.shortcuts.add('alt+F9', 'focus menubar', function () {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.shortcuts.add('alt+F10', 'focus toolbar', function () {\n OuterContainer.focusToolbar(outerContainer);\n });\n editor.addCommand('ToggleToolbarDrawer', function () {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', function () {\n return OuterContainer.isToolbarDrawerToggled(outerContainer);\n });\n var mothership = takeover(outerContainer);\n var uiMothership = takeover(sink);\n setup$b(editor, mothership, uiMothership);\n var getUi = function () {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: noop\n };\n return {\n channels: channels\n };\n };\n var setEditorSize = function () {\n var parsedHeight = numToPx(getHeightWithFallback(editor));\n var parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$7(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue('div', 'height', parsedHeight)) {\n set$7(outerContainer.element, 'height', parsedHeight);\n } else {\n set$7(outerContainer.element, 'height', '200px');\n }\n }\n return parsedHeight;\n };\n var renderUI = function () {\n header.setup(editor, backstage.shared, lazyHeader);\n setup$6(editor, backstage);\n setup$5(editor, lazySink, backstage);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstage.shared);\n map$1(getToolbarGroups(editor), function (toolbarGroupButtonConfig, name) {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n var _a = editor.ui.registry.getAll(),\n buttons = _a.buttons,\n menuItems = _a.menuItems,\n contextToolbars = _a.contextToolbars,\n sidebars = _a.sidebars;\n var toolbarOpt = getMultipleToolbarsSetting(editor);\n var rawUiConfig = {\n menuItems: menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(function () {\n return getToolbar(editor);\n }),\n allowToolbarGroups: toolbarMode === ToolbarMode.floating,\n buttons: buttons,\n sidebar: sidebars\n };\n register$7(editor, contextToolbars, sink, {\n backstage: backstage\n });\n setup$4(editor, sink);\n var elm = editor.getElement();\n var height = setEditorSize();\n var uiComponents = {\n mothership: mothership,\n uiMothership: uiMothership,\n outerContainer: outerContainer\n };\n var args = {\n targetNode: elm,\n height: height\n };\n return mode.render(editor, uiComponents, rawUiConfig, backstage, args);\n };\n return {\n mothership: mothership,\n uiMothership: uiMothership,\n backstage: backstage,\n renderUI: renderUI,\n getUi: getUi\n };\n };\n var describedBy = function (describedElement, describeElement) {\n var describeId = Optional.from(get$d(describedElement, 'id')).fold(function () {\n var id = generate$6('dialog-describe');\n set$8(describeElement, 'id', id);\n return id;\n }, identity$1);\n set$8(describedElement, 'aria-describedby', describeId);\n };\n var labelledBy = function (labelledElement, labelElement) {\n var labelId = getOpt(labelledElement, 'id').fold(function () {\n var id = generate$6('dialog-label');\n set$8(labelElement, 'id', id);\n return id;\n }, identity$1);\n set$8(labelledElement, 'aria-labelledby', labelId);\n };\n var schema$2 = constant$1([required$1('lazySink'), option('dragBlockClass'), defaultedFunction('getBounds', win), defaulted('useTabstopAt', always), defaulted('eventOrder', {}), field('modalBehaviours', [Keying]), onKeyboardHandler('onExecute'), onStrictKeyboardHandler('onEscape')]);\n var basic = {\n sketch: identity$1\n };\n var parts$2 = constant$1([optional({\n name: 'draghandle',\n overrides: function (detail, spec) {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: function (handle) {\n return ancestor(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + JSON.stringify(spec, null, 2)).message),\n getBounds: detail.getDragBounds\n })])\n };\n }\n }), required({\n schema: [required$1('dom')],\n name: 'title'\n }), required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }), required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }), optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }), external$1({\n factory: {\n sketch: function (spec, detail) {\n return __assign(__assign({}, spec), {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [defaulted('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }), defaulted('components', [])],\n name: 'blocker'\n })]);\n var factory$4 = function (detail, components, spec, externals) {\n var _a;\n var dialogComp = value$1();\n var showDialog = function (dialog) {\n dialogComp.set(dialog);\n var sink = detail.lazySink(dialog).getOrDie();\n var externalBlocker = externals.blocker();\n var blocker = sink.getSystem().build(__assign(__assign({}, externalBlocker), {\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([Focusing.config({}), config('dialog-blocker-events', [runOnSource(focusin(), function () {\n Keying.focusIn(dialog);\n })])])\n }));\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n var hideDialog = function (dialog) {\n dialogComp.clear();\n parent(dialog.element).each(function (blockerDom) {\n dialog.getSystem().getByDom(blockerDom).each(function (blocker) {\n detach(blocker);\n });\n });\n };\n var getDialogBody = function (dialog) {\n return getPartOrDie(dialog, detail, 'body');\n };\n var getDialogFooter = function (dialog) {\n return getPartOrDie(dialog, detail, 'footer');\n };\n var setBusy = function (dialog, getBusySpec) {\n Blocking.block(dialog, getBusySpec);\n };\n var setIdle = function (dialog) {\n Blocking.unblock(dialog);\n };\n var modalEventsId = generate$6('modal-events');\n var eventOrder = __assign(__assign({}, detail.eventOrder), (_a = {}, _a[attachedToDom()] = [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []), _a));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle: setIdle,\n setBusy: setBusy\n },\n eventOrder: eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [Replacing.config({}), Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }), Blocking.config({\n getRoot: dialogComp.get\n }), config(modalEventsId, [runOnAttached(function (c) {\n labelledBy(c.element, getPartOrDie(c, detail, 'title').element);\n describedBy(c.element, getPartOrDie(c, detail, 'body').element);\n })])])\n };\n };\n var ModalDialog = composite({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\n apis: {\n show: function (apis, dialog) {\n apis.show(dialog);\n },\n hide: function (apis, dialog) {\n apis.hide(dialog);\n },\n getBody: function (apis, dialog) {\n return apis.getBody(dialog);\n },\n getFooter: function (apis, dialog) {\n return apis.getFooter(dialog);\n },\n setBusy: function (apis, dialog, getBusySpec) {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: function (apis, dialog) {\n apis.setIdle(dialog);\n }\n }\n });\n var dialogToggleMenuItemSchema = objOf([requiredString('type'), requiredString('name')].concat(commonMenuItemFields));\n var dialogToggleMenuItemDataProcessor = boolean;\n var baseFooterButtonFields = [field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string), optionString('icon'), defaultedStringEnum('align', 'end', ['start', 'end']), defaultedBoolean('primary', false), defaultedBoolean('disabled', false)];\n var dialogFooterButtonFields = __spreadArray(__spreadArray([], baseFooterButtonFields, true), [requiredString('text')], false);\n var normalFooterButtonFields = __spreadArray([requiredStringEnum('type', ['submit', 'cancel', 'custom'])], dialogFooterButtonFields, true);\n var menuFooterButtonFields = __spreadArray([requiredStringEnum('type', ['menu']), optionString('text'), optionString('tooltip'), optionString('icon'), requiredArrayOf('items', dialogToggleMenuItemSchema)], baseFooterButtonFields, true);\n var dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields\n });\n var alertBannerFields = [requiredString('type'), requiredString('text'), requiredStringEnum('level', ['info', 'warn', 'error', 'success']), requiredString('icon'), defaulted('url', '')];\n var alertBannerSchema = objOf(alertBannerFields);\n var createBarFields = function (itemsField) {\n return [requiredString('type'), itemsField];\n };\n var buttonFields = [requiredString('type'), requiredString('text'), defaultedBoolean('disabled', false), defaultedBoolean('primary', false), field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string), optionString('icon'), defaultedBoolean('borderless', false)];\n var buttonSchema = objOf(buttonFields);\n var checkboxFields = [requiredString('type'), requiredString('name'), requiredString('label'), defaultedBoolean('disabled', false)];\n var checkboxSchema = objOf(checkboxFields);\n var checkboxDataProcessor = boolean;\n var formComponentFields = [requiredString('type'), requiredString('name')];\n var formComponentWithLabelFields = formComponentFields.concat([optionString('label')]);\n var collectionFields = formComponentWithLabelFields.concat([defaulted('columns', 'auto')]);\n var collectionSchema = objOf(collectionFields);\n var collectionDataProcessor = arrOfObj([requiredString('value'), requiredString('text'), requiredString('icon')]);\n var colorInputFields = formComponentWithLabelFields;\n var colorInputSchema = objOf(colorInputFields);\n var colorInputDataProcessor = string;\n var colorPickerFields = formComponentWithLabelFields;\n var colorPickerSchema = objOf(colorPickerFields);\n var colorPickerDataProcessor = string;\n var customEditorFields = formComponentFields.concat([defaultedString('tag', 'textarea'), requiredString('scriptId'), requiredString('scriptUrl'), defaultedPostMsg('settings', undefined)]);\n var customEditorFieldsOld = formComponentFields.concat([defaultedString('tag', 'textarea'), requiredFunction('init')]);\n var customEditorSchema = valueOf(function (v) {\n return asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(function () {\n return asRaw('customeditor.new', objOfOnly(customEditorFields), v);\n });\n });\n var customEditorDataProcessor = string;\n var dropZoneFields = formComponentWithLabelFields;\n var dropZoneSchema = objOf(dropZoneFields);\n var dropZoneDataProcessor = arrOfVal();\n var createGridFields = function (itemsField) {\n return [requiredString('type'), requiredNumber('columns'), itemsField];\n };\n var htmlPanelFields = [requiredString('type'), requiredString('html'), defaultedStringEnum('presets', 'presentation', ['presentation', 'document'])];\n var htmlPanelSchema = objOf(htmlPanelFields);\n var iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeSchema = objOf(iframeFields);\n var iframeDataProcessor = string;\n var imageToolsFields = formComponentWithLabelFields.concat([requiredOf('currentState', objOf([required$1('blob'), requiredString('url')]))]);\n var imageToolsSchema = objOf(imageToolsFields);\n var inputFields = formComponentWithLabelFields.concat([optionString('inputMode'), optionString('placeholder'), defaultedBoolean('maximized', false), defaultedBoolean('disabled', false)]);\n var inputSchema = objOf(inputFields);\n var inputDataProcessor = string;\n var createLabelFields = function (itemsField) {\n return [requiredString('type'), requiredString('label'), itemsField];\n };\n var listBoxSingleItemFields = [requiredString('text'), requiredString('value')];\n var listBoxNestedItemFields = [requiredString('text'), requiredArrayOf('items', thunkOf('items', function () {\n return listBoxItemSchema;\n }))];\n var listBoxItemSchema = oneOf([objOf(listBoxSingleItemFields), objOf(listBoxNestedItemFields)]);\n var listBoxFields = formComponentWithLabelFields.concat([requiredArrayOf('items', listBoxItemSchema), defaultedBoolean('disabled', false)]);\n var listBoxSchema = objOf(listBoxFields);\n var listBoxDataProcessor = string;\n var selectBoxFields = formComponentWithLabelFields.concat([requiredArrayOfObj('items', [requiredString('text'), requiredString('value')]), defaultedNumber('size', 1), defaultedBoolean('disabled', false)]);\n var selectBoxSchema = objOf(selectBoxFields);\n var selectBoxDataProcessor = string;\n var sizeInputFields = formComponentWithLabelFields.concat([defaultedBoolean('constrain', true), defaultedBoolean('disabled', false)]);\n var sizeInputSchema = objOf(sizeInputFields);\n var sizeInputDataProcessor = objOf([requiredString('width'), requiredString('height')]);\n var tableFields = [requiredString('type'), requiredArrayOf('header', string), requiredArrayOf('cells', arrOf(string))];\n var tableSchema = objOf(tableFields);\n var textAreaFields = formComponentWithLabelFields.concat([optionString('placeholder'), defaultedBoolean('maximized', false), defaultedBoolean('disabled', false)]);\n var textAreaSchema = objOf(textAreaFields);\n var textAreaDataProcessor = string;\n var urlInputFields = formComponentWithLabelFields.concat([defaultedStringEnum('filetype', 'file', ['image', 'media', 'file']), defaulted('disabled', false)]);\n var urlInputSchema = objOf(urlInputFields);\n var urlInputDataProcessor = objOf([requiredString('value'), defaulted('meta', {})]);\n var createItemsField = function (name) {\n return field$1('items', 'items', required$2(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n var itemSchema = valueThunk(function () {\n return choose$2('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n listbox: listBoxSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagetools: imageToolsSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n panel: panelSchema\n });\n });\n var panelFields = [requiredString('type'), defaulted('classes', []), requiredArrayOf('items', itemSchema)];\n var panelSchema = objOf(panelFields);\n var tabFields = [field$1('name', 'name', defaultedThunk(function () {\n return generate$6('tab-name');\n }), string), requiredString('title'), requiredArrayOf('items', itemSchema)];\n var tabPanelFields = [requiredString('type'), requiredArrayOfObj('tabs', tabFields)];\n var tabPanelSchema = objOf(tabPanelFields);\n var dialogButtonFields = dialogFooterButtonFields;\n var dialogButtonSchema = dialogFooterButtonSchema;\n var dialogSchema = objOf([requiredString('title'), requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })), defaultedString('size', 'normal'), requiredArrayOf('buttons', dialogButtonSchema), defaulted('initialData', {}), defaultedFunction('onAction', noop), defaultedFunction('onChange', noop), defaultedFunction('onSubmit', noop), defaultedFunction('onClose', noop), defaultedFunction('onCancel', noop), defaulted('onTabChange', noop)]);\n var createDialog = function (spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n var urlDialogButtonSchema = objOf(__spreadArray([requiredStringEnum('type', ['cancel', 'custom'])], dialogButtonFields, true));\n var urlDialogSchema = objOf([requiredString('title'), requiredString('url'), optionNumber('height'), optionNumber('width'), optionArrayOf('buttons', urlDialogButtonSchema), defaultedFunction('onAction', noop), defaultedFunction('onCancel', noop), defaultedFunction('onClose', noop), defaultedFunction('onMessage', noop)]);\n var createUrlDialog = function (spec) {\n return asRaw('dialog', urlDialogSchema, spec);\n };\n var getAllObjects = function (obj) {\n if (isObject(obj)) {\n return [obj].concat(bind$3(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind$3(obj, getAllObjects);\n } else {\n return [];\n }\n };\n var isNamedItem = function (obj) {\n return isString(obj.type) && isString(obj.name);\n };\n var dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n sizeinput: sizeInputDataProcessor,\n selectbox: selectBoxDataProcessor,\n listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n var getDataProcessor = function (item) {\n return Optional.from(dataProcessors[item.type]);\n };\n var getNamedItems = function (structure) {\n return filter$2(getAllObjects(structure), isNamedItem);\n };\n var createDataValidator = function (structure) {\n var namedItems = getNamedItems(structure);\n var fields = bind$3(namedItems, function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [requiredOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n var extract = function (structure) {\n var internalDialog = getOrDie(createDialog(structure));\n var dataValidator = createDataValidator(structure);\n var initialData = structure.initialData;\n return {\n internalDialog: internalDialog,\n dataValidator: dataValidator,\n initialData: initialData\n };\n };\n var DialogManager = {\n open: function (factory, structure) {\n var extraction = extract(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function (factory, structure) {\n var internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function (structure) {\n return extract(structure);\n }\n };\n var toValidValues = function (values) {\n var errors = [];\n var result = {};\n each(values, function (value, name) {\n value.fold(function () {\n errors.push(name);\n }, function (v) {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n var renderBodyPanel = function (spec, backstage) {\n var memForm = record(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map$2(spec.items, function (item) {\n return interpretInForm(parts, item, backstage);\n })\n };\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }), ComposingConfigs.memento(memForm), RepresentingConfigs.memento(memForm, {\n postprocess: function (formValue) {\n return toValidValues(formValue).fold(function (err) {\n console.error(err);\n return {};\n }, identity$1);\n }\n })])\n };\n };\n var factory$3 = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$a(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [Focusing.config({}), Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }), Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })]),\n domModification: detail.domModification\n };\n };\n var TabButton = single({\n name: 'TabButton',\n configFields: [defaulted('uid', undefined), required$1('value'), field$1('dom', 'dom', mergeWithThunk(function () {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue()), option('action'), defaulted('domModification', {}), field('tabButtonBehaviours', [Focusing, Keying, Representing]), required$1('view')],\n factory: factory$3\n });\n var schema$1 = constant$1([required$1('tabs'), required$1('dom'), defaulted('clickToDismiss', false), field('tabbarBehaviours', [Highlighting, Keying]), markers$1(['tabClass', 'selectedClass'])]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function (barDetail) {\n var dismissTab$1 = function (tabbar, button) {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n var changeTab$1 = function (tabbar, button) {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n return {\n action: function (button) {\n var tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n var activeButton = Highlighting.isHighlighted(tabbar, button);\n var response = function () {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n }();\n response(tabbar, button);\n },\n domModification: {\n classes: [barDetail.markers.tabClass]\n }\n };\n }\n });\n var parts$1 = constant$1([tabsPart]);\n var factory$2 = function (detail, components, _spec, _externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n components: components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': {\n attributes: {\n role: 'tablist'\n }\n },\n 'behaviours': augment(detail.tabbarBehaviours, [Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: function (tabbar, tab) {\n set$8(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: function (tabbar, tab) {\n set$8(tab.element, 'aria-selected', 'false');\n }\n }), Keying.config({\n mode: 'flow',\n getInitial: function (tabbar) {\n return Highlighting.getHighlighted(tabbar).map(function (tab) {\n return tab.element;\n });\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })])\n };\n };\n var Tabbar = composite({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n var factory$1 = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: {\n attributes: {\n role: 'tabpanel'\n }\n }\n };\n };\n var Tabview = single({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n var schema = constant$1([defaulted('selectFirst', true), onHandler('onChangeTab'), onHandler('onDismissTab'), defaulted('tabs', []), field('tabSectionBehaviours', [])]);\n var barPart = required({\n factory: Tabbar,\n schema: [required$1('dom'), requiredObjOf('markers', [required$1('tabClass'), required$1('selectedClass')])],\n name: 'tabbar',\n defaults: function (detail) {\n return {\n tabs: detail.tabs\n };\n }\n });\n var viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n var parts = constant$1([barPart, viewPart]);\n var factory = function (detail, components, _spec, _externals) {\n var changeTab$1 = function (button) {\n var tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(function (tabview) {\n var tabWithValue = find$5(detail.tabs, function (t) {\n return t.value === tabValue;\n });\n tabWithValue.each(function (tabData) {\n var panel = tabData.view();\n getOpt(button.element, 'id').each(function (id) {\n set$8(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n var changeTabBy = function (section, byPred) {\n getPart(section, detail, 'tabbar').each(function (tabbar) {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$2(detail.tabSectionBehaviours),\n events: derive$2(flatten([detail.selectFirst ? [runOnAttached(function (section, _simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [], [run$1(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n changeTab$1(button);\n }), run$1(dismissTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })]])),\n apis: {\n getViewItems: function (section) {\n return getPart(section, detail, 'tabview').map(function (tabview) {\n return Replacing.contents(tabview);\n }).getOr([]);\n },\n showTab: function (section, tabKey) {\n var getTabIfNotActive = function (tabbar) {\n var candidates = Highlighting.getCandidates(tabbar);\n var optTab = find$5(candidates, function (c) {\n return Representing.getValue(c) === tabKey;\n });\n return optTab.filter(function (tab) {\n return !Highlighting.isHighlighted(tabbar, tab);\n });\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n var TabSection = composite({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory: factory,\n apis: {\n getViewItems: function (apis, component) {\n return apis.getViewItems(component);\n },\n showTab: function (apis, component, tabKey) {\n apis.showTab(component, tabKey);\n }\n }\n });\n var measureHeights = function (allTabs, tabview, tabviewComp) {\n return map$2(allTabs, function (_tab, i) {\n Replacing.set(tabviewComp, allTabs[i].view());\n var rect = tabview.dom.getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n };\n var getMaxHeight = function (heights) {\n return head(sort(heights, function (a, b) {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n };\n var getMaxTabviewHeight = function (dialog, tabview, tablist) {\n var documentElement$1 = documentElement(dialog).dom;\n var rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$c(rootElm, 'position') === 'fixed';\n var maxHeight;\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n var tabviewHeight = get$b(tabview);\n var isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$a(tablist);\n var currentTabHeight = isTabListBeside ? Math.max(get$b(tablist), tabviewHeight) : tabviewHeight;\n var dialogTopMargin = parseInt(get$c(dialog, 'margin-top'), 10) || 0;\n var dialogBottomMargin = parseInt(get$c(dialog, 'margin-bottom'), 10) || 0;\n var dialogHeight = get$b(dialog) + dialogTopMargin + dialogBottomMargin;\n var chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n var showTab = function (allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n var setTabviewHeight = function (tabview, height) {\n set$7(tabview, 'height', height + 'px');\n if (!detect$1().browser.isIE()) {\n set$7(tabview, 'flex-basis', height + 'px');\n } else {\n remove$6(tabview, 'flex-basis');\n }\n };\n var updateTabviewHeight = function (dialogBody, tabview, maxTabHeight) {\n ancestor(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n descendant(dialog, '[role=\"tablist\"]').each(function (tablist) {\n maxTabHeight.get().map(function (height) {\n set$7(tabview, 'height', '0');\n set$7(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(function (height) {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n var getTabview = function (dialog) {\n return descendant(dialog, '[role=\"tabpanel\"]');\n };\n var setMode = function (allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = value$1();\n var extraEvents = [runOnAttached(function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n set$7(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(function (tabviewComp) {\n var heights = measureHeights(allTabs, tabview, tabviewComp);\n var maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeightOpt.fold(maxTabHeight.clear, maxTabHeight.set);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$f.requestAnimationFrame(function () {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }), run$1(windowResize(), function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }), run$1(formResizeEvent, function (comp, _se) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n var oldFocus = active(getRootNode(tabview));\n set$7(tabview, 'visibility', 'hidden');\n var oldHeight = getRaw(tabview, 'height').map(function (h) {\n return parseInt(h, 10);\n });\n remove$6(tabview, 'height');\n remove$6(tabview, 'flex-basis');\n var newHeight = tabview.dom.getBoundingClientRect().height;\n var hasGrown = oldHeight.forall(function (h) {\n return newHeight > h;\n });\n if (hasGrown) {\n maxTabHeight.set(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n setTabviewHeight(tabview, h);\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$3);\n });\n })];\n var selectFirst = false;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n var naiveTabHeight = function () {\n var extraEvents = [];\n var selectFirst = true;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n return {\n smartTabHeight: smartTabHeight,\n naiveTabHeight: naiveTabHeight\n };\n };\n var SendDataToSectionChannel = 'send-data-to-section';\n var SendDataToViewChannel = 'send-data-to-view';\n var renderTabPanel = function (spec, backstage) {\n var storedValue = Cell({});\n var updateDataWithForm = function (form) {\n var formData = Representing.getValue(form);\n var validData = toValidValues(formData).getOr({});\n var currentData = storedValue.get();\n var newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n var setDataOnForm = function (form) {\n var tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n var oldTab = Cell(null);\n var allTabs = map$2(spec.tabs, function (tab) {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item'],\n innerHtml: backstage.shared.providers.translate(tab.title)\n },\n view: function () {\n return [Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map$2(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }), config('TabView.form.events', [runOnAttached(setDataOnForm), runOnDetached(updateDataWithForm)]), Receiving.config({\n channels: wrapAll([{\n key: SendDataToSectionChannel,\n value: {\n onReceive: updateDataWithForm\n }\n }, {\n key: SendDataToViewChannel,\n value: {\n onReceive: setDataOnForm\n }\n }])\n })])\n };\n })];\n }\n };\n });\n var tabMode = setMode(allTabs).smartTabHeight;\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: function (section, button, _viewItems) {\n var name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name: name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [TabSection.parts.tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts.tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }), TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([config('tabpanel', tabMode.extraEvents), Keying.config({\n mode: 'acyclic'\n }), Composing.config({\n find: function (comp) {\n return head(TabSection.getViewItems(comp));\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function (tsection) {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n },\n setValue: function (tsection, value) {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n }\n }\n })])\n });\n };\n var dialogChannel = generate$6('update-dialog');\n var titleChannel = generate$6('update-title');\n var bodyChannel = generate$6('update-body');\n var footerChannel = generate$6('update-footer');\n var bodySendMessageChannel = generate$6('body-send-message');\n var renderBody = function (spec, id, backstage, ariaAttrs) {\n var renderComponents = function (incoming) {\n switch (incoming.body.type) {\n case 'tabpanel':\n {\n return [renderTabPanel(incoming.body, backstage)];\n }\n default:\n {\n return [renderBodyPanel(incoming.body, backstage)];\n }\n }\n };\n var updateState = function (_comp, incoming) {\n return Optional.some({\n isTabPanel: function () {\n return incoming.body.type === 'tabpanel';\n }\n });\n };\n var ariaAttributes = {\n 'aria-live': 'polite'\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: __assign(__assign({}, id.map(function (x) {\n return {\n id: x\n };\n }).getOr({})), ariaAttrs ? ariaAttributes : {})\n },\n components: [],\n behaviours: derive$1([ComposingConfigs.childAt(0), Reflecting.config({\n channel: bodyChannel,\n updateState: updateState,\n renderComponents: renderComponents,\n initialData: spec\n })])\n };\n };\n var renderInlineBody = function (spec, contentId, backstage, ariaAttrs) {\n return renderBody(spec, Optional.some(contentId), backstage, ariaAttrs);\n };\n var renderModalBody = function (spec, backstage) {\n var bodySpec = renderBody(spec, Optional.none(), backstage, false);\n return ModalDialog.parts.body(bodySpec);\n };\n var renderIframeBody = function (spec) {\n var bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [craft({\n dom: {\n tag: 'iframe',\n attributes: {\n src: spec.url\n }\n },\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n })])\n };\n return ModalDialog.parts.body(bodySpec);\n };\n var isTouch = global$9.deviceType.isTouch();\n var hiddenHeader = function (title, close) {\n return {\n dom: {\n tag: 'div',\n styles: {\n display: 'none'\n },\n classes: ['tox-dialog__header']\n },\n components: [title, close]\n };\n };\n var pClose = function (onClose, providersBackstage) {\n return ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--icon', 'tox-button--naked'],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n };\n var pUntitled = function () {\n return ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: {\n display: 'none'\n }\n }\n });\n };\n var pBodyMessage = function (message, providersBackstage) {\n return ModalDialog.parts.body({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [{\n dom: fromHtml('' + sanitizeHtmlString(providersBackstage.translate(message)) + '
')\n }]\n }]\n });\n };\n var pFooter = function (buttons) {\n return ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n };\n var pFooterGroup = function (startButtons, endButtons) {\n return [Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }), Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })];\n };\n var renderDialog$1 = function (spec) {\n var _a;\n var dialogClass = 'tox-dialog';\n var blockerClass = dialogClass + '-wrap';\n var blockerBackdropClass = blockerClass + '__backdrop';\n var scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: function (comp) {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: function (elem) {\n return !isPseudoStop(elem);\n },\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: __assign({\n position: 'relative'\n }, spec.extraStyles)\n },\n components: __spreadArray([spec.header, spec.body], spec.footer.toArray(), true),\n parts: {\n blocker: {\n dom: fromHtml(''),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [blockerBackdropClass, blockerBackdropClass + '--opaque'] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1(__spreadArray([Focusing.config({}), config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])), config('scroll-lock', [runOnAttached(function () {\n add$2(body(), scrollLockClass);\n }), runOnDetached(function () {\n remove$2(body(), scrollLockClass);\n })])], spec.extraBehaviours, true)),\n eventOrder: __assign((_a = {}, _a[execute$5()] = ['dialog-events'], _a[attachedToDom()] = ['scroll-lock', 'dialog-events', 'alloy.base.behaviour'], _a[detachedFromDom()] = ['alloy.base.behaviour', 'dialog-events', 'scroll-lock'], _a), spec.eventOrder)\n });\n };\n var renderClose = function (providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--icon', 'tox-button--naked'],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'title': providersBackstage.translate('Close')\n }\n },\n components: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon']\n }, providersBackstage.icons)],\n action: function (comp) {\n emit(comp, formCancelEvent);\n }\n });\n };\n var renderTitle = function (spec, id, providersBackstage) {\n var renderComponents = function (data) {\n return [text$1(providersBackstage.translate(data.title))];\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: __assign({}, id.map(function (x) {\n return {\n id: x\n };\n }).getOr({}))\n },\n components: renderComponents(spec),\n behaviours: derive$1([Reflecting.config({\n channel: titleChannel,\n renderComponents: renderComponents\n })])\n };\n };\n var renderDragHandle = function () {\n return {\n dom: fromHtml('')\n };\n };\n var renderInlineHeader = function (spec, titleId, providersBackstage) {\n return Container.sketch({\n dom: fromHtml(''),\n components: [renderTitle(spec, Optional.some(titleId), providersBackstage), renderDragHandle(), renderClose(providersBackstage)],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: function (handle) {\n return closest$1(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: function () {\n return [];\n },\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n };\n var renderModalHeader = function (spec, providersBackstage) {\n var pTitle = ModalDialog.parts.title(renderTitle(spec, Optional.none(), providersBackstage));\n var pHandle = ModalDialog.parts.draghandle(renderDragHandle());\n var pClose = ModalDialog.parts.close(renderClose(providersBackstage));\n var components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml(''),\n components: components\n });\n };\n var getHeader = function (title, backstage) {\n return renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, backstage.shared.providers);\n };\n var getBusySpec = function (message, bs, providers) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: {\n 'aria-label': providers.translate(message)\n },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{\n dom: fromHtml('')\n }]\n };\n };\n var getEventExtras = function (lazyDialog, providers, extra) {\n return {\n onClose: function () {\n return extra.closeWindow();\n },\n onBlock: function (blockEvent) {\n ModalDialog.setBusy(lazyDialog(), function (_comp, bs) {\n return getBusySpec(blockEvent.message, bs, providers);\n });\n },\n onUnblock: function () {\n ModalDialog.setIdle(lazyDialog());\n }\n };\n };\n var renderModalDialog = function (spec, initialData, dialogEvents, backstage) {\n var _a;\n var updateState = function (_comp, incoming) {\n return Optional.some(incoming);\n };\n return build$1(renderDialog$1(__assign(__assign({}, spec), {\n lazySink: backstage.shared.getSink,\n extraBehaviours: __spreadArray([Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: initialData\n }), RepresentingConfigs.memory({})], spec.extraBehaviours, true),\n onEscape: function (comp) {\n emit(comp, formCancelEvent);\n },\n dialogEvents: dialogEvents,\n eventOrder: (_a = {}, _a[receive()] = [Reflecting.name(), Receiving.name()], _a[attachedToDom()] = ['scroll-lock', Reflecting.name(), 'messages', 'dialog-events', 'alloy.base.behaviour'], _a[detachedFromDom()] = ['alloy.base.behaviour', 'dialog-events', 'messages', Reflecting.name(), 'scroll-lock'], _a)\n })));\n };\n var mapMenuButtons = function (buttons) {\n var mapItems = function (button) {\n var items = map$2(button.items, function (item) {\n var cell = Cell(false);\n return __assign(__assign({}, item), {\n storage: cell\n });\n });\n return __assign(__assign({}, button), {\n items: items\n });\n };\n return map$2(buttons, function (button) {\n if (button.type === 'menu') {\n return mapItems(button);\n }\n return button;\n });\n };\n var extractCellsToObject = function (buttons) {\n return foldl(buttons, function (acc, button) {\n if (button.type === 'menu') {\n var menuButton = button;\n return foldl(menuButton.items, function (innerAcc, item) {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n return acc;\n }, {});\n };\n var initCommonEvents = function (fireApiEvent, extras) {\n return [runWithTarget(focusin(), onFocus), fireApiEvent(formCloseEvent, function (_api, spec) {\n extras.onClose();\n spec.onClose();\n }), fireApiEvent(formCancelEvent, function (api, spec, _event, self) {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }), run$1(formUnblockEvent, function (_c, _se) {\n return extras.onUnblock();\n }), run$1(formBlockEvent, function (_c, se) {\n return extras.onBlock(se.event);\n })];\n };\n var initUrlDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run$1(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialog) {\n f(currentDialog, c);\n });\n };\n return __spreadArray(__spreadArray([], initCommonEvents(fireApiEvent, extras), true), [fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, {\n name: event.name\n });\n })], false);\n };\n var initDialog = function (getInstanceApi, extras, getSink) {\n var fireApiEvent = function (eventName, f) {\n return run$1(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialogInit) {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return __spreadArray(__spreadArray([], initCommonEvents(fireApiEvent, extras), true), [fireApiEvent(formSubmitEvent, function (api, spec) {\n return spec.onSubmit(api);\n }), fireApiEvent(formChangeEvent, function (api, spec, event) {\n spec.onChange(api, {\n name: event.name\n });\n }), fireApiEvent(formActionEvent, function (api, spec, event, component) {\n var focusIn = function () {\n return Keying.focusIn(component);\n };\n var isDisabled = function (focused) {\n return has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(function (val) {\n return val === 'true';\n });\n };\n var rootNode = getRootNode(component.element);\n var current = active(rootNode);\n spec.onAction(api, {\n name: event.name,\n value: event.value\n });\n active(rootNode).fold(focusIn, function (focused) {\n if (isDisabled(focused)) {\n focusIn();\n } else if (current.exists(function (cur) {\n return contains(focused, cur) && isDisabled(cur);\n })) {\n focusIn();\n } else {\n getSink().toOptional().filter(function (sink) {\n return !contains(sink.element, focused);\n }).each(focusIn);\n }\n });\n }), fireApiEvent(formTabChangeEvent, function (api, spec, event) {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }), runOnDetached(function (component) {\n var api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })], false);\n };\n var SilverDialogEvents = {\n initUrlDialog: initUrlDialog,\n initDialog: initDialog\n };\n var makeButton = function (button, backstage) {\n return renderFooterButton(button, button.type, backstage);\n };\n var lookup = function (compInSystem, footerButtons, buttonName) {\n return find$5(footerButtons, function (button) {\n return button.name === buttonName;\n }).bind(function (memButton) {\n return memButton.memento.getOpt(compInSystem);\n });\n };\n var renderComponents = function (_data, state) {\n var footerButtons = state.map(function (s) {\n return s.footerButtons;\n }).getOr([]);\n var buttonGroups = partition$3(footerButtons, function (button) {\n return button.align === 'start';\n });\n var makeGroup = function (edge, buttons) {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-' + edge]\n },\n components: map$2(buttons, function (button) {\n return button.memento.asSpec();\n })\n });\n };\n var startButtons = makeGroup('start', buttonGroups.pass);\n var endButtons = makeGroup('end', buttonGroups.fail);\n return [startButtons, endButtons];\n };\n var renderFooter = function (initSpec, backstage) {\n var updateState = function (_comp, data) {\n var footerButtons = map$2(data.buttons, function (button) {\n var memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n var lookupByName = function (compInSystem, buttonName) {\n return lookup(compInSystem, footerButtons, buttonName);\n };\n return Optional.some({\n lookupByName: lookupByName,\n footerButtons: footerButtons\n });\n };\n return {\n dom: fromHtml(''),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: footerChannel,\n initialData: initSpec,\n updateState: updateState,\n renderComponents: renderComponents\n })])\n };\n };\n var renderInlineFooter = function (initSpec, backstage) {\n return renderFooter(initSpec, backstage);\n };\n var renderModalFooter = function (initSpec, backstage) {\n return ModalDialog.parts.footer(renderFooter(initSpec, backstage));\n };\n var getCompByName = function (access, name) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n var form_1 = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form_1, name).fold(function () {\n var footer = access.getFooter();\n var footerState = Reflecting.getState(footer);\n return footerState.get().bind(function (f) {\n return f.lookupByName(form_1, name);\n });\n }, function (comp) {\n return Optional.some(comp);\n });\n } else {\n return Optional.none();\n }\n };\n var validateData$1 = function (access, data) {\n var root = access.getRoot();\n return Reflecting.getState(root).get().map(function (dialogState) {\n return getOrDie(asRaw('data', dialogState.dataValidator, data));\n }).getOr(data);\n };\n var getDialogApi = function (access, doRedial, menuItemStates) {\n var withRoot = function (f) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var getData = function () {\n var root = access.getRoot();\n var valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n var representedValues = Representing.getValue(valueComp);\n var menuItemCurrentState = map$1(menuItemStates, function (cell) {\n return cell.get();\n });\n return __assign(__assign({}, representedValues), menuItemCurrentState);\n };\n var setData = function (newData) {\n withRoot(function (_) {\n var prevData = instanceApi.getData();\n var mergedData = __assign(__assign({}, prevData), newData);\n var newInternalData = validateData$1(access, mergedData);\n var form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each(menuItemStates, function (v, k) {\n if (has$2(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n var disable = function (name) {\n getCompByName(access, name).each(Disabling.disable);\n };\n var enable = function (name) {\n getCompByName(access, name).each(Disabling.enable);\n };\n var focus = function (name) {\n getCompByName(access, name).each(Focusing.focus);\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, {\n message: message\n });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var showTab = function (name) {\n withRoot(function (_) {\n var body = access.getBody();\n var bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(function (b) {\n return b.isTabPanel();\n })) {\n Composing.getCurrent(body).each(function (tabSection) {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n var redial = function (d) {\n withRoot(function (root) {\n var dialogInit = doRedial(d);\n root.getSystem().broadcastOn([dialogChannel], dialogInit);\n root.getSystem().broadcastOn([titleChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([bodyChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([footerChannel], dialogInit.internalDialog);\n instanceApi.setData(dialogInit.initialData);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var instanceApi = {\n getData: getData,\n setData: setData,\n disable: disable,\n enable: enable,\n focus: focus,\n block: block,\n unblock: unblock,\n showTab: showTab,\n redial: redial,\n close: close\n };\n return instanceApi;\n };\n var getDialogSizeClasses = function (size) {\n switch (size) {\n case 'large':\n return ['tox-dialog--width-lg'];\n case 'medium':\n return ['tox-dialog--width-md'];\n default:\n return [];\n }\n };\n var renderDialog = function (dialogInit, extra, backstage) {\n var header = getHeader(dialogInit.internalDialog.title, backstage);\n var body = renderModalBody({\n body: dialogInit.internalDialog.body\n }, backstage);\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var footer = renderModalFooter({\n buttons: storagedMenuButtons\n }, backstage);\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, backstage.shared.providers, extra), backstage.shared.getSink);\n var dialogSize = getDialogSizeClasses(dialogInit.internalDialog.size);\n var spec = {\n header: header,\n body: body,\n footer: Optional.some(footer),\n extraClasses: dialogSize,\n extraBehaviours: [],\n extraStyles: {}\n };\n var dialog = renderModalDialog(spec, dialogInit, dialogEvents, backstage);\n var modalAccess = function () {\n var getForm = function () {\n var outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n return {\n getRoot: constant$1(dialog),\n getBody: function () {\n return ModalDialog.getBody(dialog);\n },\n getFooter: function () {\n return ModalDialog.getFooter(dialog);\n },\n getFormWrapper: getForm\n };\n }();\n var instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n var renderInlineDialog = function (dialogInit, extra, backstage, ariaAttrs) {\n var _a, _b;\n var dialogLabelId = generate$6('dialog-label');\n var dialogContentId = generate$6('dialog-content');\n var updateState = function (_comp, incoming) {\n return Optional.some(incoming);\n };\n var memHeader = record(renderInlineHeader({\n title: dialogInit.internalDialog.title,\n draggable: true\n }, dialogLabelId, backstage.shared.providers));\n var memBody = record(renderInlineBody({\n body: dialogInit.internalDialog.body\n }, dialogContentId, backstage, ariaAttrs));\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var memFooter = record(renderInlineFooter({\n buttons: storagedMenuButtons\n }, backstage));\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, {\n onBlock: function (event) {\n Blocking.block(dialog, function (_comp, bs) {\n return getBusySpec(event.message, bs, backstage.shared.providers);\n });\n },\n onUnblock: function () {\n Blocking.unblock(dialog);\n },\n onClose: function () {\n return extra.closeWindow();\n }\n }, backstage.shared.getSink);\n var dialog = build$1({\n dom: {\n tag: 'div',\n classes: ['tox-dialog', 'tox-dialog-inline'],\n attributes: (_a = {\n role: 'dialog'\n }, _a['aria-labelledby'] = dialogLabelId, _a['aria-describedby'] = dialogContentId, _a)\n },\n eventOrder: (_b = {}, _b[receive()] = [Reflecting.name(), Receiving.name()], _b[execute$5()] = ['execute-on-form'], _b[attachedToDom()] = ['reflecting', 'execute-on-form'], _b),\n behaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function (c) {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: function (elem) {\n return !isPseudoStop(elem) && (name$2(elem) !== 'button' || get$d(elem, 'disabled') !== 'disabled');\n }\n }), Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: dialogInit\n }), Focusing.config({}), config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])), Blocking.config({\n getRoot: function () {\n return Optional.some(dialog);\n }\n }), Replacing.config({}), RepresentingConfigs.memory({})]),\n components: [memHeader.asSpec(), memBody.asSpec(), memFooter.asSpec()]\n });\n var instanceApi = getDialogApi({\n getRoot: constant$1(dialog),\n getFooter: function () {\n return memFooter.get(dialog);\n },\n getBody: function () {\n return memBody.get(dialog);\n },\n getFormWrapper: function () {\n var body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n }\n }, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.URI');\n var getUrlDialogApi = function (root) {\n var withRoot = function (f) {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, {\n message: message\n });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var sendMessage = function (data) {\n withRoot(function (root) {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block: block,\n unblock: unblock,\n close: close,\n sendMessage: sendMessage\n };\n };\n var SUPPORTED_MESSAGE_ACTIONS = ['insertContent', 'setContent', 'execCommand', 'close', 'block', 'unblock'];\n var isSupportedMessage = function (data) {\n return isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n };\n var isCustomMessage = function (data) {\n return !isSupportedMessage(data) && isObject(data) && has$2(data, 'mceAction');\n };\n var handleMessage = function (editor, api, data) {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n var ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n var renderUrlDialog = function (internalDialog, extra, editor, backstage) {\n var _a;\n var header = getHeader(internalDialog.title, backstage);\n var body = renderIframeBody(internalDialog);\n var footer = internalDialog.buttons.bind(function (buttons) {\n if (buttons.length === 0) {\n return Optional.none();\n } else {\n return Optional.some(renderModalFooter({\n buttons: buttons\n }, backstage));\n }\n });\n var dialogEvents = SilverDialogEvents.initUrlDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, backstage.shared.providers, extra));\n var styles = __assign(__assign({}, internalDialog.height.fold(function () {\n return {};\n }, function (height) {\n return {\n 'height': height + 'px',\n 'max-height': height + 'px'\n };\n })), internalDialog.width.fold(function () {\n return {};\n }, function (width) {\n return {\n 'width': width + 'px',\n 'max-width': width + 'px'\n };\n }));\n var classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n var iframeUri = new global$1(internalDialog.url, {\n base_uri: new global$1(window.location.href)\n });\n var iframeDomain = iframeUri.protocol + '://' + iframeUri.host + (iframeUri.port ? ':' + iframeUri.port : '');\n var messageHandlerUnbinder = unbindable();\n var extraBehaviours = [config('messages', [runOnAttached(function () {\n var unbind = bind(SugarElement.fromDom(window), 'message', function (e) {\n if (iframeUri.isSameOrigin(new global$1(e.raw.origin))) {\n var data = e.raw.data;\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(unbind);\n }), runOnDetached(messageHandlerUnbinder.clear)]), Receiving.config({\n channels: (_a = {}, _a[bodySendMessageChannel] = {\n onReceive: function (comp, data) {\n descendant(comp.element, 'iframe').each(function (iframeEle) {\n var iframeWin = iframeEle.dom.contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }, _a)\n })];\n var spec = {\n header: header,\n body: body,\n footer: footer,\n extraClasses: classes,\n extraBehaviours: extraBehaviours,\n extraStyles: styles\n };\n var dialog = renderModalDialog(spec, internalDialog, dialogEvents, backstage);\n var instanceApi = getUrlDialogApi(dialog);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n var setup$2 = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function () {\n ModalDialog.hide(alertDialog);\n callback();\n };\n var memFooterClose = record(renderFooterButton({\n name: 'close-alert',\n text: 'OK',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'cancel', extras.backstage));\n var titleSpec = pUntitled();\n var closeSpec = pClose(closeDialog, sharedBackstage.providers);\n var alertDialog = build$1(renderDialog$1({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [memFooterClose.asSpec()]))),\n onEscape: closeDialog,\n extraClasses: ['tox-alert-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n var footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return {\n open: open\n };\n };\n var setup$1 = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function (state) {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n var memFooterYes = record(renderFooterButton({\n name: 'yes',\n text: 'Yes',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'submit', extras.backstage));\n var footerNo = renderFooterButton({\n name: 'no',\n text: 'No',\n primary: false,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'cancel', extras.backstage);\n var titleSpec = pUntitled();\n var closeSpec = pClose(function () {\n return closeDialog(false);\n }, sharedBackstage.providers);\n var confirmDialog = build$1(renderDialog$1({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [footerNo, memFooterYes.asSpec()]))),\n onEscape: function () {\n return closeDialog(false);\n },\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, function () {\n return closeDialog(false);\n }), run$1(formSubmitEvent, function () {\n return closeDialog(true);\n })],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n var footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return {\n open: open\n };\n };\n var validateData = function (data, validator) {\n return getOrDie(asRaw('data', validator, data));\n };\n var isAlertOrConfirmDialog = function (target) {\n return closest(target, '.tox-alert-dialog') || closest(target, '.tox-confirm-dialog');\n };\n var inlineAdditionalBehaviours = function (editor, isStickyToolbar, isToolbarLocationTop) {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: function () {\n return Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer())));\n },\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: ['top']\n })];\n }\n };\n var setup = function (extras) {\n var backstage = extras.backstage;\n var editor = extras.editor;\n var isStickyToolbar$1 = isStickyToolbar(editor);\n var alertDialog = setup$2(extras);\n var confirmDialog = setup$1(extras);\n var open = function (config, params, closeWindow) {\n if (params !== undefined && params.inline === 'toolbar') {\n return openInlineDialog(config, backstage.shared.anchors.inlineDialog(), closeWindow, params.ariaAttrs);\n } else if (params !== undefined && params.inline === 'cursor') {\n return openInlineDialog(config, backstage.shared.anchors.cursor(), closeWindow, params.ariaAttrs);\n } else {\n return openModalDialog(config, closeWindow);\n }\n };\n var openUrl = function (config, closeWindow) {\n return openModalUrlDialog(config, closeWindow);\n };\n var openModalUrlDialog = function (config, closeWindow) {\n var factory = function (contents) {\n var dialog = renderUrlDialog(contents, {\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, editor, backstage);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n var openModalDialog = function (config, closeWindow) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = internalInitialData;\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, backstage);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n var openInlineDialog = function (config$1, anchor, closeWindow, ariaAttrs) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = validateData(internalInitialData, dataValidator);\n var inlineDialog = value$1();\n var isToolbarLocationTop = backstage.shared.header.isPositionedAtTop();\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var refreshDocking = function () {\n return inlineDialog.on(function (dialog) {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n };\n var dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, backstage, ariaAttrs);\n var inlineDialogComp = build$1(InlineView.sketch(__assign(__assign({\n lazySink: backstage.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: {}\n }, isToolbarLocationTop ? {} : {\n fireRepositionEventInstead: {}\n }), {\n inlineBehaviours: derive$1(__spreadArray([config('window-manager-inline-events', [run$1(dismissRequested(), function (_comp, _se) {\n emit(dialogUi.dialog, formCancelEvent);\n })])], inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop), true)),\n isExtraPart: function (_comp, target) {\n return isAlertOrConfirmDialog(target);\n }\n })));\n inlineDialog.set(inlineDialogComp);\n InlineView.showWithin(inlineDialogComp, premade(dialogUi.dialog), {\n anchor: anchor\n }, Optional.some(body()));\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n var confirm = function (message, callback) {\n confirmDialog.open(message, function (state) {\n callback(state);\n });\n };\n var alert = function (message, callback) {\n alertDialog.open(message, function () {\n callback();\n });\n };\n var close = function (instanceApi) {\n instanceApi.close();\n };\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n close: close,\n confirm: confirm\n };\n };\n function Theme() {\n global$g.add('silver', function (editor) {\n var _a = setup$3(editor),\n uiMothership = _a.uiMothership,\n backstage = _a.backstage,\n renderUI = _a.renderUI,\n getUi = _a.getUi;\n Autocompleter.register(editor, backstage.shared);\n var windowMgr = setup({\n editor: editor,\n backstage: backstage\n });\n return {\n renderUI: renderUI,\n getWindowManagerImpl: constant$1(windowMgr),\n getNotificationManagerImpl: function () {\n return NotificationManagerImpl(editor, {\n backstage: backstage\n }, uiMothership);\n },\n ui: getUi()\n };\n });\n }\n Theme();\n})();","// Exports the \"default\" icons for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/icons/default')\n// ES2015:\n// import 'tinymce/icons/default'\nrequire('./icons.js');","// Exports the \"silver\" theme for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/themes/silver')\n// ES2015:\n// import 'tinymce/themes/silver'\nrequire('./theme.js');"],"mappings":"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","names":["require_icons","__commonJSMin","require_theme","__commonJSMin","typeOf","x","isType$1","type","value","isSimpleType","eq$1","t","a","isString","isObject","isArray","isNull","isBoolean","isUndefined","isNullable","isNonNullable","isFunction","isNumber","isArrayOf","pred","i","len","noop","noarg","f","compose","fa","fb","args","_i","compose1","fbc","fab","constant$1","identity$1","tripleEquals","b","curry","fn","initialArgs","restArgs","all","not","die","msg","never","always","global$g","__assign","s","n","p","__rest","e","__spreadArray","to","from","pack","l","ar","none","NONE","call","thunk","id","me","_s","some","constant_a","self","bind","from$1","Optional","nativeSlice","nativeIndexOf","nativePush","rawIndexOf","ts","indexOf","xs","r","contains$2","exists","range$2","num","chunk$1","array","size","map$2","each$1","eachr","partition$3","pass","fail","arr","filter$2","foldr","acc","foldl","findUntil","until","find$5","findIndex$1","flatten","bind$3","forall","reverse","difference","a1","a2","mapToObject","pure$2","sort","comparator","copy","get$f","head","last$2","findMap","keys","hasOwnProperty$1","each","obj","props","k","map$1","tupleMap","tuple","objAcc","internalFilter","onTrue","onFalse","filter$1","mapToArray","name","find$4","values","get$e","key","has$2","hasNonNullableKey","is$1","lhs","rhs","left","equals","lift2","cat","push","sequence","oa","ob","lift3","oc","mapFrom","someIf","addToEnd","str","suffix","removeFromStart","numChars","checkRange","substr","start","removeLeading","prefix","startsWith","ensureTrailing","endsWith","contains$1","blank","trim$1","isNotEmpty","isEmpty","isSupported$1","dom","fromHtml$2","html","scope","doc","div","fromDom","fromTag","tag","node","fromText","text","fromPoint","docElm","y","SugarElement","DOCUMENT","DOCUMENT_FRAGMENT","ELEMENT","TEXT","name$2","element","isType","isElement$2","isText$1","isDocument","isDocumentFragment","cached","called","DeviceType","os","browser","userAgent","mediaMatch","isiPad","isiPhone","isMobile","isTouch","isTablet","isPhone","iOSwebview","isDesktop","firstMatch","regexes","find$3","agent","group","nu$d","detect$4","versionRegexes","cleanedAgent","unknown$3","major","minor","Version","detectBrowser$1","browsers","userAgentData","uaBrand","lcBrand","_a","info","detect$3","candidates","candidate","detectBrowser","version","detectOs","oses","normalVersionRegex","checkContains","target","uastring","PlatformInfo","edge","chrome","ie","opera","firefox","safari","unknown$2","nu$c","current","isBrowser","Browser","windows","ios","android","linux","osx","solaris","freebsd","chromeos","unknown$1","nu$b","isOS","OperatingSystem","detect$2","userAgentDataOpt","deviceType","PlatformDetection","query","platform","detect$1","compareDocumentPosition","match","documentPositionContainedBy","is","selector","elem","bypassSelector","all$3","base","one","eq","e1","e2","regularContains","d1","d2","ieContains","contains","owner$4","documentOrOwner","dos","documentElement","defaultView","parent","parentNode","offsetParent","nextSibling","children","child$2","index","cs","firstChild","spot","offset","leaf","isShadowRoot","supported","isSupported","getRootNode","getContentContainer","isInShadowRoot","getShadowRoot","getShadowHost","getOriginalEventTarget","event","el","isOpenShadowHost","composedPath","inBody","body","getBody","rawSet","set$8","setAll$1","attrs","v","get$d","getOpt","has$1","remove$7","internalSet","property","internalRemove","set$7","setAll","css","setOptions","get$c","styles","getUnsafeProperty","getRaw","raw","getAllRaw","ruleName","isValidValue","style","remove$6","reflow","Dimension","getOffset","set","h","get","getOuter","aggregate","properties","val","max","cumulativeInclusions","absoluteMax","api$3","get$b","getOuter$2","setMax$1","inclusions","absMax","r$1","top","translate","SugarPosition","boxPosition","box","firstDefinedOrZero","absolute$3","win","scrollTop","scrollLeft","clientTop","clientLeft","viewport$1","api$2","set$6","get$a","getOuter$1","setMax","mkEvent","stop","prevent","kill","fromRawEvent$1","rawEvent","handle","filter","handler","binder","useCapture","wrapped","unbind","bind$2","capture$1","before$2","marker","parent$1","after$2","sibling","append$2","prepend$1","firstChild$1","appendAt","before$1","elements","append$1","empty","rogue","remove$5","unwrap","wrapper","children$1","get$9","_DOC","get$8","_win","bounds$1","width","height","getBounds$3","scroll","visualViewport","walkUp","navigation","frame","rest","pathTo","d","paths","view","owner$3","Navigation","find$2","path","frames","loc","pointed","point","rect","bounds","box$1","xy","w","absolute$2","position","value$3","o","or","_opt","orThunk","_f","map","mapError","fold","_","onValue","toOptional","error$1","message","getOrThunk","getOrDie","onError","fromOption","opt","err","Result","SimpleResultType","fold$1","res","partition$2","results","errors","bind$1","bindError","svalue","serror","toResult$1","fromResult$1","SimpleResult","field$2","newKey","presence","prop","customField$1","instantiator","ifField","ifCustom","shallow$1","old","nu","deep","bothObjects","deepMerge","baseMerge","merger","objects","ret","j","curObject","merge$1","required$2","defaultedThunk","fallbackThunk","defaulted$1","fallback","asOption","mergeWithThunk","baseThunk","mergeWith","mergeValues$1","mergeErrors$1","consolidateObj","partition","consolidateArr","partitions","ResultCombine","formatObj","input","formatErrors","es","nu$a","getErrorInfo","missingRequired","missingKey","missingBranch","branches","branch","unsupportedFields","unsupported","custom","value$2","validator","extract","toString","anyValue$1","requiredAccess","bundle","fallbackAccess","optionAccess","optionDefaultedAccess","extractField","field","av","bundleAsOption","optValue","ov","result","extractFields","fields","success","fields_1","valueThunk","getDelegate","getSetKeys","objOfOnly","delegate","objOf","fieldNames","extra","fieldStrings","_okey","_presence","_instantiator","arrOf","oneOf","props_1","setOf$1","validateKeys","keys$1","validatedKeys","validKeys","schema","vk","_desc","processor","getP","arrOfObj","anyValue","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","isPostMessageable","postMessageable","chooseFrom","ch","vp","choose$2","choice","chosen","arrOfVal","valueOf","setOf","extractValue","label","errs","asRaw","extraction","errInfo","formatError","asRawOrDie$1","choose$1","thunkOf","desc","field$1","customField","validateEnum","required$1","requiredOf","requiredNumber","requiredString","requiredStringEnum","requiredBoolean","requiredFunction","forbid","_v","requiredObjOf","objSchema","requiredArrayOfObj","objFields","requiredArrayOf","option","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","optionObjOfOnly","defaulted","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedPostMsg","defaultedArrayOf","defaultedObjOf","Cell","initial","generate$7","cases","constructors","adt","acase","count","argLength","branchKeys","allReqd","reqKey","foldArgs","Adt","partition$1","exclude$1","wrap$2","wrapAll$1","keyvalues","kv","exclude","wrap$1","wrapAll","mergeValues","mergeErrors","consolidate","objs","ensureIsRoot","isRoot","ancestor$2","transform","transformed","closest$4","isSource","component","simulatedEvent","defaultEventHandler","nu$9","parts","all$2","handlers","any","read$2","fuse$1","can","abort","run","constant","touchstart","touchmove","touchend","touchcancel","mousedown","mousemove","mouseout","mouseup","mouseover","focusin","focusout","keydown","keyup","change","click","transitioncancel","transitionend","transitionstart","selectstart","prefixName","alloy","focus$4","postBlur","postPaste","receive","execute$5","focusItem","tap","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight$1","dehighlight$1","emit","dispatchWith","emitWith","emitExecute","dispatch","data","dispatchEvent","derive$2","configs","predicate","preventDefault","run$1","runActionExtra","action","runOnName","runOnSourceName","redirectToUid","uid","redirectee","redirectToPart","detail","partName","runWithTarget","ev","closest","cutter","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute$1","fromHtml$1","get$7","set$5","content","owner","docDom","fragment","contentElements","container","clone","clone$2","original","isDeep","shallow","getHtml","isRecursive","originator","events$i","DefaultEvents","unique","generate$6","date","time","random","prefix$1","idAttr$1","idAttr","write","writeOnly","read$1","generate$5","make$8","NoContextApi","getComp","getMessage","warn","singleton$1","markAsBehaviourApi","apiName","apiFunction","endIndex","openBracketIndex","parameters","cleanParameters","markAsExtraApi","extraName","markAsSketchApi","premadeTag","premade$1","comp","getPremade","spec","makeApi","NoState","nu$8","generateFrom$1","validated","optBlobThunk","output","blob","getBehaviours$3","bData","getData$2","byInnerKey","indexKey","chain","nu$7","merge","defnA","mod","combine$2","baseMod","behaviours","modsByBehaviour","behaviour","byAspect","modification","combineObjects","combinedClasses","combinedAttributes","combinedStyles","sortKeys","keyName","order","sorted","aKey","bKey","aIndex","bIndex","uncurried","purpose","curried","curryArgs","descHandler","extraArgs","getCurried","behaviourTuple","nameToHandlers","groupByEvents","behaviourEvents","combine$1","eventOrder","byEventName","combineGroups","assemble","rawHandler","missingOrderError","eventName","tuples","c","fuse","sortedTuples","combined","assembled","_a$2","baseBehaviour","schema$z","toInfo","toDefinition","toModification","toEvents","read","attr","add$4","remove$4","supports","get$6","add$3","clazz","remove$3","add$2","cleanClass","classList","remove$2","has","add$1","classes","remove$1","hasAll","get$5","set$4","renderToDom","definition","subject","getBehaviours$2","generateFrom","generate$4","getDomDefinition","bList","infoModification","baseModification","getEvents","baseEvents","build$2","getMe","systemApi","bBlob","modDefinition","item","events","subcomponents","connect","newApi","disconnect","syncComponents","subs","child","config","hasConfigured","getApis","readState","behaviourName","buildSubcomponents","components","build$1","buildFromSpec","userSpec","specEvents","completeSpec","text$1","textContent","external$2","extSpec","uids","isSketchSpec$1","userSpecWithUid","premade","ClosestOrAncestor","ancestor","ancestor$1","closest$3","test","child$1","descendant$1","descend","child_1","closest$2","descendant","closest$1","find$1","queryElem","dependent","dep","manager","ariaId","link","unlink","isAriaPartOf","isPartOf$1","unknown","EventConfiguration","eventConfig","makeEventLogger","initialTarget","startTime","_name","finishTime","processEvent","status","patterns","noLogger","logger","getTrace","lines","line","ignoreEvent","monitorEvent","menuFields","itemFields","itemSchema$3","_initSize","itemMarkers","tieredMenuMarkers","markers$1","required","onPresenceHandler","fieldName","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","output$1","snapshot","initSize","nu$6","bubble","direction","placement","boundsRestriction","labelPrefix","alwaysFit","adt$a","cata$2","southeast","southwest","northeast","northwest","south","north","east","west","cataVertical","middle","cataHorizontal","southeast$3","southwest$3","northeast$3","northwest$3","south$3","north$3","east$3","west$3","cycleBy","delta","min","clamp$1","getRestriction","anchor","restriction","restrictions","dir","adjustBounds","bubbleOffset","applyRestriction","pos","isVerticalAxis","newPos","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","labelPrefix$2","eastX$1","middleX$1","westX$1","northY$2","southY$2","centreY$1","eastEdgeX$1","westEdgeX$1","southeast$2","bubbles","southwest$2","northeast$2","northwest$2","north$2","south$2","east$2","west$2","all$1","allRtl$1","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","chooseChannels","channels","events$h","receiveConfig","channelMap","receivingData","targetChannels","channelInfo","channelSchema","ActiveReceiving","ReceivingSchema","executeEvent","bConfig","bState","executor","loadEvent","_simulatedEvent","create$9","active","apis","state","configSchema","schemaSchema","doCreate","createModes$1","modes","wrapApi","bName","revokeBehaviour","getConfig","wrappedApis","apiF","wrappedExtra","extraF","prepared","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$8","modeSchema","createModes","revoke","Receiving","exhibit$6","posConfig","ActivePosition","getDocument","focus$3","blur$1","hasFocus","root","search","preserve$1","refocus","focused","oldFocus","newFocus","NuPositionCss","right","bottom","toPx","toOptions","applyPositionCss","adt$9","positionWithDirection","posName","decision","decisionRect","decisionX","decisionY","decisionWidth","decisionHeight","decisionRight","decisionBottom","reposition","origin","toBox","rel","viewport","getBounds","translate$2","removeScroll","outerScroll","cata$1","onNone","onRelative","onFixed","relative$1","fixed$1","anchorBox","placementAttribute","setPlacement$1","getPlacement","reset$2","adt$8","determinePosition","boundsX","boundsY","boundsRight","boundsBottom","xInBounds","yInBounds","originInBounds","rightInBounds","bottomInBounds","sizeInBounds","visibleW","visibleH","calcReposition","maxX","maxY","restrictedX","restrictedY","restrictedWidth","restrictedHeight","calcMaxSizes","upAvailable","downAvailable","maxHeight","westAvailable","eastAvailable","maxWidth","attempt","adjustedBounds","newX","newY","fits","fittedBox","isPartlyVisible","_b","attempts","elementBox","panelWidth","panelHeight","attemptBestFit","layout","isVisible","next","attemptLayout","newReposition","newVisibleW","newVisibleH","newIsVisible","improved","abc","bestNext","singleton","doRevoke","clear","isSet","destroyable","unbindable","api$1","value$1","on","capture","fromRawEvent","timerAttr","isTransitioning$1","transition","shouldApplyTransitionCss","lastPlacement","placer","mode","hasChanges","intermediate","round","newValue","getTransitionDuration","times","parse","delay","duration","dur","setupTransitionListeners","transitionEnd","transitionCancel","timer","isSourceTransition","pseudoElement","transitionDone","transitionStarted","transitionStart_1","startTransitioning","timerId","applyTransitionCss","shouldTransition","intermediatePosition_1","intermediateCssOptions","elementSize","options","setClasses","classInfo","setHeight","maxHeightFunction","setWidth","maxWidthFunction","position$2","positionCss","setPlacement","setMaxHeight","anchored","available","expandable$1","defaultOr","dephault","simple","layouts","overrideOptions","go","allAlignments","nu$5","xOffset","yOffset","insetModifier","insetXOffset","insetYOffset","getClasses","make","xDelta","yDelta","alignmentsOn","alignmentsOff","nu$4","onDirection","isLtr","isRtl","getDirection","AttributeValue","Attribute","isBottomToTopDir","schema$y","get$4","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","ls","customRtl","ltr","rtl","placement$4","anchorInfo","hotspot","HotspotAnchor","placement$3","MakeshiftAnchor","adt$7","toFixed","toAbsolute","sum","points","sumAsFixed","positions","sumAsAbsolute","screen","absolute$1","hasSameOwner","frameOwner","compOwner","getRootPoint","getBox","calcNewAnchor","optBox","rootPoint","topLeft","layoutsLtr","layoutsRtl","placement$2","nodeBox","NodeAnchor","zeroWidth","nbsp","create$7","soffset","finish","foffset","SimRange","adt$6","cata","onBefore","onOn","onAfter","getStart$1","situ","before","on$1","after$1","Situ","adt$5","exactFromRange","simRange","getStart","selection","rng","startSitu","_finishSitu","_soffset","_finish","_foffset","domRange","relative","exact","getWin","range$1","SimSelection","setStart","setFinish","relativeToNative","finishSitu","range","exactToNative","toRect","getFirstRect$1","rects","getBounds$2","adt$4","fromRange","getRanges","doDiagnose","ranges","reversed","rev","diagnose","asLtrRange","diagnosis","NodeValue","getOption","api","get$3","getEnd","isTextNodeWithCursorPosition","elementsWithCursorPosition","isCursorPosition","hasCursorPosition","last$1","descendantRtl","descendants","makeRange","after","same","getNativeSelection","readRange","firstRng","lastRng","doGetExact","focus_1","getExact","sel","getFirstRect","getBounds$1","point$1","descendOnce$1","last","descendOnce","getAnchorSelection","getSelection","modStart","modFinish","placement$1","selectionBox","optRect","rawRect","targetElement","SelectionAnchor","labelPrefix$1","eastX","westX","northY$1","southY$1","southeast$1","southwest$1","northeast$1","northwest$1","allRtl","submenuInfo","SubmenuAnchor","AnchorSchema","TransitionSchema","PositionSchema","PlacementSchema","getFixedOrigin","getRelativeOrigin","place","anchoring","placee","lastPlace","position$1","posState","placementSpec","positionWithin","boxElement","boundsBox","positionWithinBounds","placeeDetail","anchorage","placeeState","oldVisibility","doPlace","newState","vis","getMode","pConfig","_pState","reset$1","PositionApis","init$g","PositioningState","Positioning","fireDetaching","fireAttaching","attach$1","detachChildren$1","childComp","replaceChildren","newChildren","deleted","attach","attachWith","insertion","doDetach","detach","detachChildren","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","_data","built","open$1","setContent","openWhileCloaked","transaction","cloak","decloak","close$1","isOpen$1","_sandbox","_sConfig","isPartOf","getState$2","store","cssKey","restore","oldValue","_sState","sink","hasPosition","SandboxApis","events$g","sandboxConfig","sandboxState","ActiveSandbox","SandboxSchema","init$f","contents","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$x","receivingChannel$1","rawSpec","isPart","fe","schema$w","receivingChannel","onLoad$5","repConfig","repState","onUnload$2","setValue$3","getValue$3","getState$1","RepresentApis","events$f","_se","ActiveRepresenting","memory$1","isNotSet","manual","dataset","dataByValue","dataByText","lookup","itemString","update","items","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","init$e","RepresentState","setValue$2","getValue$2","onLoad$4","onUnload$1","DatasetStore","getValue$1","_repState","setValue$1","onLoad$3","ManualStore","setValue","getValue","onLoad$2","initVal","onUnload","MemoryStore","RepresentSchema","Representing","source","forbidden","get$2","augment","SketchBehaviours","_placeholder","adt$3","isSubstituted","subPlaceholder","compSpec","placeholders","newSpec","scan","substitute","req","childSpecs","substituted","valuesThunk","preprocessor","substituteAll","oneReplace","replacements","used","replace","substitutePlaces","ps","ph","outcome","single$2","multiple","placeholder","adt$2","fFactory","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","part","name$1","asCommon","convert","adtConstructor","partSchema","external$1","optional","PartType","combine","partSpec","partValidated","internals","externals","_partSpec","_partValidated","units","u","generate$3","np","g","doGenerateOne","pname","generateOne$1","schemas","names","substitutes","components$1","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","_k","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","partSchemas","partUidsSchemas","asRawOrDie","baseS","single$1","factory","specWithUid","supplyUid","composite$1","partUidsSchema","hasUid","isSketchSpec","singleSchema","compositeSchema","single","rawConfig","sketch","extraApis","composite","inside","getCurrent","composeConfig","_composeState","ComposeApis","ComposeSchema","Composing","nativeDisabled","onLoad$1","disableConfig","disableState","disable$1","enable$1","hasNative","nativeIsDisabled","nativeDisable","nativeEnable","ariaIsDisabled","ariaDisable","ariaEnable","_disableState","disableClass","isDisabled","set$3","disabled","DisableApis","exhibit$5","events$e","ActiveDisable","DisableSchema","Disabling","dehighlightAllExcept","hConfig","hState","skip","highlighted","skipComp","dehighlightAll","dehighlight","isHighlighted","highlight","highlightFirst","getFirst","firstComp","highlightLast","getLast","lastComp","highlightAt","getByIndex","highlightBy","getCandidates","targetComp","queryTarget","getHighlighted","_hState","getDelta$2","selected","dest","getPrevious","getNext","HighlightApis","HighlightSchema","Highlighting","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","cyclePrev","tryPrev","cycleNext","tryNext","inSet","and","preds","isShift","isControl","isNotShift","rule","matches","choose","transitions","reportFocusShifting","prevFocus","noChange","dom$2","focusee","highlights","FocusInsideModes","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","rules","onFocusHandler","focusIn","tryGoInsideComponent","isEnterOrSpace","keyboardEvents","create$6","cyclicField","tabbingConfig","findInitial","tabstops","visibles","findCurrent","isTabstop","_tabbingState","goFromTabstop","stopIndex","cycle","tabstop","optStopIndex","goBackwards","navigate","goForwards","execute","exit","AcyclicType","CyclicType","doDefaultExecute","defaultExecute","isComplex","stopEventForFirefox","_component","schema$v","execute$4","executeConfig","getKeydownRules$5","_executeState","spaceExec","enterExec","downExec","execKeys","getKeyupRules$5","ExecutionType","flatgrid$1","dimensions","setGridSize","numRows","numColumns","getNumRows","getNumColumns","init$d","KeyingState","useH","movement","move","use","west$1","moveLeft","moveRight","east$1","useV","north$1","south$1","move$1","isHidden$1","locate","locateVisible","visible","findIndex","withGrid","numCols","oldRow","oldColumn","address","newIndex","cycleHorizontal$1","onLastRow","colsInRow","newColumn","cycleVertical$1","newRow","newCol","cycleRight$1","cycleLeft$1","cycleUp$1","cycleDown$1","schema$u","focusIn$3","gridConfig","_gridState","first","findCurrent$1","execute$3","doMove$2","gridState","identified","handleTab","doEscape$1","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$4","getKeyupRules$4","FlatgridType","horizontal","isDisabledButton","tryCycle","schema$t","flowConfig","execute$2","focusIn$2","_state","moveLeft$2","moveRight$2","doMove$1","flowState","doEscape","getKeydownRules$3","_flowState","westMovers","eastMovers","getKeyupRules$3","FlowType","toCell","matrix","rowIndex","columnIndex","row","cell","cycleHorizontal","startCol","deltaCol","newColIndex","cycleVertical","colIndex","startRow","deltaRow","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","cycleRight","cycleLeft","cycleUp","cycleDown","moveLeft$1","moveRight$1","moveUp$1","moveDown$1","schema$s","focusIn$1","matrixConfig","selectors","execute$1","toMatrix","rows","doMove","ifCycle","ifMove","inRow","cellsInRow","allRows","moveNorth","moveSouth","getKeydownRules$2","getKeyupRules$2","MatrixType","schema$r","menuConfig","moveUp","moveDown","fireShiftTab","menuState","fireTab","getKeydownRules$1","getKeyupRules$1","MenuType","schema$q","specialInfo","SpecialType","acyclic","cyclic","flow","flatgrid","execution","menu","special","KeyboardBranches","isFlatgridState","keyState","Keying","keyConfig","sendFocusIn","set$2","replaceConfig","replaceState","insert","childSpec","append","appendee","prepend","prependee","remove","removee","foundChild","_replaceConfig","replaceAt","replaceeIndex","replacer","replacee","replaceBy","replaceePred","ReplaceApis","Replacing","events$d","eventHandlers","focus$2","focusConfig","blur","isFocused","FocusApis","exhibit$4","events$c","ActiveFocus","FocusSchema","Focusing","SetupBehaviourCellState","initialState","init","updateAriaState","toggleConfig","toggleState","ariaInfo","updateClass","toggleClass","toggle$2","set$1","off","isOn","onLoad","ToggleApis","exhibit$3","events$b","load","ActiveToggle","updatePressed","updateExpanded","updateSelected","updateChecked","ToggleSchema","Toggling","pointerEvents","onClick","events$a","optAction","executeHandler","hoverEvent","focusEvent","onHover","onFocus$1","hover","focus$1","builder$2","tConfig","schema$p","builder$1","schema$o","owner$2","parts$h","builder","focusWidget","widget","onHorizontalArrow","_widget","schema$n","itemSchema$2","configureGrid","movementInfo","configureMatrix","configureMenu","parts$g","itemInfo","schema$m","focus","make$7","_spec","_externals","Menu","transpose$1","trace","byItem","byMenu","triggerItem","triggerMenu","generate$2","menus","expansions","menuItems","menuPaths","_triggerItem","submenu","init$c","primary","directory","isClear","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","getTriggeringItem","menuValue","getTriggerData","getItemByValue","getPreparedMenu","triggeringItemValue","triggeredItem","getTriggeringPath","itemValue","extraPath","lookupItem","revPath","triggers","menuIndex","expand","collapse","refresh","lookupMenu","extractPreparedMenu","otherMenus","menuValues","getPrimary","getMenus","prep","LayeredState","make$6","_rawUiSpec","submenuParentItems","buildMenus","primaryName","makeSketch","layeredState","setup","componentMap","toDirectory","getItemValue","_container","_menuName","setActiveMenu","mv","closeOthers","others","getSubmenuParents","parentItems","itemComp","updateAriaExpansions","expanded","updateMenuPath","latestMenuName","menuPrep","activeMenu","ExpandHighlightDecision","buildIfRequired","expandRight","activeMenuPrep","collapseLeft","updateView","onRight","onLeft","onEscape","keyOnItem","getActiveItem","collapseMenuApi","currentItem","highlightPrimary","extractMenuFromContainer","repositionMenus","maybeActivePrimary","allMenus","preparedMenus","triggeringPath","primaryMenu","_keyInfo","collapseItem$1","tieredData","singleData","collapseItem","tieredMenu","tmenu","makeMenu","menuSandbox","menuSpec","lazySink","isFirstTierSubmenu","triggeringPaths","getSubmenuLayouts","submenuTriggers","st","submenuLayouts","factory$m","isPartOfRelated","related","thing","showAt","showWithin","showWithinBounds","showMenuAt","showMenuWithinBounds","hide","getContent","InlineView","westEdgeX","middleX","eastEdgeX","northY","southY","centreY","lookupPreserveLayout","preserve","lookupFlippedLayout","flip$2","global$f","factory$l","lookupAttr","getModAttributes","roleAttrs","role","Button","getAttrs","attributes","fromHtml","record","anyInSystem","asSpec","_typeof","_setPrototypeOf","_isNativeReflectConstruct","_construct","Parent","Class","Constructor","instance","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","arr2","hasOwnProperty","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create$5","_ref","apply$1","construct","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","unconstruct","func","thisArg","_len","_key","_len2","_key2","addToSet","lcElement","clone$1","object","newObject","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal","_createTrustedTypesPolicy","trustedTypes","document","ATTR_NAME","policyName","createDOMPurify","window","DOMPurify","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","documentMode","hooks","MUSTACHE_EXPR$1","ERB_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","leadingWhitespace","dirtyPayload","_createIterator","_isClobbered","elm","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","_basicCustomElementTest","childNodes","childCount","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","_attr","namespaceURI","_sanitizeShadowDOM","shadowNode","shadowIterator","importedNode","oldNode","returnNode","nodeIterator","serializedHTML","hookFunction","purify","sanitizeHtmlString","global$e","rtlTransform","defaultIconName","defaultIcon","icons","getIconName","rtlName","lookupIcon","get$1","iconProvider","getOr","fallbackIcon","needsRtlTransform","iconName","addFocusableBehaviour","renderIcon$2","rtlIconClasses","iconHtml","render$3","renderFirst","iconNames","notificationIconMap","factory$k","memBannerText","renderPercentBar","percent","renderPercentText","memBannerProgress","updateProgress","progress","updateText","banner","iconChoices","level","memButton","notificationIconSpec","notificationBodySpec","Notification","NotificationManagerImpl","editor","extras","uiMothership","sharedBackstage","getLayoutDirection","notifications","notification","open","settings","closeCallback","hideCloseButton","close","notificationWrapper","contentArea","win$1","notificationSpec","anchorOverrides","layoutDirection_1","nodeAnchor","nuText","getArgs","rate","cancel","throttle","global$d","isBoundary","repeatLeft","process","rootNode","autocompleteSelector","create$4","detect","isValidTextRange","getText","isWhitespace","chr","stripTriggerChar","triggerCh","findChar","char","findStart","initRange","minChars","findTriggerChIndex","triggerCharIndex","getContext","setup$e","redirectKeyToItem","getItem","AutocompleterEditorEvents","global$c","isText","isElement$1","toLast","toLeaf","isPreviousCharContent","isStartOfWord","getTriggerContext","database","lookup$2","getDatabase","context","lookupWithContext","fetchOptions","startText","autocompleters","autocompleter","lookupData","ac","fetchResult","separatorMenuItemSchema","createSeparatorMenuItem","autocompleterItemSchema","autocompleterSchema","createSeparatorItem","createAutocompleterItem","createAutocompleter","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextFormSchema","createContextForm","contextToolbarSchema","createContextToolbar","stringArray","register$b","popups","popup","triggerChars","datasetValues","lookupByChar","dv","ItemResponse","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","tickedClass","groupHeadingClass","iconClass","textClass","accessoryClass","caretClass","checkmarkClass","activeClass","containerClass","containerColumnClass","containerRowClass","containerAlignRightClass","containerAlignLeftClass","containerValignTopClass","containerValignMiddleClass","containerValignBottomClass","classForPreset","presets","forMenu","markers","menuClasses","dom$1","hasIcons","columns","chunk","rowDom","chunks","forSwatch","forToolbar","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","_hasIcons","_item","forHorizontalCollection","menuHasIcons","handleError","error","createHorizontalPartialMenuWithAlloyItems","_columns","_presets","structure","createPartialMenuWithAlloyItems","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$1","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","createCardMenuItem","choiceMenuItemSchema","createChoiceMenuItem","baseFields","insertTableFields","colorSwatchFields","fancyMenuItemSchema","createFancyMenuItem","menuItemSchema","createMenuItem","nestedMenuItemSchema","createNestedMenuItem","toggleMenuItemSchema","createToggleMenuItem","detectSize","margin","selectorClass","descendants$1","columnLength","thisTop","cTop","namedEvents","unnamedEvents","SimpleBehaviours","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","_tConfig","_tState","setComponents","tState","specs","tooltip","TooltippingApis","events$9","tooltipConfig","show","ActiveTooltipping","TooltippingSchema","init$b","clearTimer","resetTimer","TooltippingState","Tooltipping","escape","global$b","global$a","getSkinUrl","skin","skinUrl","skinName","isReadOnly","isSkinDisabled","getHeightSetting","getWidthSetting","getMinWidthSetting","getMinHeightSetting","getMaxWidthSetting","getMaxHeightSetting","getUserStyleFormats","isMergeStyleFormats","getLineHeightFormats","getContentLanguages","getRemovedMenuItems","isMenubarEnabled","isToolbarEnabled","toolbar","isToolbarTrue","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsSetting","toolbars","toolbarArray","ToolbarMode","getToolbarMode","ToolbarLocation","getToolbarGroups","getToolbarLocation","isToolbarLocationBottom","fixedContainerSelector","fixedToolbarContainerTarget","isToolbarPersist","fixedContainerTarget","useFixedContainer","getUiContainer","fixedContainer","isDistractionFree","isStickyToolbar","getStickyToolbarOffset","isDraggableModal$1","getMenubar","getToolbar","getFilePickerCallback","getFilePickerTypes","getFileBrowserCallbackTypes","noTypeaheadUrls","getAnchorTop","getAnchorBottom","getFilePickerValidatorHandler","ReadOnlyChannel","ReadOnlyDataSchema","broadcastReadonly","uiComponents","readonly","outerContainer","setupReadonlyModeSwitch","receivingConfig","button","splitButton","toolbarButton","DisablingConfigs","runWithApi","onControlAttached","editorOffCell","onDestroy","onControlDetached","getApi","_a$1","onMenuItemExecute","itemResponse","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersbackstage","buildData","global$9","convertText","mac","other","shortcut","updated","segment","renderIcon$1","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderSubmenuCaret","renderDownwardsCaret","renderContainer","directionClass","alignClass","getValignClass","renderImage","src","alt","renderColorStructure","providerBackstage","colorPickerCommand","removeColorCommand","itemText","iconSvg","getDom","common","icon","baseDom","renderItemDomStructure","ariaLabel","domTitle","renderNormalItemStructure","providersBackstage","renderIcons","iconSpec","renderIcon","renderEmptyIcon","leftIcon","checkmark","textRender","menuItem","renderItemStructure","tooltipBehaviour","tooltipWorker","_tooltip","encodeText","replaceText","matchText","translated","encoded","escapedMatchRegex","renderAutocompleteItem","useText","onItemValueHandler","_api","render$2","shouldHighlight","renderCardMenuItem","renderChoiceItem","isSelected","parts$f","hexColour","shorthandRegex","longformRegex","isHexString","hex","normalizeHex","fromString$1","getLongForm","hexString","m","extractValues","longForm","splitForm","toHex","fromRgba","rgbaColour","round$1","rgbRegex","rgbaRegex","red","green","blue","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","fireSkinLoaded$1","fireSkinLoadError$1","fireResizeEditor","fireResizeContent","fireScrollContent","fireTextColorChange","hsvColour","fromRgb","minRGB","maxRGB","hexToHsv","hsvToHex","anyToHex","color","canvas","canvasContext","global$8","storageName","ColorCache","storageString","localstorage","prune","list","diff","cache","add","idx","choiceItem","defaultColors","colorCache","mapColors","colorMap","colors","getColorCols$2","defaultCols","hasCustomColors$1","getColorMap","getColors$2","unmapped","getCurrentColors","addColor","fallbackColor","getCurrentColor","format","applyFormat","removeFormat","registerCommands","calcCols","getColorCols$1","getAdditionalColors","hasCustom","applyColor","onChoice","dialog","colorPickerDialog","colorOpt","getColors$1","getFetch$1","callback","setIconColor","splitButtonApi","newColor","registerTextColorButton","lastColor","optCurrentRgb","currentRgb","currentHex","_splitButtonApi","registerTextColorMenuItem","isValid","onSubmit","onAction","details","initialData","register$a","lastForeColor","lastBackColor","createPartialChoiceMenu","select","presetItemTypes","alloyItems","createChoiceItems","itemPresets","deriveMenuMovement","menuMarkers","rowClass","deriveCollectionMovement","renderColorSwatchItem","backstage","getColorItems","widgetSpec","useCustomColors","cellOverEvent","cellExecuteEvent","makeCell","col","labelId","emitCellOver","se","makeCells","cells","selectCells","selectedRow","selectedColumn","makeComponents","cellRow","makeLabelText","renderInsertTableMenuItem","sizeLabelId","emptyLabelText","memLabel","fancyMenuItems","renderFancyMenuItem","render","renderNestedItem","downwardsCaret","caret","renderNormalItem","renderSeparatorItem","innerHtml","renderToggleMenuItem","autocomplete","separator$3","normal","nested","toggle$1","fancy","card","FocusMode","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createAutocompleteItems","highlightOn","createPartialMenu","itemHasIcon","createItem","createPartial","createTieredDataFrom","partialMenu","createMenuFrom","focusMode","focusManager","register$9","activeAutocompleter","processingAction","cancelIfNecessary","isMenuOpen","isActive","hideIfNecessary","lastElement","getAutocompleters","getCombinedItems","triggerChar","choices","itemMeta","nr","autocompleterApi","commenceIfNecessary","display","ld","doLookup","newContext","lookupInfo","combinedItems","onKeypress","autocompleterUiApi","Autocompleter","DelayedFunction","ref","schedule","SIGNIFICANT_MOVE","LONGPRESS_DELAY","getTouch","isFarEnough","touch","distX","distY","monitor","startData","longpressFired","longpress$1","handleTouchstart","handleTouchmove","handleTouchend","isSame","fireIfReady","isDangerous","keyEv","isFirefox","bindFocus","bindBlur","setup$d","rawSettings","tapEvent","simpleEvents","tapStopped","stopped","pasteTimeout","onPaste","onKeydown","onFocusIn","focusoutTimeout","onFocusOut","derive","rawTarget","fromSource","cut","fromExternal","adt$1","doTriggerHandler","eventType","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerHandler","broadcast","listeners","_logger","listener","triggerUntilStopped","triggerOnUntilStopped","broadcastHandler","EventRegistry","registry","registerId","findHandler","filterByType","find","isAboveRoot","unregisterId","handlersById","_eventName","Registry","readOrTag","failOnDuplicate","tagId","conflict","unregister","register","getById","factory$j","domWithoutAttributes","Container","takeover","domEvents","_alloyId","getByUid","getByDom","addToWorld","removeFromWorld","broadcast$1","broadcastOn","broadcastEvent","destroy","broadcastData","receivers","receiver","renderBar","schema$l","parts$e","excludeFactory","factory$i","descriptor","descriptorId","FormField","exhibit$2","tabConfig","ActiveTabstopping","TabstopSchema","Tabstopping","global$7","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormField","renderFormFieldDomWith","renderFormFieldDom","renderLabel$2","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","htmlLines","iconContent","mapItemName","disabledClass","tgt","collectionEvents","currentActive","iterCollectionItems","applyAttributes","childElm","schema$k","focusBehaviours","factory$h","Input","exports$1","module","define","exports","require","global","commonjsGlobal","promise","setTimeoutFunc","Promise","doResolve","deferred","cb","resolve","reject","then","finale","Handler","onFulfilled","onRejected","done","reason","ex","prom","remaining","promisePolyfill","Global","promisePolyfill_1","Promise$1","nu$3","baseFn","callbacks","nCallback","isReady","cbs","pure$1","LazyValue","errorReporter","make$5","aFutureB","anonBind","futureB","toLazy","toCached","toPromise","nu$2","pure","Future","ariaElements","isAriaElement","markValid","invalidConfig","notifyInfo","markInvalid","invalidState","_invalidState","validatorInfo","valid","isInvalid","InvalidateApis","events$8","ActiveInvalidate","InvalidateSchema","Invalidating","getCoupled","coupleConfig","coupleState","CouplingApis","CouplingSchema","init$a","coupled","getOrCreate","CouplingState","Coupling","partType$1","HighlightOnOpen","getAnchor","overrides","fetch","mapFetch","fetcher","openF","highlightOnOpen","futureData","getLazySink","getSink","tdata","onOpenSync","processed","_onOpenSync","_highlightOnOpen","togglePopup","showing","matchWidth","useMinWidth","buttonWidth","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox$1","ariaOwner","onOpen","onClose","sandboxFields","schema$j","parts$d","factory$g","switchToMenu","triggerExecute","Dropdown","exhibit$1","events$7","ActiveUnselecting","Unselecting","renderPanelButton","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","span","emitSwatchChange","colorBit","onItemAction","memColorButton","valueOpt","colorButton","_field","labelPart","edgePart","det","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","modelDetail","model","setValueFrom","spectrum","SliderParts","_sliderChangeEvent","sliderChangeEvent","isTouchEvent$2","evt","getEventSource","touchEvent","mouseEvent","minX","minY","min1X","min1Y","max1X","max1Y","xRange","yRange","halfX","halfY","step","snap","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","currentValue","xValue","yValue","xyValue","fireSliderChange$3","setToTLEdgeXY","setToTEdge","setToTEdgeXY","setToTREdgeXY","setToREdge","setToREdgeXY","setToBREdgeXY","setToBEdge","setToBEdgeXY","setToBLEdgeXY","setToLEdge","setToLEdgeXY","reduceBy","increaseBy","capValue","snapValueOf","initValue","extraValue","remainder","adjustment","rawSteps","maxSteps","numSteps","findOffsetOf","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOfValue$2","maxOffset","centerMinEdge","centerMaxEdge","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$2","sliderValue$2","findValueOfOffset$1","setValueFrom$2","sliderVal","setToMin$2","setToMax$2","moveBy$2","handleMovement$2","getValueFromEvent$2","findOffsetOfValue$1","minEdge","maxEdge","minOffset","findPositionOfValue$1","slider","setPositionFromValue$2","thumb","edges","thumbRadius","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","HorizontalModel","fireSliderChange$1","sliderValue$1","findValueOfOffset","setValueFrom$1","setToMin$1","setToMax$1","moveBy$1","handleMovement$1","getValueFromEvent$1","findOffsetOfValue","findPositionOfValue","setPositionFromValue$1","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange","sliderValue","moveBy","isVerticalMovement","handleMovement","setToMin","mX","mY","setToMax","getValueFromEvent","setPositionFromValue","xPos","yPos","thumbXRadius","thumbYRadius","onUp","onDown","edgeActions","TwoDModel","SliderSchema","sketch$2","getThumb","getSpectrum","getLeftEdge","getRightEdge","getTopEdge","getBottomEdge","changeValue","resetToMin","resetToMax","fireOnChoose","wasDown","onDragStart","onDragEnd","getInitial","Slider","fieldsUpdate","sliderUpdate","paletteUpdate","sliderFactory","getClass","_thumb","owner$1","schema$i","getPartName$1","sketch$1","fSpec","fieldParts","make$4","toResult","form","resPs","resPThunk","pName","Form","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","renderTextField","description","helptext","comps","concats","copyRgbToHex","hexField","copyRgbToForm","rgb","memPreview","updatePreview","preview","copyHexToRgb","setValueRgb","getValueRgb","onInvalidInput","onValidHex","onValidRgb","isHexInputEvent","onValidInput","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","rgbFormSketcher","paletteFactory","_translate","setColour","ctx","grdWhite","grdBlack","setPaletteHue","setPaletteThumb","_detail","getInitialValue","onChange","onInit","_slider","_value","sliderBehaviours","saturationBrightnessPaletteSketcher","_apis","makeFactory","rgbForm","sbPalette","hueSliderToDegrees","hueDegreesToSlider","memSlider","memPalette","memRgb","updatePalette","_hex","palette","updateFields","updateSlider","updatePaletteThumb","updateState","runUpdates","updates","onPaletteUpdate","oldHue","newHsv","newHex","onSliderUpdate","oldRgb","oldHsv","onFieldsUpdate","colourPickerSketcher","self$1","memento$1","mem","childAt","ComposingConfigs","english","getEnglishText","translate$1","renderColorPicker","colourPickerFactory","onInvalidHex","memPicker","picker","optRgbForm","optHex","formValues","pattern","global$6","isOldCustomEditor","renderCustomEditor","editorApi","memReplaced","initialValue","ta","ea","cvalue","ed","global$5","processors","memento","rawProcessors","rawValue","withComp","optInitialValue","getter","setter","withElement","domValue","domHtml","memory","RepresentingConfigs","defaultImageFileTypes","filterByExtension","files","allowedImageFileTypes","isFileInAllowedTypes","file","renderDropZone","actions","onDrop","transferEvent","handleFiles","onSelect","memInput","renderField","inputComp","renderGrid","beforeObject","afterObject","craftWithClasses","craft","triggerTab","shiftKey","onFocus","isPseudoStop","platformNeedsSandboxing","getDynamicSource","isSandbox","cachedValue","_frameComponent","frameComponent","renderIFrame","title","sourcing","create$3","resize$3","tCanvas","get2dContext","getWidth$1","image","getHeight$1","blobToImage","blobUrl","removeListeners","loaded","dataUriToBlobSync","uri","mimetype","base64","sliceSize","byteCharacters","bytesLength","slicesCount","byteArrays","sliceIndex","begin","end","bytes","dataUriToBlob","canvasToBlob","quality","canvasToDataURL","blobToCanvas","revokeImageUrl","blobToDataUri","reader","create$2","getCanvas","initialType","getType","toBlob","toDataURL","toBase64","toAdjustedBlob","toAdjustedDataURL","toAdjustedBase64","dataurl","toCanvas","fromBlob","fromCanvas","blobToImageResult","clamp","parsedValue","identity","DELTA_INDEX","multiply","matrix1","matrix2","out","adjustContrast","adjustBrightness","adjustColors","adjustR","adjustG","adjustB","colorFilter","ir","applyColorFilter","applyMatrix","pixelsData","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","pixels","convoluteFilter","applyConvoluteFilter","pIn","pOut","aMatrix","halfSide","drgba","cy","cx","scx","scy","innerOffset","wt","pixelsIn","pixelsOut","functionColorFilter","colorFn","filterImpl","applyLookup","complexAdjustableColorFilter","matrixAdjustFn","adjust","basicColorFilter","basicConvolutionFilter","kernel","invert$1","brightness$1","contrast$1","colorize$1","sharpen$1","gamma$1","scale","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","_scale","ceilWithPrecision","precision","mul","upper","rotate$1","angle","applyRotate","degrees","rad","sin","cos","newWidth","newHeight","flip$1","axis","applyFlip","crop$1","applyCrop","resize$2","newCanvas","invert","sharpen","gamma","colorize","contrast","flip","crop","resize$1","rotate","iconsProvider","renderIconFromPack","renderReplacableIconFromPack","renderLabel$1","internalToolbarButtonExecute","onToolbarButtonExecute","itemApi","toolbarButtonEventOrder","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","tooltipAttributes","translatedTooltip","memDropdown","displayText","displayIcon","isMenuItemReference","isSeparator$1","isExpandingMenuItem","separator$2","unwrapReferences","realItems","getFromExpandingItem","submenuItems","newMenus","newExpansions","getFromItem","generateValueIfRequired","itemWithValue","newData","build","mainMenu","submenus","getMenuButtonApi","renderMenuButton","_comp","getFetch","getButton","getMenuItemAction","orig","getMenuItemSetup","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","renderIconButton","iconButtonSpec","renderButtonSpec","translatedText","renderButton","buttonSpec","getAction","buttonType","isMenuFooterButtonSpec","isNormalFooterButtonSpec","renderFooterButton","memButton_1","menuButtonSpec","fixedSpec","renderDialogButton","schema$h","getField","coupledPart","selfName","otherName","lock","parts$c","factory$f","FormCoupledInputs","formatSize","unitDec","maxDecimal","unit","numText","parseSize","sizeText","numPattern","convertUnit","inInch","noSizeConversion","_input","ratioSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","renderSizeInput","converter","ratioEvent","makeIcon","pLock","formGroup","getFieldPart","isField1","getLabel","widthField","heightField","_lock","newSize","optCurrent","optOther","value1","value2","undo","redo","zoom","back","apply","swap","transform$1","tempTransform","transformApply","internal","saveState","disable","enable","external","renderEditPanel","imagePanel","createButton","createIconButton","disableAllComponents","eventcomp","enableAllComponents","panelDom","noop$1","emit$1","emitDisable","emitEnable","emitTransform","emitTempTransform","getBackSwap","memContainer","ButtonPanel","emitTransformApply","createBackButton","createSpacer","createApplyButton","makeCropTransform","cropPanelComponents","CropPanel","memSize","makeResizeTransform","resizePanelComponents","sizeInput","ResizePanel","makeValueTransform","horizontalFlip","verticalFlip","counterclockwiseRotate","clockwiseRotate","flipRotateOnAction","operation","flipRotateComponents","FlipRotatePanel","makeSlider","onChoose","makeVariableSlider","valTransform","variableFilterPanelComponents","createVariableFilterPanel","filterPanelComponents","FilterPanel","BrightnessPanel","ContrastPanel","GammaPanel","makeColorTransform","makeColorSlider","redOpt","memRed","blueOpt","memBlue","greenOpt","memGreen","colorizePanelComponents","ColorizePanel","getTransformPanelEvent","panel","cropPanelUpdate","_anyInSystem","resizePanelUpdate","measurements","sharpenTransform","invertTransform","buttonPanelComponents","getApplyButton","global$4","global$3","global$2","getDocumentSize","scrollWidth","clientWidth","offsetWidth","scrollHeight","clientHeight","offsetHeight","isTouchEvent$1","updateWithTouchData","DragHelper","_c","eventOverlay","handleEvents","overlayEvents","sugarDoc","downButton","startX","startY","handleElement","docSize","cursor","drag","create$1","currentRect","viewPortRect","clampRect","containerElm","dragHelpers","handles","blockers","getAbsoluteRect","outerRect","relativeRect","getRelativeRect","innerRect","getInnerRect","moveRect","startRect","deltaX","deltaY","setInnerRect","createDragHelper","cropContainer","blocker","blockerElm","cropBlocker","handleElm","cropHandle","repaint","handleFocus","handleKeydown","activeHandle","moveAndBlock","toggleVisibility","elems","updateElementRect","newRect","setRect","setViewPortRect","setClampRect","helper","CropRect","loadImage","renderImagePanel","initialUrl","memBg","zoomState","cropRect","rectState","viewRectState","repaintImg","img","panelW","panelH","bg","cRect","zoomFit","updateSrc","url","aImg","lastViewRect","viewRect","currentZoom","newZoom","showCrop","hideCrop","getRect","getMeasurements","setButtonEnabled","enabled","renderSideBar","updateButtonUndoStates","undoEnabled","redoEnabled","memUndo","memRedo","UndoStack","removed","canUndo","canRedo","makeState","blobState","tempState","undoStack","getBlobState","setBlobState","getTempState","updateTempState","newTempState","createState","destroyTempState","destroyState","destroyStates","states","addBlobState","addTempState","applyTempState","postApply","temp","currentState","getHistoryStates","renderImageTools","historyStates","sideBar","disableUndoRedo","_oImg","unblock","imageResultToBlob","block","editPanel","applyButton","blobManipulate","manipulate","tempManipulate","manipulateApply","currentUrl","renderLabel","backstageShared","isSingleListItem","dataAttribute","fetchItems","dropdownComp","selectedValue","findItemByValue","renderListBox","initialItem","sketchSpec","listBoxWrap","renderPanel","factory$e","initialValues","found","HtmlSelect","renderSelectBox","translatedOptions","chevron","selectWrap","renderTable","renderTh","renderHeader","header","renderTd","renderTr","renderRows","baseInputBehaviours","validatingBehaviours","vl","inputMode","inputAttributes","extraClasses2","renderInput","renderTextarea","events$6","streamConfig","streamState","streams","ActiveStreaming","_config","setTimer","init$9","StreamingState","setup$c","streamInfo","sInfo","throttler","StreamingSchema","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","setSelectionToEnd","startOffset","attemptSelectOver","inputDisplay_1","itemDisplay","itemExecute","make$3","navigateList","highlighter","focusBehaviours$1","focusInInput","previousValue_1","pv","sandboxIsOpen","typeahead","schema$g","parts$b","Typeahead","wrap","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","timeout","errorThunk","timedOut","nu$1","worker","fromResult","fromFuture","future","fromPromise","completer","FutureResult","separator$1","toMenuItem","staticMenuItem","toMenuItems","targets","filterLinkTargets","filteredTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTargetBottom","historyTargets","history","joinMenuLists","bothEmpty","filterByQuery","term","lowerCaseTerm","getItems","fileType","urlBackstage","urlInputValue","errorId","renderUrlInput","updateHistory","urlEntry","memUrlBox","_newValue","memInvalidIcon","invalidComp","validation","_menu","_entry","errId","memStatus","optUrlPicker","browseUrlEvent","memUrlPickerButton","controlHWrapper","openUrlPicker","componentData","urlData","chosenData","renderAlertBanner","renderCheckbox","repBehaviour","toggleCheckboxHandler","className","memIcons","renderHtmlPanel","make$2","makeIframe","iframeSpec","factories","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","bubbleAlignments$2","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","bubbleSize","editableAreaAnchor","standardAnchor","getBannerAnchor","getCursorAnchor","bodyElement","getNodeAnchor$1","getAnchors","isToolbarTop","useFixedToolbarContainer","colorPicker","hasCustomColors","getColors","getColorCols","ColorInputBackstage","isDraggableModal","DialogBackstage","HeaderBackstage","defaultStyleFormats","isNestedFormat","isBlockFormat","isInlineFormat","isSelectorFormat","mapFormats","userFormats","fmt","formatName","formatNameWithPrefix","registerCustomFormats","registerFormats","customFormats","getStyleFormats","registeredUserFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","register$8","formats","enrichSupported","enrichMenu","submenuSpec","enrichCustom","customSpec","newItem","doEnrich","newItems","init$8","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","_e","enriched","modifications","getData","fromSettings","fromEvents","getFlattenedKeys","isElement","trim","hasContentEditableState","isContentEditableTrue","isContentEditableFalse","create","isChildOfContentEditableTrue","getElementText","getOrGenerateId","isAnchor","isValidAnchor","isEditable","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","elms","getAnchorTargets","getTargetElements","hasTitle","LinkTargets","STORAGE_KEY","HISTORY_LENGTH","isHttpUrl","isArrayOfUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","setAllHistory","getHistory","addToHistory","itemsWithoutUrl","isTruthy","makeMap","getPicker","getPickerTypes","optFileTypes","optLegacyTypes","optTypes","_picker","types","getPickerSetting","filetype","pickerTypes","getUrlPicker","entry","getTextSetting","getLinkInformation","getValidationHandler","UrlInputBackstage","init$7","contextMenuState","setup$b","mothership","ship","channel","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onContentMousedown","loopEditor","onWindowScroll","onWindowResize","onEditorResize","onEditorProgress","onDismissPopups","parts$a","partType","schema$f","customListDetail","itemsPart","parts$9","factory$d","_external","setItems","getListContainer","itemComps","numListsRequired","numListsToAdd","itemsToAdd","itemsToRemove","builtLists","CustomList","schema$e","enhanceGroups","parts$8","factory$c","setGroups","groups","getGroupContainer","Toolbar","setup$a","isDocked$2","getBehaviours$1","StaticHeader","getOffsetParent","isFixed","offsetParent$1","getOrigin","morphAdt","appear","contextualInfo","disappear","isPartiallyVisible","isTopCompletelyVisible","isBottomCompletelyVisible","isVisibleForModes","getPrior","storePrior","revertToOriginal","offsetBox_1","_left","_top","_right","_bottom","morphToOriginal","morphToFixed","winBox","top_1","isTop","getMorph","isDocked","getMorphToOriginal","morphToStatic","morphToCoord","method","updateVisibility","morphToDocked","contextInfo","refreshInternal","morph","resetInternal","refresh$4","reset","isDocked$1","setModes","getModes","DockingApis","events$5","dockInfo","dockState","notify","ActiveDocking","DockingSchema","init$6","docked","initialBounds","DockingState","Docking","toolbarHeightChange","visibility","editorStickyOnClass","editorStickyOffClass","scrollFromBehindHeader","containerHeader","viewHeight","scrollPos","markerElement","markerPos","markerHeight","markerTop","markerBottom","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","isDockedMode","updateIframeContentFlow","getOccupiedHeight","parentElem","padding","parentWidth","updateSinkVisibility","sinkElem","updateEditorClasses","editorContainer","restoreFocus","headerElem","focusedElem","ownerDoc","activeElm","findFocusedElem","rootElm","setup$9","lazyHeader","getIframeBehaviours","getBehaviours","focusedElm","runOnSinkElement","onDockingSwitch","additionalBehaviours","headerHeight","boxHeight","topBound","StickyHeader","groupToolbarButtonSchema","createGroupToolbarButton","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","createSplitButton","factory$b","setMenus","activeButton","hoveredButton","activeComp","hoveredComp","prev","SilverMenubar","getAnimationRoot","slideConfig","getDimensionProperty","getDimension","disableTransitions","setShrunk","setGrown","doImmediateShrink","slideState","_calculatedSize","doStartShrink","calculatedSize","doStartSmartShrink","shrinker","doStartGrow","wasShrinking","beforeSize","fullSize","startPartialGrow","startCompleteGrow","setStartSize","refresh$3","grow","shrink","immediateShrink","hasGrown","hasShrunk","isGrowing","_slideState","isShrinking","isTransitioning","toggleGrow","SlidingApis","exhibit","events$4","ActiveSliding","SlidingSchema","init$5","SlidingState","Sliding","schema$d","getPartName","sSpec","slot","make$1","getSlotNames","getSlot","onSlot","def","onSlots","doShowing","doShow","doHide","isShowing","hideSlot","hideSlots","hideAllSlots","showSlot","slotApis","SlotContainer","sidebarSchema","createSidebar","setup$8","sidebars","buttonApi","handleToggle","makePanels","panelConfigs","bridged","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","setSidebar","sidebar","optSlider","toggleSidebar","optSlotContainer","whichSidebar","sidebarOpen","fixSize","autoSize","renderSidebar","getBusySpec","blockerBehaviours","blockSpec","BlockingApis","BlockingSchema","init$4","blockWith","BlockingState","Blocking","getBusySpec$1","_root","_behaviours","focusBusyComponent","throbber","toggleEditorTabIndex","tabIndexAttr","dataTabIndexAttr","iframe","tabIndex","toggleThrobber","throbberFocus","busyComp","renderThrobber","isFocusEvent","isPasteBinTarget","targetElm","setup$7","lazyThrobber","throbberState","stealFocus","toggle","generate$1","within","withinWidth","apportion","total","parray","toUnit","fitLast","overflow","overflower","fitAll","tryFit","divide","setGroups$1","storedGroups","bGroups","findFocusedComp","refresh$2","setOverflow","builtGroups","overflowGroup","focusedComp","availableWidth","overflows","schema$c","schema$b","parts$7","expandable","schema$a","parts$6","toolbarSandbox","bounder","makeSandbox","factory$a","FloatingToolbarButton","schema$9","parts$5","factory$9","ToolbarGroup","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","factory$8","SplitFloatingToolbar","schema$8","parts$4","isOpen","toggleToolbar","overf","factory$7","toolbarToggleEvent","doSetGroups","_button","SplitSlidingToolbar","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","onAttached","renderMoreToolbarCommon","renderFloatingMoreToolbar","baseSpec","overflowXOffset","headerBounds","docElem","docBounds","renderSlidingMoreToolbar","renderToolbar","factory$6","mToolbar","optToolbar","menubar","partMenubar","toolbarFactory","partMultipleToolbar","_mToolbar","tc","_index","partToolbar","renderer","partHeader","partSocket","partSidebar","partThrobber","OuterContainer","grps","grp","renderedToolbars","defaultMenubar","defaultMenus","removedMenuItems","itemName","removedMenuItem","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","isDefaultMenu","menuData","isNotSeparator","fireSkinLoaded","fireSkinLoadError","loadStylesheet","stylesheetUrl","styleSheetLoader","loadUiSkins","skinUiCss","loadShadowDomUiSkins","isInShadowRoot$1","shadowDomSkinCss","loadSkin","isInline","inline","onSetupFormatToggle","boundCallback","binding","onSetupEvent","handleEvent","onActionToggleFormat$1","rawItem","onActionExecCommand","command","generateSelectItems","_editor","generateItem","response","si","validate","invalid","validateItems","preItems","getStyleItems","createMenuItems","createSelectButton","onSetup","rawFormats","buildBasicStaticDataset","Delimiter","split","delimiter","buildBasicSettingsDataset","settingName","defaults","alignMenuItems","getSpec$4","getMatchingValue","_format","updateSelectMenuIcon","alignment","createAlignSelect","alignSelectMenu","defaultFontsFormats","systemStackFonts","splitFonts","fontFamily","fonts","font","isSystemFontStack","matchesSystemStack","getSpec$3","systemFont","getFirstFont","matchOpt","getCurrentValue","updateSelectMenuText","createFontSelect","fontSelectMenu","defaultFontsizeFormats","legacyFontSizes","keywordFontSizes","factor","toPt","fontSize","toLegacy","getSpec$2","_loop_1","pt","legacy","createFontsizeSelect","fontsizeSelectMenu","findNearest","getStyles","defaultBlocks","getSpec$1","fallbackFormat","detectedFormat","createFormatSelect","formatSelectMenu","getSpec","getFormatItems","flattenedItems","createStyleSelect","styleSelectMenu","events$3","reflectingConfig","reflectingState","renderComponents","newComponents","rawData","ActiveReflecting","getState","reflectState","ReflectingApis","ReflectingSchema","init$3","ReflectingState","Reflecting","schema$7","arrowPart","arrow","buttonPart","btn","splitDropdown","parts$3","factory$5","openMenu","executeOnButton","buttonEvents","ariaDescriptor","SplitDropdown","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","_d","renderFloatingToolbarButton","identifyButtons","renderCommonToolbarButton","specialisation","renderToolbarButton","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButton","renderToolbarToggleButtonWith","fetchChoices","renderSplitButton","displayChannel","underlinePath","buttonComp","defaultToolbar","renderFromBridge","bridgeBuilder","buttons","identify","extractFrom","bespokeButtons","removeUnusedDefaults","filteredItemGroups","subItem","convertStringToolbar","strToolbar","groupsStrings","isToolbarGroupSettingArray","createToolbar","toolbarConfig","lookupButton","toolbarItem","allowToolbarGroups","prefixes","toolbarGroups","setToolbar","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","setupEvents$1","contentWindow","initialDocEle","lastWindowDimensions","lastDocumentDimensions","resizeWindow","outer","resizeDocument","docEle","inner","elementLoad","render$1","lastToolbarWidth","eTargetNode","uiRoot","socket","limit","unbinder","_ui","toolbarMode","refreshDrawer","Iframe","parseToInt","re","numToPx","calcCappedSize","minSize","maxSize","minOverride","maxOverride","getHeight","baseHeight","minHeight","getHeightWithFallback","getWidth","baseWidth","minWidth","getWidthWithFallback","InlineHeader","floatContainer","DOM","isSticky","editorMaxWidthOpt","headerBackstage","isPositionedAtTop","isSplitToolbar","calcToolbarOffset","tbar","calcMode","toolbar_1","toolbarHeight","targetBounds","roomAtTop","docHeight","roomAtBottom","winBounds","isRoomAtBottomViewport","setupMode","verticalDir","updateChromeWidth","bodyMargin","updateChromePosition","repositionPopups$1","updateChromeUi","resetDocking","floatContainerComp","updateMode","updateUi","currentMode","newMode","getTargetPosAndBounds","setupEvents","ui","toolbarPersist","prevPosAndBounds","resizeContent","prevPos","prevBounds","hasResized","uiContainer","Inline","showContextToolbarEvent","hideContextToolbarEvent","getFormApi","runOnExecute","formApi","renderContextButton","renderContextToggleButton","generateOne","generate","mementos","asSpecs","findPrimary","compInSystem","buildInitGroups","providers","commands","renderContextForm","toolbarType","ContextForm","isVerticalOverlap","threshold","getRangeRect","leaf$1","getSelectionBounds","scroll_1","bodyPos","getAnchorElementBounds","getHorizontalBounds","contentAreaBox","viewportBounds","getVerticalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getContextToolbarBounds","toolbarOrMenubarEnabled","bubbleSize$1","bubbleAlignments$1","isEntireElementSelected","preservePosition","currentPosition","shouldUseInsetLayouts","determineInsetLayout","contextbar","selectionBounds","isSameAnchorElement","isOverlapping","yBounds","contextbarHeight","getAnchorSpec$2","mobile","smartInsetLayout","newAnchor","getInsetLayouts","desktopAnchorSpecLayouts","mobileAnchorSpecLayouts","getAnchorLayout","matchTargetWith","ctxs","toolbarApi","filterByPositionForStartNode","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForAncestorNode","findPosition_1","basePosition","matchStartNode","nodeCandidates","editorCandidates","nodeMatches","editorMatches","matchAncestor","startNode","scopes","ancestorElem","contextToolbars","contextForms","lookup$1","rootElem","isOutsideRoot","categorise","forms","inNodeScope","inEditorScope","formNavigators","lookupTable","registerForm","contextForm","launch","registerToolbar","contextToolbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","renderContextToolbar","stack","currentWidth","newContents","oldContents","transitionClass","register$7","registryContextToolbars","lastTrigger","lastContextPosition","canLaunchToolbar","isSameLaunchElement","shouldContextToolbarHide","contextToolbarBounds","anchorBounds","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","getScopes","alloySpec","buildToolbar","buildContextToolbarGroups","allButtons","buildContextFormGroups","initGroups","anchorLayout","launchContext","launchContextToolbar","register$6","alignToolbarButtons","decimalDigits","signedInteger","exponentPart","dot","unsignedDecimalLiteral","float","isUnit","accepted","check","unitRaw","normalise","registerController","getMenuItems","setActive","oldApi","unbindWatcher","lineHeightSpec","languageSpec","settingsOpt","ele","codeOpt","code","customCode","lang","register$5","register$4","onSetupOutdentState","registerButtons$2","register$3","onActionToggleFormat","registerFormatButtons","_idx","name_1","registerCommandButtons","registerCommandToggleButtons","registerButtons$1","registerMenuItems$2","register$2","onSetupUndoRedoState","registerMenuItems$1","registerButtons","register$1","onSetupVisualAidState","registerMenuItems","registerToolbarButton","setup$6","transpose","dx","dy","isTouchEvent","fromPageXY","fromClientXY","transposeContentAreaContainer","containerPos","getPointAnchor","getSelectionAnchor","getNodeAnchor","getAnchorSpec$1","anchorType","initAndShow$1","buildMenu","contextmenu","anchorSpec","bubbleAlignments","isTouchWithinSelection","touch_1","rngRectOpt","rngRect","setupiOSOverrides","originalSelection","selectionReset","unbindEventListeners","preventMousedown","clearSelectionReset","getAnchorSpec","bubbleYOffset","highlightImmediately","initAndShow","isiOS","isOSX","isAndroid","shouldHighlightImmediately","openiOS_1","patchPipeConfig","shouldNeverUseNative","defaultItems","contextMenus","isContextMenuDisabled","getContextMenu","getAvoidOverlapSelector","separator","makeContextItem","commonMenuItem","addContextMenuGroup","groupItems","lastMenuItem","generateContextMenu","selectedElement","sections","allItems","isNativeOverrideKeyEvent","isTriggeredByKeyboard","getSelectedElement","getAnchorType","selectorExists","setup$5","hideContextMenu","showContextMenu","initAndShow$2","hideEvents","subtract","changes","asFixed","coord","asAbsolute","asOffset","withinRange","coord1","coord2","getDeltas","toStyles","stylesOpt","absolute","fixed","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","snapsInfo","getCoords","snapInfo","moveOrSnap","newCoord","findClosestSnap","findSnap","fixedCoord","spanned","stopDrag","findMatchingSnap","snaps","sensor","inRange","matchSnap","bestSnap","deltas","bestDeltas","currAvg","bestAvg","snapTo$1","snapTo","dragConfig","origin_1","snapPin","DraggingApis","initialAttribute","resetZIndex","zIndex","changeZIndex","zindex","instigate","anyComponent","discard","createComponent","blockerClass","blockerEvents","SnapSchema","schema$6","getCurrentCoord","location","clampCoords","coords","absoluteCoord","newCoords","offset$1","calcNewCoord","optSnaps","currentCoord","snapping","dragBy","calcStartData","dragState","dragMode","dragStartData","dlt","updateStartState","init$2","dragApi","getData$1","getDelta$1","MouseData","events$2","stop$1","delayDrop","schema$5","init$1","getDataFrom","touches","getDelta","TouchData","events$1","blockerSingleton","stopBlocking","schema$4","schema$3","mouse","mouseOrTouch","DraggingBranches","previous","calculateDelta","dragEvent","nuData","setStartData","getStartData","DragState","Dragging","dragger","snapWidth","snapOffset","calcSnap","selectorOpt","td","selectorHandle","sensorLeft","sensorTop","sensorWidth","sensorHeight","getSnapsConfig","getSnapPoints","isSameCell","cellOpt","currentTd","createSelector","setup$4","tlTds","brTds","startCell","finishCell","getTopLeftSnap","memTopLeft","getTopLeftSnaps","getBottomRightSnap","memBottomRight","getBottomRightSnaps","topLeftSnaps","bottomRightSnaps","bottomRight","showOrHideHandle","isAbove","isBelow","cellRect","viewportHeight","aboveViewport","belowViewport","getSnapConfig","snapTopLeft","snapLastTopLeft","snapBottomRight","snapLastBottomRight","otherCells","isHidden","renderElementPath","getDataPath","newPathElements","_btn","divider","newAcc","updatePath","parents","newPath","parent_1","ResizeTypes","getDimensions","resizeType","originalHeight","originalWidth","resize","dim","getResizeType","keyboardHandler","renderResizeHandler","_target","renderWordCount","replaceCountText","currentVal","renderStatusbar","renderBranding","linkHtml","getTextComponents","getComponents","resizeHandler","setup$3","lazyOuterContainer","isIE","platformClasses","touchPlatformClass","deviceClasses","isToolbarBottom","dirAttributes","verticalDirAttributes","isHeaderDocked","resizeUiMothership","makeSinkDefinition","isGridUiContainer","sinkSpec","reactiveWidthSpec","memAnchorBar","lazyAnchorBar","lazyToolbar","sb","statusbar","socketSidebarContainer","hasMultipleToolbar","hasToolbar","hasMenubar","getPartToolbar","editorComponents","containerComponents","getUi","setEditorSize","parsedHeight","parsedWidth","renderUI","toolbarGroupButtonConfig","toolbarOpt","describedBy","describedElement","describeElement","describeId","labelledBy","labelledElement","labelElement","schema$2","basic","parts$2","factory$4","dialogComp","showDialog","externalBlocker","hideDialog","blockerDom","getDialogBody","getDialogFooter","setBusy","setIdle","modalEventsId","ModalDialog","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","dialogFooterButtonSchema","alertBannerFields","alertBannerSchema","createBarFields","itemsField","buttonFields","buttonSchema","checkboxFields","checkboxSchema","checkboxDataProcessor","formComponentFields","formComponentWithLabelFields","collectionFields","collectionSchema","collectionDataProcessor","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerFields","colorPickerSchema","colorPickerDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imageToolsFields","imageToolsSchema","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","createDialog","urlDialogButtonSchema","urlDialogSchema","createUrlDialog","getAllObjects","isNamedItem","dataProcessors","getDataProcessor","getNamedItems","createDataValidator","namedItems","internalDialog","dataValidator","DialogManager","toValidValues","renderBodyPanel","memForm","formValue","factory$3","TabButton","schema$1","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","parts$1","factory$2","tab","Tabbar","factory$1","Tabview","barPart","viewPart","tabValue","tabview","tabWithValue","tabData","changeTabBy","section","byPred","tabKey","getTabIfNotActive","optTab","TabSection","measureHeights","allTabs","tabviewComp","_tab","getMaxHeight","heights","getMaxTabviewHeight","tablist","documentElement$1","tabviewHeight","isTabListBeside","currentTabHeight","dialogTopMargin","dialogBottomMargin","dialogHeight","chromeHeight","showTab","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","getTabview","setMode","smartTabHeight","extraEvents","maxTabHeightOpt","oldHeight","selectFirst","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","currentData","setDataOnForm","oldTab","tabMode","_viewItems","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","ariaAttrs","incoming","ariaAttributes","renderInlineBody","contentId","renderModalBody","bodySpec","renderIframeBody","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","pFooterGroup","startButtons","endButtons","renderDialog$1","dialogClass","blockerBackdropClass","scrollLockClass","renderClose","renderTitle","renderDragHandle","renderInlineHeader","titleId","renderModalHeader","pTitle","pHandle","getHeader","bs","getEventExtras","lazyDialog","blockEvent","renderModalDialog","dialogEvents","mapMenuButtons","mapItems","extractCellsToObject","menuButton","innerAcc","initCommonEvents","fireApiEvent","_event","initUrlDialog","getInstanceApi","withSpec","currentDialog","initDialog","currentDialogInit","cur","SilverDialogEvents","makeButton","footerButtons","buttonName","buttonGroups","makeGroup","renderFooter","initSpec","lookupByName","renderInlineFooter","renderModalFooter","getCompByName","access","form_1","footer","footerState","validateData$1","dialogState","getDialogApi","doRedial","menuItemStates","withRoot","valueComp","representedValues","menuItemCurrentState","setData","prevData","instanceApi","mergedData","newInternalData","bodyState","tabSection","redial","dialogInit","getDialogSizeClasses","renderDialog","storagedMenuButtons","objOfCells","dialogSize","modalAccess","getForm","outerForm","renderInlineDialog","dialogLabelId","dialogContentId","memHeader","memBody","memFooter","global$1","getUrlDialogApi","sendMessage","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","isCustomMessage","handleMessage","renderUrlDialog","iframeUri","iframeDomain","messageHandlerUnbinder","iframeEle","iframeWin","setup$2","closeDialog","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","setup$1","confirmDialog","memFooterYes","footerNo","footerYesButton","validateData","isAlertOrConfirmDialog","inlineAdditionalBehaviours","isStickyToolbar$1","params","closeWindow","openInlineDialog","openModalDialog","openUrl","openModalUrlDialog","internalInitialData","config$1","inlineDialog","refreshDocking","dialogUi","inlineDialogComp","confirm","alert","Theme","windowMgr"],"x_google_ignoreList":[0,1,2,3]}