@startinblox/core 0.17.26 → 0.17.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/_snowpack/pkg/import-map.json +0 -8
  2. package/dist/components/solid-form.js.map +1 -1
  3. package/dist/new-widgets/callbackMixins/index.js +2 -4
  4. package/dist/new-widgets/callbackMixins/index.js.map +1 -1
  5. package/dist/new-widgets/templates/formTemplatesDirectory.js +8 -23
  6. package/dist/new-widgets/templates/formTemplatesDirectory.js.map +1 -1
  7. package/dist/new-widgets/templatesDependencies/formFileMixin.js +27 -3
  8. package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +1 -1
  9. package/package.json +2 -4
  10. package/dist/_snowpack/pkg/showdown.js +0 -5059
  11. package/dist/_snowpack/pkg/showdown.js.map +0 -1
  12. package/dist/_snowpack/pkg/showdown.js.map.proxy.js +0 -1
  13. package/dist/_snowpack/pkg/tinymce/icons/default.js +0 -196
  14. package/dist/_snowpack/pkg/tinymce/icons/default.js.map +0 -1
  15. package/dist/_snowpack/pkg/tinymce/icons/default.js.map.proxy.js +0 -1
  16. package/dist/_snowpack/pkg/tinymce/models/dom.js +0 -7955
  17. package/dist/_snowpack/pkg/tinymce/models/dom.js.map +0 -1
  18. package/dist/_snowpack/pkg/tinymce/models/dom.js.map.proxy.js +0 -1
  19. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js +0 -156
  20. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js.map +0 -1
  21. package/dist/_snowpack/pkg/tinymce/plugins/autoresize/plugin.js.map.proxy.js +0 -1
  22. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js +0 -1188
  23. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js.map +0 -1
  24. package/dist/_snowpack/pkg/tinymce/plugins/link/plugin.js.map.proxy.js +0 -1
  25. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js +0 -1757
  26. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js.map +0 -1
  27. package/dist/_snowpack/pkg/tinymce/plugins/lists/plugin.js.map.proxy.js +0 -1
  28. package/dist/_snowpack/pkg/tinymce/themes/silver.js +0 -26121
  29. package/dist/_snowpack/pkg/tinymce/themes/silver.js.map +0 -1
  30. package/dist/_snowpack/pkg/tinymce/themes/silver.js.map.proxy.js +0 -1
  31. package/dist/_snowpack/pkg/tinymce.js +0 -29045
  32. package/dist/_snowpack/pkg/tinymce.js.map +0 -1
  33. package/dist/_snowpack/pkg/tinymce.js.map.proxy.js +0 -1
  34. package/dist/new-widgets/callbackMixins/editorMixin.js +0 -92
  35. package/dist/new-widgets/callbackMixins/editorMixin.js.map +0 -1
  36. package/dist/new-widgets/templatesDependencies/valueEditorMixin.js +0 -17
  37. package/dist/new-widgets/templatesDependencies/valueEditorMixin.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"silver.js","sources":["../../../../../node_modules/tinymce/themes/silver/theme.js","../../../../../node_modules/tinymce/themes/silver/index.js"],"sourcesContent":["/**\n * TinyMCE version 6.0.2 (2022-04-27)\n */\n\n(function () {\n 'use strict';\n\n const getPrototypeOf = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$1 = t => a => t === a;\n const is$2 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isPlainObject = value => is$2(value, Object);\n const isArray = isType$1('array');\n const isNull = eq$1(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$1(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const noarg = f => () => f();\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant$1 = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply = f => {\n return f();\n };\n const never = constant$1(false);\n const always = constant$1(true);\n\n var global$a = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const indexOf = (xs, x) => {\n const r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$2 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const chunk$1 = (array, size) => {\n const r = [];\n for (let i = 0; i < array.length; i += size) {\n const s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n return r;\n };\n const map$2 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition$3 = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$5 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex$1 = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$3 = (xs, f) => flatten(map$2(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const difference = (a1, a2) => filter$2(a1, x => !contains$2(a2, x));\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const pure$2 = x => [x];\n const sort = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$h = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$h(xs, 0);\n const last$1 = xs => get$h(xs, xs.length - 1);\n const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map$1 = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n const r = {};\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n const bifilter = (obj, pred) => {\n const t = {};\n const f = {};\n internalFilter(obj, pred, objAcc(t), objAcc(f));\n return {\n t,\n f\n };\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const find$4 = (obj, pred) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n if (pred(x, i, obj)) {\n return Optional.some(x);\n }\n }\n return Optional.none();\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$g = (obj, key) => {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$2 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const is$1 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const sequence = arr => {\n const r = [];\n for (let i = 0; i < arr.length; i++) {\n const x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Optional.none();\n }\n }\n return Optional.some(r);\n };\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n const mapFrom = (a, f) => a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const addToEnd = (str, suffix) => {\n return str + suffix;\n };\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const ensureTrailing = (str, suffix) => {\n return endsWith(str, suffix) ? str : addToEnd(str, suffix);\n };\n const contains$1 = (str, substr) => {\n return str.indexOf(substr) !== -1;\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim$1 = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty = s => !isNotEmpty(s);\n\n const isSupported$1 = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const fromHtml$2 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml: fromHtml$2,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name$3 = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type$1 = element => element.dom.nodeType;\n const isType = t => element => type$1(element) === t;\n const isElement$1 = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$1(e) && name$3(e) === tag;\n\n const is = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$3 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$2(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n const owner$4 = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner$4(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const offsetParent = element => Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children = element => map$2(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n const spot = (element, offset) => ({\n element,\n offset\n });\n const leaf = (element, offset) => {\n const cs = children(element);\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\n };\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n const isSupported = constant$1(supported);\n const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner;\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const isInShadowRoot = e => getShadowRoot(e).isSome();\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isSupported() && isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement$1(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body = () => getBody(SugarElement.fromDom(document));\n const getBody = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$9 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const get$f = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$f(element, key));\n const has$1 = (element, key) => {\n const dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n const remove$7 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$1 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported$1(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported$1(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$8 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const setOptions = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n v.fold(() => {\n internalRemove(dom, k);\n }, value => {\n internalSet(dom, k, value);\n });\n });\n };\n const get$e = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const getAllRaw = element => {\n const css = {};\n const dom = element.dom;\n if (isSupported$1(dom)) {\n for (let i = 0; i < dom.style.length; i++) {\n const ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n const isValidValue = (tag, property, value) => {\n const element = SugarElement.fromTag(tag);\n set$8(element, property, value);\n const style = getRaw(element, property);\n return style.isSome();\n };\n const remove$6 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is$1(getOpt(element, 'style').map(trim$1), '')) {\n remove$7(element, 'style');\n }\n };\n const reflow = e => e.dom.offsetWidth;\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported$1(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$e(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$e(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const api$2 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$d = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const setMax$1 = (element, value) => {\n const inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n const absMax = api$2.max(element, value, inclusions);\n set$8(element, 'max-height', absMax + 'px');\n };\n\n const r$1 = (left, top) => {\n const translate = (x, y) => r$1(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r$1;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute$3 = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport$1(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport$1 = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const api$1 = Dimension('width', element => element.dom.offsetWidth);\n const set$7 = (element, h) => api$1.set(element, h);\n const get$c = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const setMax = (element, value) => {\n const inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n const absMax = api$1.max(element, value, inclusions);\n set$8(element, 'max-width', absMax + 'px');\n };\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant$1(isiPad),\n isiPhone: constant$1(isiPhone),\n isTablet: constant$1(isTablet),\n isPhone: constant$1(isPhone),\n isTouch: constant$1(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant$1(iOSwebview),\n isDesktop: constant$1(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find$3 = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$d(group(1), group(2));\n };\n const detect$4 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$3();\n }\n return find$3(versionRegexes, cleanedAgent);\n };\n const unknown$3 = () => {\n return nu$d(0, 0);\n };\n const nu$d = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$d,\n detect: detect$4,\n unknown: unknown$3\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$5(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$3 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$5(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$3(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$3(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains$1(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant$1(browsers),\n oses: constant$1(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$2 = () => {\n return nu$c({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$c = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$2,\n nu: nu$c,\n edge: constant$1(edge),\n chromium: constant$1(chromium),\n ie: constant$1(ie),\n opera: constant$1(opera),\n firefox: constant$1(firefox),\n safari: constant$1(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown$1 = () => {\n return nu$b({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$b = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown: unknown$1,\n nu: nu$b,\n windows: constant$1(windows),\n ios: constant$1(ios),\n android: constant$1(android),\n linux: constant$1(linux),\n macos: constant$1(macos),\n solaris: constant$1(solaris),\n freebsd: constant$1(freebsd),\n chromeos: constant$1(chromeos)\n };\n\n const detect$2 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$2 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch));\n const detect$1 = () => platform();\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const capture$1 = (element, event, filter, handler) => binder(element, event, filter, handler, true);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const before$1 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$2 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$2(v, element);\n });\n }, v => {\n before$1(v, element);\n });\n };\n const prepend$1 = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$2(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$2 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$2(parent, element);\n }, v => {\n before$1(v, element);\n });\n };\n\n const append$1 = (parent, elements) => {\n each$1(elements, x => {\n append$2(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$1(children(element), rogue => {\n remove$5(rogue);\n });\n };\n const remove$5 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n const get$b = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const to = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n const get$a = _win => {\n const win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win.visualViewport);\n }\n };\n const bounds$1 = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const getBounds$3 = _win => {\n const win = _win === undefined ? window : _win;\n const doc = win.document;\n const scroll = get$b(SugarElement.fromDom(doc));\n return get$a(win).fold(() => {\n const html = win.document.documentElement;\n const width = html.clientWidth;\n const height = html.clientHeight;\n return bounds$1(scroll.left, scroll.top, width, height);\n }, visualViewport => bounds$1(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n };\n\n const getDocument = () => SugarElement.fromDom(document);\n\n const walkUp = (navigation, doc) => {\n const frame = navigation.view(doc);\n return frame.fold(constant$1([]), f => {\n const parent = navigation.owner(f);\n const rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n const pathTo = (element, navigation) => {\n const d = navigation.owner(element);\n const paths = walkUp(navigation, d);\n return Optional.some(paths);\n };\n\n const view = doc => {\n var _a;\n const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n const owner$3 = element => owner$4(element);\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$3\n });\n\n const find$2 = element => {\n const doc = getDocument();\n const scroll = get$b(doc);\n const path = pathTo(element, Navigation);\n return path.fold(curry(absolute$3, element), frames => {\n const offset = viewport$1(element);\n const r = foldr(frames, (b, a) => {\n const loc = viewport$1(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n });\n };\n\n const pointed = (point, width, height) => ({\n point,\n width,\n height\n });\n const rect = (x, y, width, height) => ({\n x,\n y,\n width,\n height\n });\n const bounds = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const box$1 = element => {\n const xy = absolute$3(element);\n const w = getOuter$1(element);\n const h = getOuter$2(element);\n return bounds(xy.left, xy.top, w, h);\n };\n const absolute$2 = element => {\n const position = find$2(element);\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const win = () => getBounds$3(window);\n\n const value$4 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant$1(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error$1 = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply,\n orThunk: apply,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error$1(err), value$4);\n const Result = {\n value: value$4,\n error: error$1,\n fromOption\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n const partition$2 = results => {\n const values = [];\n const errors = [];\n each$1(results, obj => {\n fold$1(obj, err => errors.push(err), val => values.push(val));\n });\n return {\n values,\n errors\n };\n };\n const mapError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n const map = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n const bind$1 = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n const bindError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n const svalue = v => ({\n stype: SimpleResultType.Value,\n svalue: v\n });\n const serror = e => ({\n stype: SimpleResultType.Error,\n serror: e\n });\n const toResult$1 = res => fold$1(res, Result.error, Result.value);\n const fromResult$1 = res => res.fold(serror, svalue);\n const SimpleResult = {\n fromResult: fromResult$1,\n toResult: toResult$1,\n svalue,\n partition: partition$2,\n serror,\n bind: bind$1,\n bindError,\n map,\n mapError,\n fold: fold$1\n };\n\n const field$2 = (key, newKey, presence, prop) => ({\n tag: 'field',\n key,\n newKey,\n presence,\n prop\n });\n const customField$1 = (newKey, instantiator) => ({\n tag: 'custom',\n newKey,\n instantiator\n });\n const fold = (value, ifField, ifCustom) => {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n const shallow$1 = (old, nu) => {\n return nu;\n };\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n const merge$1 = baseMerge(shallow$1);\n\n const required$2 = () => ({\n tag: 'required',\n process: {}\n });\n const defaultedThunk = fallbackThunk => ({\n tag: 'defaultedThunk',\n process: fallbackThunk\n });\n const defaulted$1 = fallback => defaultedThunk(constant$1(fallback));\n const asOption = () => ({\n tag: 'option',\n process: {}\n });\n const mergeWithThunk = baseThunk => ({\n tag: 'mergeWithThunk',\n process: baseThunk\n });\n const mergeWith = base => mergeWithThunk(constant$1(base));\n\n const mergeValues$1 = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge$1.apply(undefined, values))) : SimpleResult.svalue(base);\n const mergeErrors$1 = errors => compose(SimpleResult.serror, flatten)(errors);\n const consolidateObj = (objects, base) => {\n const partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n const consolidateArr = objects => {\n const partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n const ResultCombine = {\n consolidateObj,\n consolidateArr\n };\n\n const formatObj = input => {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n const formatErrors = errors => {\n const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant$1('... (only showing first ten failures)')\n }]) : errors;\n return map$2(es, e => {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n const nu$a = (path, getErrorInfo) => {\n return SimpleResult.serror([{\n path,\n getErrorInfo\n }]);\n };\n const missingRequired = (path, key, obj) => nu$a(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n const missingKey = (path, key) => nu$a(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n const missingBranch = (path, branches, branch) => nu$a(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n const unsupportedFields = (path, unsupported) => nu$a(path, () => 'There are unsupported fields: [' + unsupported.join(', ') + '] specified');\n const custom = (path, err) => nu$a(path, constant$1(err));\n\n const value$3 = validator => {\n const extract = (path, val) => {\n return SimpleResult.bindError(validator(val), err => custom(path, err));\n };\n const toString = constant$1('val');\n return {\n extract,\n toString\n };\n };\n const anyValue$1 = value$3(SimpleResult.svalue);\n\n const requiredAccess = (path, obj, key, bundle) => get$g(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n const fallbackAccess = (obj, key, fallback, bundle) => {\n const v = get$g(obj, key).getOrThunk(() => fallback(obj));\n return bundle(v);\n };\n const optionAccess = (obj, key, bundle) => bundle(get$g(obj, key));\n const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n const opt = get$g(obj, key).map(val => val === true ? fallback(obj) : val);\n return bundle(opt);\n };\n const extractField = (field, path, obj, key, prop) => {\n const bundle = av => prop.extract(path.concat([key]), av);\n const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n const result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant$1({}), v => {\n const result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n const extractFields = (path, obj, fields) => {\n const success = {};\n const errors = [];\n for (const field of fields) {\n fold(field, (key, newKey, presence, prop) => {\n const result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, err => {\n errors.push(...err);\n }, res => {\n success[newKey] = res;\n });\n }, (newKey, instantiator) => {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n const valueThunk = getDelegate => {\n const extract = (path, val) => getDelegate().extract(path, val);\n const toString = () => getDelegate().toString();\n return {\n extract,\n toString\n };\n };\n const getSetKeys = obj => keys(filter$1(obj, isNonNullable));\n const objOfOnly = fields => {\n const delegate = objOf(fields);\n const fieldNames = foldr(fields, (acc, value) => {\n return fold(value, key => deepMerge(acc, { [key]: true }), constant$1(acc));\n }, {});\n const extract = (path, o) => {\n const keys = isBoolean(o) ? [] : getSetKeys(o);\n const extra = filter$2(keys, k => !hasNonNullableKey(fieldNames, k));\n return extra.length === 0 ? delegate.extract(path, o) : unsupportedFields(path, extra);\n };\n return {\n extract,\n toString: delegate.toString\n };\n };\n const objOf = values => {\n const extract = (path, o) => extractFields(path, o, values);\n const toString = () => {\n const fieldStrings = map$2(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract,\n toString\n };\n };\n const arrOf = prop => {\n const extract = (path, array) => {\n const results = map$2(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n return ResultCombine.consolidateArr(results);\n };\n const toString = () => 'array(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const oneOf = props => {\n const extract = (path, val) => {\n const errors = [];\n for (const prop of props) {\n const res = prop.extract(path, val);\n if (res.stype === SimpleResultType.Value) {\n return res;\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n const toString = () => 'oneOf(' + map$2(props, prop => prop.toString()).join(', ') + ')';\n return {\n extract,\n toString\n };\n };\n const setOf$1 = (validator, prop) => {\n const validateKeys = (path, keys) => arrOf(value$3(validator)).extract(path, keys);\n const extract = (path, o) => {\n const keys$1 = keys(o);\n const validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, validKeys => {\n const schema = map$2(validKeys, vk => {\n return field$2(vk, vk, required$2(), prop);\n });\n return objOf(schema).extract(path, o);\n });\n };\n const toString = () => 'setOf(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const thunk = (_desc, processor) => {\n const getP = cached(processor);\n const extract = (path, val) => getP().extract(path, val);\n const toString = () => getP().toString();\n return {\n extract,\n toString\n };\n };\n const arrOfObj = compose(arrOf, objOf);\n\n const anyValue = constant$1(anyValue$1);\n const typedValue = (validator, expectedType) => value$3(a => {\n const actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n });\n const number = typedValue(isNumber, 'number');\n const string = typedValue(isString, 'string');\n const boolean = typedValue(isBoolean, 'boolean');\n const functionProcessor = typedValue(isFunction, 'function');\n const isPostMessageable = val => {\n if (Object(val) !== val) {\n return true;\n }\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n case 'Array':\n case 'Object':\n return Object.keys(val).every(prop => isPostMessageable(val[prop]));\n default:\n return false;\n }\n };\n const postMessageable = value$3(a => {\n if (isPostMessageable(a)) {\n return SimpleResult.svalue(a);\n } else {\n return SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n }\n });\n\n const chooseFrom = (path, input, branches, ch) => {\n const fields = get$g(branches, ch);\n return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n };\n const choose$2 = (key, branches) => {\n const extract = (path, input) => {\n const choice = get$g(input, key);\n return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n };\n const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n return {\n extract,\n toString\n };\n };\n\n const arrOfVal = () => arrOf(anyValue$1);\n const valueOf = validator => value$3(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n const setOf = (validator, prop) => setOf$1(v => SimpleResult.fromResult(validator(v)), prop);\n const extractValue = (label, prop, obj) => {\n const res = prop.extract([label], obj);\n return SimpleResult.mapError(res, errs => ({\n input: obj,\n errors: errs\n }));\n };\n const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n const getOrDie = extraction => {\n return extraction.fold(errInfo => {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n const asRawOrDie$1 = (label, prop, obj) => getOrDie(asRaw(label, prop, obj));\n const formatError = errInfo => {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n const choose$1 = (key, branches) => choose$2(key, map$1(branches, objOf));\n const thunkOf = (desc, schema) => thunk(desc, schema);\n\n const field$1 = field$2;\n const customField = customField$1;\n const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n const required$1 = key => field$1(key, key, required$2(), anyValue());\n const requiredOf = (key, schema) => field$1(key, key, required$2(), schema);\n const requiredNumber = key => requiredOf(key, number);\n const requiredString = key => requiredOf(key, string);\n const requiredStringEnum = (key, values) => field$1(key, key, required$2(), validateEnum(values));\n const requiredBoolean = key => requiredOf(key, boolean);\n const requiredFunction = key => requiredOf(key, functionProcessor);\n const forbid = (key, message) => field$1(key, key, asOption(), value$3(_v => SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message)));\n const requiredObjOf = (key, objSchema) => field$1(key, key, required$2(), objOf(objSchema));\n const requiredArrayOfObj = (key, objFields) => field$1(key, key, required$2(), arrOfObj(objFields));\n const requiredArrayOf = (key, schema) => field$1(key, key, required$2(), arrOf(schema));\n const option$3 = key => field$1(key, key, asOption(), anyValue());\n const optionOf = (key, schema) => field$1(key, key, asOption(), schema);\n const optionNumber = key => optionOf(key, number);\n const optionString = key => optionOf(key, string);\n const optionStringEnum = (key, values) => optionOf(key, validateEnum(values));\n const optionFunction = key => optionOf(key, functionProcessor);\n const optionArrayOf = (key, schema) => optionOf(key, arrOf(schema));\n const optionObjOf = (key, objSchema) => optionOf(key, objOf(objSchema));\n const optionObjOfOnly = (key, objSchema) => optionOf(key, objOfOnly(objSchema));\n const defaulted = (key, fallback) => field$1(key, key, defaulted$1(fallback), anyValue());\n const defaultedOf = (key, fallback, schema) => field$1(key, key, defaulted$1(fallback), schema);\n const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n const defaultedPostMsg = (key, fallback) => defaultedOf(key, fallback, postMessageable);\n const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n const defaultedObjOf = (key, fallback, objSchema) => defaultedOf(key, fallback, objOf(objSchema));\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const generate$7 = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$1(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate: generate$7 };\n\n Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n const partition$1 = results => {\n const errors = [];\n const values = [];\n each$1(results, result => {\n result.fold(err => {\n errors.push(err);\n }, value => {\n values.push(value);\n });\n });\n return {\n errors,\n values\n };\n };\n\n const exclude$1 = (obj, fields) => {\n const r = {};\n each(obj, (v, k) => {\n if (!contains$2(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n const wrap$2 = (key, value) => ({ [key]: value });\n const wrapAll$1 = keyvalues => {\n const r = {};\n each$1(keyvalues, kv => {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n const exclude = (obj, fields) => exclude$1(obj, fields);\n const wrap$1 = (key, value) => wrap$2(key, value);\n const wrapAll = keyvalues => wrapAll$1(keyvalues);\n const mergeValues = (values, base) => {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge$1.apply(undefined, values)));\n };\n const mergeErrors = errors => Result.error(flatten(errors));\n const consolidate = (objs, base) => {\n const partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n\n const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n const ancestor$2 = (scope, transform, isRoot) => {\n let element = scope.dom;\n const stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n const transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$4 = (scope, transform, isRoot) => {\n const current = transform(scope);\n const stop = ensureIsRoot(isRoot);\n return current.orThunk(() => stop(scope) ? Optional.none() : ancestor$2(scope, transform, stop));\n };\n\n const isSource = (component, simulatedEvent) => eq(component.element, simulatedEvent.event.target);\n\n const defaultEventHandler = {\n can: always,\n abort: never,\n run: noop\n };\n const nu$9 = parts => {\n if (!hasNonNullableKey(parts, 'can') && !hasNonNullableKey(parts, 'abort') && !hasNonNullableKey(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return {\n ...defaultEventHandler,\n ...parts\n };\n };\n const all$2 = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc && f(handler).apply(undefined, args), true);\n const any = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc || f(handler).apply(undefined, args), false);\n const read$2 = handler => isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n const fuse$1 = handlers => {\n const can = all$2(handlers, handler => handler.can);\n const abort = any(handlers, handler => handler.abort);\n const run = (...args) => {\n each$1(handlers, handler => {\n handler.run.apply(undefined, args);\n });\n };\n return {\n can,\n abort,\n run\n };\n };\n\n const constant = constant$1;\n const touchstart = constant('touchstart');\n const touchmove = constant('touchmove');\n const touchend = constant('touchend');\n const touchcancel = constant('touchcancel');\n const mousedown = constant('mousedown');\n const mousemove = constant('mousemove');\n const mouseout = constant('mouseout');\n const mouseup = constant('mouseup');\n const mouseover = constant('mouseover');\n const focusin = constant('focusin');\n const focusout = constant('focusout');\n const keydown = constant('keydown');\n const keyup = constant('keyup');\n const input = constant('input');\n const change = constant('change');\n const click = constant('click');\n const transitioncancel = constant('transitioncancel');\n const transitionend = constant('transitionend');\n const transitionstart = constant('transitionstart');\n const selectstart = constant('selectstart');\n\n const prefixName = name => constant$1('alloy.' + name);\n const alloy = { tap: prefixName('tap') };\n const focus$4 = prefixName('focus');\n const postBlur = prefixName('blur.post');\n const postPaste = prefixName('paste.post');\n const receive = prefixName('receive');\n const execute$5 = prefixName('execute');\n const focusItem = prefixName('focus.item');\n const tap = alloy.tap;\n const longpress = prefixName('longpress');\n const sandboxClose = prefixName('sandbox.close');\n const typeaheadCancel = prefixName('typeahead.cancel');\n const systemInit = prefixName('system.init');\n const documentTouchmove = prefixName('system.touchmove');\n const documentTouchend = prefixName('system.touchend');\n const windowScroll = prefixName('system.scroll');\n const windowResize = prefixName('system.resize');\n const attachedToDom = prefixName('system.attached');\n const detachedFromDom = prefixName('system.detached');\n const dismissRequested = prefixName('system.dismissRequested');\n const repositionRequested = prefixName('system.repositionRequested');\n const focusShifted = prefixName('focusmanager.shifted');\n const slotVisibility = prefixName('slotcontainer.visibility');\n const changeTab = prefixName('change.tab');\n const dismissTab = prefixName('dismiss.tab');\n const highlight$1 = prefixName('highlight');\n const dehighlight$1 = prefixName('dehighlight');\n\n const emit = (component, event) => {\n dispatchWith(component, component.element, event, {});\n };\n const emitWith = (component, event, properties) => {\n dispatchWith(component, component.element, event, properties);\n };\n const emitExecute = component => {\n emit(component, execute$5());\n };\n const dispatch = (component, target, event) => {\n dispatchWith(component, target, event, {});\n };\n const dispatchWith = (component, target, event, properties) => {\n const data = {\n target,\n ...properties\n };\n component.getSystem().triggerEvent(event, target, data);\n };\n const dispatchEvent = (component, target, event, simulatedEvent) => {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n const derive$2 = configs => wrapAll(configs);\n const abort = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ abort: predicate })\n };\n };\n const can = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ can: predicate })\n };\n };\n const preventDefault = name => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n const run$1 = (name, handler) => {\n return {\n key: name,\n value: nu$9({ run: handler })\n };\n };\n const runActionExtra = (name, action, extra) => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n action.apply(undefined, [\n component,\n simulatedEvent\n ].concat(extra));\n }\n })\n };\n };\n const runOnName = name => {\n return handler => run$1(name, handler);\n };\n const runOnSourceName = name => {\n return handler => ({\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n });\n };\n const redirectToUid = (name, uid) => {\n return run$1(name, (component, simulatedEvent) => {\n component.getSystem().getByUid(uid).each(redirectee => {\n dispatchEvent(redirectee, redirectee.element, name, simulatedEvent);\n });\n });\n };\n const redirectToPart = (name, detail, partName) => {\n const uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n const runWithTarget = (name, f) => {\n return run$1(name, (component, simulatedEvent) => {\n const ev = simulatedEvent.event;\n const target = component.getSystem().getByDom(ev.target).getOrThunk(() => {\n const closest = closest$4(ev.target, el => component.getSystem().getByDom(el).toOptional(), never);\n return closest.getOr(component);\n });\n f(component, target, simulatedEvent);\n });\n };\n const cutter = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.cut();\n });\n };\n const stopper = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.stop();\n });\n };\n const runOnSource = (name, f) => {\n return runOnSourceName(name)(f);\n };\n const runOnAttached = runOnSourceName(attachedToDom());\n const runOnDetached = runOnSourceName(detachedFromDom());\n const runOnInit = runOnSourceName(systemInit());\n const runOnExecute$1 = runOnName(execute$5());\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children(SugarElement.fromDom(div));\n };\n\n const get$9 = element => element.dom.innerHTML;\n const set$6 = (element, content) => {\n const owner = owner$4(element);\n const docDom = owner.dom;\n const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n const contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append$2(element, fragment);\n };\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$2(container, clone);\n return get$9(container);\n };\n\n const clone = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone(original, false);\n\n const getHtml = element => {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n const clone = shallow(element);\n return getOuter(clone);\n }\n };\n\n const element = elem => getHtml(elem);\n\n const isRecursive = (component, originator, target) => eq(originator, component.element) && !eq(originator, target);\n const events$i = derive$2([can(focus$4(), (component, simulatedEvent) => {\n const event = simulatedEvent.event;\n const originator = event.originator;\n const target = event.target;\n if (isRecursive(component, originator, target)) {\n console.warn(focus$4() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus$4() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$i\n });\n\n let unique = 0;\n const generate$6 = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n const prefix$1 = constant$1('alloy-id-');\n const idAttr$1 = constant$1('data-alloy-id');\n\n const prefix = prefix$1();\n const idAttr = idAttr$1();\n const write = (label, elem) => {\n const id = generate$6(prefix + label);\n writeOnly(elem, id);\n return id;\n };\n const writeOnly = (elem, uid) => {\n Object.defineProperty(elem.dom, idAttr, {\n value: uid,\n writable: true\n });\n };\n const read$1 = elem => {\n const id = isElement$1(elem) ? elem.dom[idAttr] : null;\n return Optional.from(id);\n };\n const generate$5 = prefix => generate$6(prefix);\n\n const make$8 = identity;\n\n const NoContextApi = getComp => {\n const getMessage = event => `The component must be in a context to execute: ${ event }` + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : '');\n const fail = event => () => {\n throw new Error(getMessage(event));\n };\n const warn = event => () => {\n console.warn(getMessage(event));\n };\n return {\n debugInfo: constant$1('fake'),\n triggerEvent: warn('triggerEvent'),\n triggerFocus: warn('triggerFocus'),\n triggerEscape: warn('triggerEscape'),\n broadcast: warn('broadcast'),\n broadcastOn: warn('broadcastOn'),\n broadcastEvent: warn('broadcastEvent'),\n build: fail('build'),\n buildOrPatch: fail('buildOrPatch'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n isConnected: never\n };\n };\n const singleton$1 = NoContextApi();\n\n const markAsBehaviourApi = (f, apiName, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n });\n return f;\n };\n const cleanParameters = parameters => map$2(parameters, p => endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p);\n const markAsExtraApi = (f, extraName) => {\n const delegate = f.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: extraName,\n parameters: cleanParameters(parameters)\n });\n return f;\n };\n const markAsSketchApi = (f, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n });\n return f;\n };\n\n const premadeTag = generate$6('alloy-premade');\n const premade$1 = comp => {\n Object.defineProperty(comp.element.dom, premadeTag, {\n value: comp.uid,\n writable: true\n });\n return wrap$1(premadeTag, comp);\n };\n const isPremade = element => has$2(element.dom, premadeTag);\n const getPremade = spec => get$g(spec, premadeTag);\n const makeApi = f => markAsSketchApi((component, ...rest) => f(component.getApis(), component, ...rest), f);\n\n const NoState = { init: () => nu$8({ readState: constant$1('No State required') }) };\n const nu$8 = spec => spec;\n\n const generateFrom$1 = (spec, all) => {\n const schema = map$2(all, a => optionObjOf(a.name(), [\n required$1('config'),\n defaulted('state', NoState)\n ]));\n const validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(errInfo => {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + JSON.stringify(spec, null, 2));\n }, identity);\n return {\n list: all,\n data: map$1(validated, optBlobThunk => {\n const output = optBlobThunk.map(blob => ({\n config: blob.config,\n state: blob.state.init(blob.config)\n }));\n return constant$1(output);\n })\n };\n };\n const getBehaviours$3 = bData => bData.list;\n const getData$2 = bData => bData.data;\n\n const byInnerKey = (data, tuple) => {\n const r = {};\n each(data, (detail, key) => {\n each(detail, (value, indexKey) => {\n const chain = get$g(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n const nu$7 = s => ({\n classes: isUndefined(s.classes) ? [] : s.classes,\n attributes: isUndefined(s.attributes) ? {} : s.attributes,\n styles: isUndefined(s.styles) ? {} : s.styles\n });\n const merge = (defnA, mod) => ({\n ...defnA,\n attributes: {\n ...defnA.attributes,\n ...mod.attributes\n },\n styles: {\n ...defnA.styles,\n ...mod.styles\n },\n classes: defnA.classes.concat(mod.classes)\n });\n\n const combine$2 = (info, baseMod, behaviours, base) => {\n const modsByBehaviour = { ...baseMod };\n each$1(behaviours, behaviour => {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n const byAspect = byInnerKey(modsByBehaviour, (name, modification) => ({\n name,\n modification\n }));\n const combineObjects = objects => foldr(objects, (b, a) => ({\n ...a.modification,\n ...b\n }), {});\n const combinedClasses = foldr(byAspect.classes, (b, a) => a.modification.concat(b), []);\n const combinedAttributes = combineObjects(byAspect.attributes);\n const combinedStyles = combineObjects(byAspect.styles);\n return nu$7({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n const sortKeys = (label, keyName, array, order) => {\n try {\n const sorted = sort(array, (a, b) => {\n const aKey = a[keyName];\n const bKey = b[keyName];\n const aIndex = order.indexOf(aKey);\n const bIndex = order.indexOf(bKey);\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n const uncurried = (handler, purpose) => ({\n handler,\n purpose\n });\n const curried = (handler, purpose) => ({\n cHandler: handler,\n purpose\n });\n const curryArgs = (descHandler, extraArgs) => curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose);\n const getCurried = descHandler => descHandler.cHandler;\n\n const behaviourTuple = (name, handler) => ({\n name,\n handler\n });\n const nameToHandlers = (behaviours, info) => {\n const r = {};\n each$1(behaviours, behaviour => {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n const groupByEvents = (info, behaviours, base) => {\n const behaviourEvents = {\n ...base,\n ...nameToHandlers(behaviours, info)\n };\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n const combine$1 = (info, eventOrder, behaviours, base) => {\n const byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n const assemble = rawHandler => {\n const handler = read$2(rawHandler);\n return (component, simulatedEvent, ...rest) => {\n const args = [\n component,\n simulatedEvent\n ].concat(rest);\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n const missingOrderError = (eventName, tuples) => Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + JSON.stringify(map$2(tuples, c => c.name), null, 2)]);\n const fuse = (tuples, eventOrder, eventName) => {\n const order = eventOrder[eventName];\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(sortedTuples => {\n const handlers = map$2(sortedTuples, tuple => tuple.handler);\n return fuse$1(handlers);\n });\n }\n };\n const combineGroups = (byEventName, eventOrder) => {\n const r = mapToArray(byEventName, (tuples, eventName) => {\n const combined = tuples.length === 1 ? Result.value(tuples[0].handler) : fuse(tuples, eventOrder, eventName);\n return combined.map(handler => {\n const assembled = assemble(handler);\n const purpose = tuples.length > 1 ? filter$2(eventOrder[eventName], o => exists(tuples, t => t.name === o)).join(' > ') : tuples[0].name;\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n const baseBehaviour = 'alloy.base.behaviour';\n const schema$z = objOf([\n field$1('dom', 'dom', required$2(), objOf([\n required$1('tag'),\n defaulted('styles', {}),\n defaulted('classes', []),\n defaulted('attributes', {}),\n option$3('value'),\n option$3('innerHtml')\n ])),\n required$1('components'),\n required$1('uid'),\n defaulted('events', {}),\n defaulted('apis', {}),\n field$1('eventOrder', 'eventOrder', mergeWith({\n [execute$5()]: [\n 'disabling',\n baseBehaviour,\n 'toggling',\n 'typeaheadevents'\n ],\n [focus$4()]: [\n baseBehaviour,\n 'focusing',\n 'keying'\n ],\n [systemInit()]: [\n baseBehaviour,\n 'disabling',\n 'toggling',\n 'representing'\n ],\n [input()]: [\n baseBehaviour,\n 'representing',\n 'streaming',\n 'invalidating'\n ],\n [detachedFromDom()]: [\n baseBehaviour,\n 'representing',\n 'item-events',\n 'tooltipping'\n ],\n [mousedown()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [touchstart()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [mouseover()]: [\n 'item-type-events',\n 'tooltipping'\n ],\n [receive()]: [\n 'receiving',\n 'reflecting',\n 'tooltipping'\n ]\n }), anyValue()),\n option$3('domModification')\n ]);\n const toInfo = spec => asRaw('custom.definition', schema$z, spec);\n const toDefinition = detail => ({\n ...detail.dom,\n uid: detail.uid,\n domChildren: map$2(detail.components, comp => comp.element)\n });\n const toModification = detail => detail.domModification.fold(() => nu$7({}), nu$7);\n const toEvents = info => info.events;\n\n const read = (element, attr) => {\n const value = get$f(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$4 = (element, attr, id) => {\n const old = read(element, attr);\n const nu = old.concat([id]);\n set$9(element, attr, nu.join(' '));\n return true;\n };\n const remove$4 = (element, attr, id) => {\n const nu = filter$2(read(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$9(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$8 = element => read(element, 'class');\n const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n const remove$3 = (element, clazz) => remove$4(element, 'class', clazz);\n\n const add$2 = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$8(element);\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n const remove$2 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const add$1 = (element, classes) => {\n each$1(classes, x => {\n add$2(element, x);\n });\n };\n const remove$1 = (element, classes) => {\n each$1(classes, x => {\n remove$2(element, x);\n });\n };\n const hasAll = (element, classes) => forall(classes, clazz => has(element, clazz));\n const getNative = element => {\n const classList = element.dom.classList;\n const r = new Array(classList.length);\n for (let i = 0; i < classList.length; i++) {\n const item = classList.item(i);\n if (item !== null) {\n r[i] = item;\n }\n }\n return r;\n };\n const get$7 = element => supports(element) ? getNative(element) : get$8(element);\n\n const get$6 = element => element.dom.value;\n const set$5 = (element, value) => {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom.value = value;\n };\n\n const determineObsoleted = (parent, index, oldObsoleted) => {\n const newObsoleted = child$2(parent, index);\n return newObsoleted.map(newObs => {\n const elemChanged = oldObsoleted.exists(o => !eq(o, newObs));\n if (elemChanged) {\n const oldTag = oldObsoleted.map(name$3).getOr('span');\n const marker = SugarElement.fromTag(oldTag);\n before$1(newObs, marker);\n return marker;\n } else {\n return newObs;\n }\n });\n };\n const ensureInDom = (parent, child, obsoleted) => {\n obsoleted.fold(() => append$2(parent, child), obs => {\n if (!eq(obs, child)) {\n before$1(obs, child);\n remove$5(obs);\n }\n });\n };\n const patchChildrenWith = (parent, nu, f) => {\n const builtChildren = map$2(nu, f);\n const currentChildren = children(parent);\n each$1(currentChildren.slice(builtChildren.length), remove$5);\n return builtChildren;\n };\n const patchSpecChild = (parent, index, spec, build) => {\n const oldObsoleted = child$2(parent, index);\n const childComp = build(spec, oldObsoleted);\n const obsoleted = determineObsoleted(parent, index, oldObsoleted);\n ensureInDom(parent, childComp.element, obsoleted);\n return childComp;\n };\n const patchSpecChildren = (parent, specs, build) => patchChildrenWith(parent, specs, (spec, index) => patchSpecChild(parent, index, spec, build));\n const patchDomChildren = (parent, nodes) => patchChildrenWith(parent, nodes, (node, index) => {\n const optObsoleted = child$2(parent, index);\n ensureInDom(parent, node, optObsoleted);\n return node;\n });\n\n const diffKeyValueSet = (newObj, oldObj) => {\n const newKeys = keys(newObj);\n const oldKeys = keys(oldObj);\n const toRemove = difference(oldKeys, newKeys);\n const toSet = bifilter(newObj, (v, k) => {\n return !has$2(oldObj, k) || v !== oldObj[k];\n }).t;\n return {\n toRemove,\n toSet\n };\n };\n const reconcileToDom = (definition, obsoleted) => {\n const {\n class: clazz,\n style,\n ...existingAttributes\n } = clone$1(obsoleted);\n const {\n toSet: attrsToSet,\n toRemove: attrsToRemove\n } = diffKeyValueSet(definition.attributes, existingAttributes);\n const updateAttrs = () => {\n each$1(attrsToRemove, a => remove$7(obsoleted, a));\n setAll$1(obsoleted, attrsToSet);\n };\n const existingStyles = getAllRaw(obsoleted);\n const {\n toSet: stylesToSet,\n toRemove: stylesToRemove\n } = diffKeyValueSet(definition.styles, existingStyles);\n const updateStyles = () => {\n each$1(stylesToRemove, s => remove$6(obsoleted, s));\n setAll(obsoleted, stylesToSet);\n };\n const existingClasses = get$7(obsoleted);\n const classesToRemove = difference(existingClasses, definition.classes);\n const classesToAdd = difference(definition.classes, existingClasses);\n const updateClasses = () => {\n add$1(obsoleted, classesToAdd);\n remove$1(obsoleted, classesToRemove);\n };\n const updateHtml = html => {\n set$6(obsoleted, html);\n };\n const updateChildren = () => {\n const children = definition.domChildren;\n patchDomChildren(obsoleted, children);\n };\n const updateValue = () => {\n const valueElement = obsoleted;\n definition.value.filter(value => value !== get$6(valueElement)).each(value => set$5(valueElement, value));\n };\n updateAttrs();\n updateClasses();\n updateStyles();\n definition.innerHtml.fold(updateChildren, updateHtml);\n updateValue();\n return obsoleted;\n };\n\n const introduceToDom = definition => {\n const subject = SugarElement.fromTag(definition.tag);\n setAll$1(subject, definition.attributes);\n add$1(subject, definition.classes);\n setAll(subject, definition.styles);\n definition.innerHtml.each(html => set$6(subject, html));\n const children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(value => {\n set$5(subject, value);\n });\n return subject;\n };\n const attemptPatch = (definition, obsoleted) => {\n try {\n const e = reconcileToDom(definition, obsoleted);\n return Optional.some(e);\n } catch (err) {\n return Optional.none();\n }\n };\n const hasMixedChildren = definition => definition.innerHtml.isSome() && definition.domChildren.length > 0;\n const renderToDom = (definition, optObsoleted) => {\n const canBePatched = candidate => name$3(candidate) === definition.tag && !hasMixedChildren(definition) && !isPremade(candidate);\n const elem = optObsoleted.filter(canBePatched).bind(obsoleted => attemptPatch(definition, obsoleted)).getOrThunk(() => introduceToDom(definition));\n writeOnly(elem, definition.uid);\n return elem;\n };\n\n const getBehaviours$2 = spec => {\n const behaviours = get$g(spec, 'behaviours').getOr({});\n return bind$3(keys(behaviours), name => {\n const behaviour = behaviours[name];\n return isNonNullable(behaviour) ? [behaviour.me] : [];\n });\n };\n const generateFrom = (spec, all) => generateFrom$1(spec, all);\n const generate$4 = spec => {\n const all = getBehaviours$2(spec);\n return generateFrom(spec, all);\n };\n\n const getDomDefinition = (info, bList, bData) => {\n const definition = toDefinition(info);\n const infoModification = toModification(info);\n const baseModification = { 'alloy.base.modification': infoModification };\n const modification = bList.length > 0 ? combine$2(bData, baseModification, bList, definition) : infoModification;\n return merge(definition, modification);\n };\n const getEvents = (info, bList, bData) => {\n const baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n const build$2 = (spec, obsoleted) => {\n const getMe = () => me;\n const systemApi = Cell(singleton$1);\n const info = getOrDie(toInfo(spec));\n const bBlob = generate$4(spec);\n const bList = getBehaviours$3(bBlob);\n const bData = getData$2(bBlob);\n const modDefinition = getDomDefinition(info, bList, bData);\n const item = renderToDom(modDefinition, obsoleted);\n const events = getEvents(info, bList, bData);\n const subcomponents = Cell(info.components);\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(getMe));\n };\n const syncComponents = () => {\n const children$1 = children(item);\n const subs = bind$3(children$1, child => systemApi.get().getByDom(child).fold(() => [], pure$2));\n subcomponents.set(subs);\n };\n const config = behaviour => {\n const b = bData;\n const f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : () => {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + JSON.stringify(spec, null, 2));\n };\n return f();\n };\n const hasConfigured = behaviour => isFunction(bData[behaviour.name()]);\n const getApis = () => info.apis;\n const readState = behaviourName => bData[behaviourName]().map(b => b.state.readState()).getOr('not enabled');\n const me = {\n uid: spec.uid,\n getSystem: systemApi.get,\n config,\n hasConfigured,\n spec,\n readState,\n getApis,\n connect,\n disconnect,\n element: item,\n syncComponents,\n components: subcomponents.get,\n events\n };\n return me;\n };\n\n const buildSubcomponents = (spec, obsoleted) => {\n const components = get$g(spec, 'components').getOr([]);\n return obsoleted.fold(() => map$2(components, build$1), obs => map$2(components, (c, i) => {\n return buildOrPatch(c, child$2(obs, i));\n }));\n };\n const buildFromSpec = (userSpec, obsoleted) => {\n const {\n events: specEvents,\n ...spec\n } = make$8(userSpec);\n const components = buildSubcomponents(spec, obsoleted);\n const completeSpec = {\n ...spec,\n events: {\n ...DefaultEvents,\n ...specEvents\n },\n components\n };\n return Result.value(build$2(completeSpec, obsoleted));\n };\n const text$1 = textContent => {\n const element = SugarElement.fromText(textContent);\n return external$1({ element });\n };\n const external$1 = spec => {\n const extSpec = asRawOrDie$1('external.component', objOfOnly([\n required$1('element'),\n option$3('uid')\n ]), spec);\n const systemApi = Cell(NoContextApi());\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(() => me));\n };\n const uid = extSpec.uid.getOrThunk(() => generate$5('external'));\n writeOnly(extSpec.element, uid);\n const me = {\n uid,\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect,\n disconnect,\n getApis: () => ({}),\n element: extSpec.element,\n spec,\n readState: constant$1('No state'),\n syncComponents: noop,\n components: constant$1([]),\n events: {}\n };\n return premade$1(me);\n };\n const uids = generate$5;\n const isSketchSpec$1 = spec => has$2(spec, 'uid');\n const buildOrPatch = (spec, obsoleted) => getPremade(spec).getOrThunk(() => {\n const userSpecWithUid = isSketchSpec$1(spec) ? spec : {\n uid: uids(''),\n ...spec\n };\n return buildFromSpec(userSpecWithUid, obsoleted).getOrDie();\n });\n const build$1 = spec => buildOrPatch(spec, Optional.none());\n const premade = premade$1;\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$1 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$3 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$5(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const closest$2 = (scope, predicate, isRoot) => closest$3(scope, predicate, isRoot).isSome();\n\n const ancestor = (scope, selector, isRoot) => ancestor$1(scope, e => is(e, selector), isRoot);\n const child = (scope, selector) => child$1(scope, e => is(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is$1 = (element, selector) => is(element, selector);\n return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);\n };\n\n const attribute = 'aria-controls';\n const find$1 = queryElem => {\n const dependent = closest$3(queryElem, elem => {\n if (!isElement$1(elem)) {\n return false;\n }\n const id = get$f(elem, 'id');\n return id !== undefined && id.indexOf(attribute) > -1;\n });\n return dependent.bind(dep => {\n const id = get$f(dep, 'id');\n const dos = getRootNode(dep);\n return descendant(dos, `[${ attribute }=\"${ id }\"]`);\n });\n };\n const manager = () => {\n const ariaId = generate$6(attribute);\n const link = elem => {\n set$9(elem, attribute, ariaId);\n };\n const unlink = elem => {\n remove$7(elem, attribute);\n };\n return {\n id: ariaId,\n link,\n unlink\n };\n };\n\n const isAriaPartOf = (component, queryElem) => find$1(queryElem).exists(owner => isPartOf$1(component, owner));\n const isPartOf$1 = (component, queryElem) => closest$2(queryElem, el => eq(el, component.element), never) || isAriaPartOf(component, queryElem);\n\n const unknown = 'unknown';\n var EventConfiguration;\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n }(EventConfiguration || (EventConfiguration = {})));\n const eventConfig = Cell({});\n const makeEventLogger = (eventName, initialTarget) => {\n const sequence = [];\n const startTime = new Date().getTime();\n return {\n logEventCut: (_name, target, purpose) => {\n sequence.push({\n outcome: 'cut',\n target,\n purpose\n });\n },\n logEventStopped: (_name, target, purpose) => {\n sequence.push({\n outcome: 'stopped',\n target,\n purpose\n });\n },\n logNoParent: (_name, target, purpose) => {\n sequence.push({\n outcome: 'no-parent',\n target,\n purpose\n });\n },\n logEventNoHandlers: (_name, target) => {\n sequence.push({\n outcome: 'no-handlers-left',\n target\n });\n },\n logEventResponse: (_name, target, purpose) => {\n sequence.push({\n outcome: 'response',\n purpose,\n target\n });\n },\n write: () => {\n const finishTime = new Date().getTime();\n if (contains$2([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map$2(sequence, s => {\n if (!contains$2([\n 'cut',\n 'stopped',\n 'response'\n ], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n const processEvent = (eventName, initialTarget, f) => {\n const status = get$g(eventConfig.get(), eventName).orThunk(() => {\n const patterns = keys(eventConfig.get());\n return findMap(patterns, p => eventName.indexOf(p) > -1 ? Optional.some(eventConfig.get()[p]) : Optional.none());\n }).getOr(EventConfiguration.NORMAL);\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n const logger = makeEventLogger(eventName, initialTarget);\n const output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n const path = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n const getTrace = () => {\n const err = new Error();\n if (err.stack !== undefined) {\n const lines = err.stack.split('\\n');\n return find$5(lines, line => line.indexOf('alloy') > 0 && !exists(path, p => line.indexOf(p) > -1)).getOr(unknown);\n } else {\n return unknown;\n }\n };\n const ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n const monitorEvent = (eventName, initialTarget, f) => processEvent(eventName, initialTarget, f);\n const noLogger = constant$1(ignoreEvent);\n\n const menuFields = constant$1([\n required$1('menu'),\n required$1('selectedMenu')\n ]);\n const itemFields = constant$1([\n required$1('item'),\n required$1('selectedItem')\n ]);\n constant$1(objOf(itemFields().concat(menuFields())));\n const itemSchema$3 = constant$1(objOf(itemFields()));\n\n const _initSize = requiredObjOf('initSize', [\n required$1('numColumns'),\n required$1('numRows')\n ]);\n const itemMarkers = () => requiredOf('markers', itemSchema$3());\n const tieredMenuMarkers = () => requiredObjOf('markers', [required$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n const markers$1 = required => requiredObjOf('markers', map$2(required, required$1));\n const onPresenceHandler = (label, fieldName, presence) => {\n getTrace();\n return field$1(fieldName, fieldName, presence, valueOf(f => Result.value((...args) => {\n return f.apply(undefined, args);\n })));\n };\n const onHandler = fieldName => onPresenceHandler('onHandler', fieldName, defaulted$1(noop));\n const onKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, defaulted$1(Optional.none));\n const onStrictHandler = fieldName => onPresenceHandler('onHandler', fieldName, required$2());\n const onStrictKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, required$2());\n const output$1 = (name, value) => customField(name, constant$1(value));\n const snapshot = name => customField(name, identity);\n const initSize = constant$1(_initSize);\n\n const nu$6 = (x, y, bubble, direction, placement, boundsRestriction, labelPrefix, alwaysFit = false) => ({\n x,\n y,\n bubble,\n direction,\n placement,\n restriction: boundsRestriction,\n label: `${ labelPrefix }-${ placement }`,\n alwaysFit\n });\n\n const adt$a = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n const cata$2 = (subject, southeast, southwest, northeast, northwest, south, north, east, west) => subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n const cataVertical = (subject, south, middle, north) => subject.fold(south, south, north, north, south, north, middle, middle);\n const cataHorizontal = (subject, east, middle, west) => subject.fold(east, west, east, west, middle, middle, east, west);\n const southeast$3 = adt$a.southeast;\n const southwest$3 = adt$a.southwest;\n const northeast$3 = adt$a.northeast;\n const northwest$3 = adt$a.northwest;\n const south$3 = adt$a.south;\n const north$3 = adt$a.north;\n const east$3 = adt$a.east;\n const west$3 = adt$a.west;\n\n const cycleBy = (value, delta, min, max) => {\n const r = value + delta;\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n const clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n\n const getRestriction = (anchor, restriction) => {\n switch (restriction) {\n case 1:\n return anchor.x;\n case 0:\n return anchor.x + anchor.width;\n case 2:\n return anchor.y;\n case 3:\n return anchor.y + anchor.height;\n }\n };\n const boundsRestriction = (anchor, restrictions) => mapToObject([\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], dir => get$g(restrictions, dir).map(restriction => getRestriction(anchor, restriction)));\n const adjustBounds = (bounds$1, restriction, bubbleOffset) => {\n const applyRestriction = (dir, current) => restriction[dir].map(pos => {\n const isVerticalAxis = dir === 'top' || dir === 'bottom';\n const offset = isVerticalAxis ? bubbleOffset.top : bubbleOffset.left;\n const comparator = dir === 'left' || dir === 'top' ? Math.max : Math.min;\n const newPos = comparator(pos, current) + offset;\n return isVerticalAxis ? clamp(newPos, bounds$1.y, bounds$1.bottom) : clamp(newPos, bounds$1.x, bounds$1.right);\n }).getOr(current);\n const adjustedLeft = applyRestriction('left', bounds$1.x);\n const adjustedTop = applyRestriction('top', bounds$1.y);\n const adjustedRight = applyRestriction('right', bounds$1.right);\n const adjustedBottom = applyRestriction('bottom', bounds$1.bottom);\n return bounds(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n const labelPrefix$2 = 'layout';\n const eastX$1 = anchor => anchor.x;\n const middleX$1 = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const westX$1 = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY$2 = (anchor, element) => anchor.y - element.height;\n const southY$2 = anchor => anchor.y + anchor.height;\n const centreY$1 = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const eastEdgeX$1 = anchor => anchor.x + anchor.width;\n const westEdgeX$1 = (anchor, element) => anchor.x - element.width;\n const southeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), southY$2(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), labelPrefix$2);\n const southwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), southY$2(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), labelPrefix$2);\n const northeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), northY$2(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), labelPrefix$2);\n const northwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), northY$2(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), labelPrefix$2);\n const north$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), northY$2(anchor, element), bubbles.north(), north$3(), 'north', boundsRestriction(anchor, { bottom: 2 }), labelPrefix$2);\n const south$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), southY$2(anchor), bubbles.south(), south$3(), 'south', boundsRestriction(anchor, { top: 3 }), labelPrefix$2);\n const east$2 = (anchor, element, bubbles) => nu$6(eastEdgeX$1(anchor), centreY$1(anchor, element), bubbles.east(), east$3(), 'east', boundsRestriction(anchor, { left: 0 }), labelPrefix$2);\n const west$2 = (anchor, element, bubbles) => nu$6(westEdgeX$1(anchor, element), centreY$1(anchor, element), bubbles.west(), west$3(), 'west', boundsRestriction(anchor, { right: 1 }), labelPrefix$2);\n const all$1 = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const allRtl$1 = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const aboveOrBelow = () => [\n northeast$2,\n northwest$2,\n southeast$2,\n southwest$2,\n north$2,\n south$2\n ];\n const aboveOrBelowRtl = () => [\n northwest$2,\n northeast$2,\n southwest$2,\n southeast$2,\n north$2,\n south$2\n ];\n const belowOrAbove = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2\n ];\n const belowOrAboveRtl = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2\n ];\n\n const chooseChannels = (channels, message) => message.universal ? channels : filter$2(channels, ch => contains$2(message.channels, ch));\n const events$h = receiveConfig => derive$2([run$1(receive(), (component, message) => {\n const channelMap = receiveConfig.channels;\n const channels = keys(channelMap);\n const receivingData = message;\n const targetChannels = chooseChannels(channels, receivingData);\n each$1(targetChannels, ch => {\n const channelInfo = channelMap[ch];\n const channelSchema = channelInfo.schema;\n const data = asRawOrDie$1('channel[' + ch + '] data\\nReceiver: ' + element(component.element), channelSchema, receivingData.data);\n channelInfo.onReceive(component, data);\n });\n })]);\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$h\n });\n\n var ReceivingSchema = [requiredOf('channels', setOf(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted('schema', anyValue())\n ])))];\n\n const executeEvent = (bConfig, bState, executor) => runOnExecute$1(component => {\n executor(component, bConfig, bState);\n });\n const loadEvent = (bConfig, bState, f) => runOnInit((component, _simulatedEvent) => {\n f(component, bConfig, bState);\n });\n const create$4 = (schema, name, active, apis, extra, state) => {\n const configSchema = objOfOnly(schema);\n const schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const createModes$1 = (modes, name, active, apis, extra, state) => {\n const configSchema = modes;\n const schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const wrapApi = (bName, apiFunction, apiName) => {\n const f = (component, ...rest) => {\n const args = [component].concat(rest);\n return component.config({ name: constant$1(bName) }).fold(() => {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, info => {\n const rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n const revokeBehaviour = name => ({\n key: name,\n value: undefined\n });\n const doCreate = (configSchema, schemaSchema, name, active, apis, extra, state) => {\n const getConfig = info => hasNonNullableKey(info, name) ? info[name]() : Optional.none();\n const wrappedApis = map$1(apis, (apiF, apiName) => wrapApi(name, apiF, apiName));\n const wrappedExtra = map$1(extra, (extraF, extraName) => markAsExtraApi(extraF, extraName));\n const me = {\n ...wrappedExtra,\n ...wrappedApis,\n revoke: curry(revokeBehaviour, name),\n config: spec => {\n const prepared = asRawOrDie$1(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me,\n configAsRaw: cached(() => asRawOrDie$1(name + '-config', configSchema, spec)),\n initialConfig: spec,\n state\n }\n };\n },\n schema: constant$1(schemaSchema),\n exhibit: (info, base) => {\n return lift2(getConfig(info), get$g(active, 'exhibit'), (behaviourInfo, exhibitor) => {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n }).getOrThunk(() => nu$7({}));\n },\n name: constant$1(name),\n handlers: info => {\n return getConfig(info).map(behaviourInfo => {\n const getEvents = get$g(active, 'events').getOr(() => ({}));\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n };\n return me;\n };\n\n const derive$1 = capabilities => wrapAll(capabilities);\n const simpleSchema = objOfOnly([\n required$1('fields'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const create$3 = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, simpleSchema, data);\n return create$4(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n const modeSchema = objOfOnly([\n required$1('branchKey'),\n required$1('branches'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const createModes = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes$1(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n const revoke = constant$1(undefined);\n\n const Receiving = create$3({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n const exhibit$6 = (base, posConfig) => nu$7({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$6\n });\n\n const focus$3 = element => element.dom.focus();\n const blur$1 = element => element.dom.blur();\n const hasFocus = element => {\n const root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n const preserve$1 = (f, container) => {\n const dos = getRootNode(container);\n const refocus = active$1(dos).bind(focused => {\n const hasFocus = elem => eq(focused, elem);\n return hasFocus(container) ? Optional.some(container) : descendant$1(container, hasFocus);\n });\n const result = f(container);\n refocus.each(oldFocus => {\n active$1(dos).filter(newFocus => eq(newFocus, oldFocus)).fold(() => {\n focus$3(oldFocus);\n }, noop);\n });\n return result;\n };\n\n const NuPositionCss = (position, left, top, right, bottom) => {\n const toPx = num => num + 'px';\n return {\n position,\n left: left.map(toPx),\n top: top.map(toPx),\n right: right.map(toPx),\n bottom: bottom.map(toPx)\n };\n };\n const toOptions = position => ({\n ...position,\n position: Optional.some(position.position)\n });\n const applyPositionCss = (element, position) => {\n setOptions(element, toOptions(position));\n };\n\n const adt$9 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n const positionWithDirection = (posName, decision, x, y, width, height) => {\n const decisionRect = decision.rect;\n const decisionX = decisionRect.x - x;\n const decisionY = decisionRect.y - y;\n const decisionWidth = decisionRect.width;\n const decisionHeight = decisionRect.height;\n const decisionRight = width - (decisionX + decisionWidth);\n const decisionBottom = height - (decisionY + decisionHeight);\n const left = Optional.some(decisionX);\n const top = Optional.some(decisionY);\n const right = Optional.some(decisionRight);\n const bottom = Optional.some(decisionBottom);\n const none = Optional.none();\n return cata$2(decision.direction, () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, none, none, right, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none));\n };\n const reposition = (origin, decision) => origin.fold(() => {\n const decisionRect = decision.rect;\n return NuPositionCss('absolute', Optional.some(decisionRect.x), Optional.some(decisionRect.y), Optional.none(), Optional.none());\n }, (x, y, width, height) => {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, (x, y, width, height) => {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n const toBox = (origin, element) => {\n const rel = curry(find$2, element);\n const position = origin.fold(rel, rel, () => {\n const scroll = get$b();\n return find$2(element).translate(-scroll.left, -scroll.top);\n });\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const viewport = (origin, getBounds) => getBounds.fold(() => origin.fold(win, win, bounds), b => origin.fold(b, b, () => {\n const bounds$1 = b();\n const pos = translate$2(origin, bounds$1.x, bounds$1.y);\n return bounds(pos.left, pos.top, bounds$1.width, bounds$1.height);\n }));\n const translate$2 = (origin, x, y) => {\n const pos = SugarPosition(x, y);\n const removeScroll = () => {\n const outerScroll = get$b();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n return origin.fold(constant$1(pos), constant$1(pos), removeScroll);\n };\n const cata$1 = (subject, onNone, onRelative, onFixed) => subject.fold(onNone, onRelative, onFixed);\n adt$9.none;\n const relative$1 = adt$9.relative;\n const fixed$1 = adt$9.fixed;\n\n const anchor = (anchorBox, origin) => ({\n anchorBox,\n origin\n });\n const box = (anchorBox, origin) => anchor(anchorBox, origin);\n\n const placementAttribute = 'data-alloy-placement';\n const setPlacement$1 = (element, placement) => {\n set$9(element, placementAttribute, placement);\n };\n const getPlacement = element => getOpt(element, placementAttribute);\n const reset$2 = element => remove$7(element, placementAttribute);\n\n const adt$8 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'visibleW',\n 'visibleH',\n 'isVisible'\n ]\n }\n ]);\n const determinePosition = (box, bounds) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds;\n const {x, y, right, bottom, width, height} = box;\n const xInBounds = x >= boundsX && x <= boundsRight;\n const yInBounds = y >= boundsY && y <= boundsBottom;\n const originInBounds = xInBounds && yInBounds;\n const rightInBounds = right <= boundsRight && right >= boundsX;\n const bottomInBounds = bottom <= boundsBottom && bottom >= boundsY;\n const sizeInBounds = rightInBounds && bottomInBounds;\n const visibleW = Math.min(width, x >= boundsX ? boundsRight - x : right - boundsX);\n const visibleH = Math.min(height, y >= boundsY ? boundsBottom - y : bottom - boundsY);\n return {\n originInBounds,\n sizeInBounds,\n visibleW,\n visibleH\n };\n };\n const calcReposition = (box, bounds$1) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds$1;\n const {x, y, width, height} = box;\n const maxX = Math.max(boundsX, boundsRight - width);\n const maxY = Math.max(boundsY, boundsBottom - height);\n const restrictedX = clamp(x, boundsX, maxX);\n const restrictedY = clamp(y, boundsY, maxY);\n const restrictedWidth = Math.min(restrictedX + width, boundsRight) - restrictedX;\n const restrictedHeight = Math.min(restrictedY + height, boundsBottom) - restrictedY;\n return bounds(restrictedX, restrictedY, restrictedWidth, restrictedHeight);\n };\n const calcMaxSizes = (direction, box, bounds) => {\n const upAvailable = constant$1(box.bottom - bounds.y);\n const downAvailable = constant$1(bounds.bottom - box.y);\n const maxHeight = cataVertical(direction, downAvailable, downAvailable, upAvailable);\n const westAvailable = constant$1(box.right - bounds.x);\n const eastAvailable = constant$1(bounds.right - box.x);\n const maxWidth = cataHorizontal(direction, eastAvailable, eastAvailable, westAvailable);\n return {\n maxWidth,\n maxHeight\n };\n };\n const attempt = (candidate, width, height, bounds$1) => {\n const bubble = candidate.bubble;\n const bubbleOffset = bubble.offset;\n const adjustedBounds = adjustBounds(bounds$1, candidate.restriction, bubbleOffset);\n const newX = candidate.x + bubbleOffset.left;\n const newY = candidate.y + bubbleOffset.top;\n const box = bounds(newX, newY, width, height);\n const {originInBounds, sizeInBounds, visibleW, visibleH} = determinePosition(box, adjustedBounds);\n const fits = originInBounds && sizeInBounds;\n const fittedBox = fits ? box : calcReposition(box, adjustedBounds);\n const isPartlyVisible = fittedBox.width > 0 && fittedBox.height > 0;\n const {maxWidth, maxHeight} = calcMaxSizes(candidate.direction, fittedBox, bounds$1);\n const reposition = {\n rect: fittedBox,\n maxHeight,\n maxWidth,\n direction: candidate.direction,\n placement: candidate.placement,\n classes: {\n on: bubble.classesOn,\n off: bubble.classesOff\n },\n layout: candidate.label,\n testY: newY\n };\n return fits || candidate.alwaysFit ? adt$8.fit(reposition) : adt$8.nofit(reposition, visibleW, visibleH, isPartlyVisible);\n };\n const attempts = (element, candidates, anchorBox, elementBox, bubbles, bounds) => {\n const panelWidth = elementBox.width;\n const panelHeight = elementBox.height;\n const attemptBestFit = (layout, reposition, visibleW, visibleH, isVisible) => {\n const next = layout(anchorBox, elementBox, bubbles, element, bounds);\n const attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(constant$1(attemptLayout), (newReposition, newVisibleW, newVisibleH, newIsVisible) => {\n const improved = isVisible === newIsVisible ? newVisibleH > visibleH || newVisibleW > visibleW : !isVisible && newIsVisible;\n return improved ? attemptLayout : adt$8.nofit(reposition, visibleW, visibleH, isVisible);\n });\n };\n const abc = foldl(candidates, (b, a) => {\n const bestNext = curry(attemptBestFit, a);\n return b.fold(constant$1(b), bestNext);\n }, adt$8.nofit({\n rect: anchorBox,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast$3(),\n placement: 'southeast',\n classes: {\n on: [],\n off: []\n },\n layout: 'none',\n testY: anchorBox.y\n }, -1, -1, false));\n return abc.fold(identity, identity);\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const destroyable = () => singleton(s => s.destroy());\n const unbindable = () => singleton(s => s.unbind());\n const value$2 = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$2(element, event, filter, handler);\n const capture = (element, event, handler) => capture$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const properties = [\n 'top',\n 'bottom',\n 'right',\n 'left'\n ];\n const timerAttr = 'data-alloy-transition-timer';\n const isTransitioning$1 = (element, transition) => hasAll(element, transition.classes);\n const shouldApplyTransitionCss = (transition, decision, lastPlacement) => {\n return lastPlacement.exists(placer => {\n const mode = transition.mode;\n return mode === 'all' ? true : placer[mode] !== decision[mode];\n });\n };\n const hasChanges = (position, intermediate) => {\n const round = value => parseFloat(value).toFixed(3);\n return find$4(intermediate, (value, key) => {\n const newValue = position[key].map(round);\n const val = value.map(round);\n return !equals(newValue, val);\n }).isSome();\n };\n const getTransitionDuration = element => {\n const get = name => {\n const style = get$e(element, name);\n const times = style.split(/\\s*,\\s*/);\n return filter$2(times, isNotEmpty);\n };\n const parse = value => {\n if (isString(value) && /^[\\d.]+/.test(value)) {\n const num = parseFloat(value);\n return endsWith(value, 'ms') ? num : num * 1000;\n } else {\n return 0;\n }\n };\n const delay = get('transition-delay');\n const duration = get('transition-duration');\n return foldl(duration, (acc, dur, i) => {\n const time = parse(delay[i]) + parse(dur);\n return Math.max(acc, time);\n }, 0);\n };\n const setupTransitionListeners = (element, transition) => {\n const transitionEnd = unbindable();\n const transitionCancel = unbindable();\n let timer;\n const isSourceTransition = e => {\n var _a;\n const pseudoElement = (_a = e.raw.pseudoElement) !== null && _a !== void 0 ? _a : '';\n return eq(e.target, element) && isEmpty(pseudoElement) && contains$2(properties, e.raw.propertyName);\n };\n const transitionDone = e => {\n if (isNullable(e) || isSourceTransition(e)) {\n transitionEnd.clear();\n transitionCancel.clear();\n const type = e === null || e === void 0 ? void 0 : e.raw.type;\n if (isNullable(type) || type === transitionend()) {\n clearTimeout(timer);\n remove$7(element, timerAttr);\n remove$1(element, transition.classes);\n }\n }\n };\n const transitionStart = bind(element, transitionstart(), e => {\n if (isSourceTransition(e)) {\n transitionStart.unbind();\n transitionEnd.set(bind(element, transitionend(), transitionDone));\n transitionCancel.set(bind(element, transitioncancel(), transitionDone));\n }\n });\n const duration = getTransitionDuration(element);\n requestAnimationFrame(() => {\n timer = setTimeout(transitionDone, duration + 17);\n set$9(element, timerAttr, timer);\n });\n };\n const startTransitioning = (element, transition) => {\n add$1(element, transition.classes);\n getOpt(element, timerAttr).each(timerId => {\n clearTimeout(parseInt(timerId, 10));\n remove$7(element, timerAttr);\n });\n setupTransitionListeners(element, transition);\n };\n const applyTransitionCss = (element, origin, position, transition, decision, lastPlacement) => {\n const shouldTransition = shouldApplyTransitionCss(transition, decision, lastPlacement);\n if (shouldTransition || isTransitioning$1(element, transition)) {\n set$8(element, 'position', position.position);\n const rect = toBox(origin, element);\n const intermediatePosition = reposition(origin, {\n ...decision,\n rect\n });\n const intermediateCssOptions = mapToObject(properties, prop => intermediatePosition[prop]);\n if (hasChanges(position, intermediateCssOptions)) {\n setOptions(element, intermediateCssOptions);\n if (shouldTransition) {\n startTransitioning(element, transition);\n }\n reflow(element);\n }\n } else {\n remove$1(element, transition.classes);\n }\n };\n\n const elementSize = p => ({\n width: getOuter$1(p),\n height: getOuter$2(p)\n });\n const layout = (anchorBox, element, bubbles, options) => {\n remove$6(element, 'max-height');\n remove$6(element, 'max-width');\n const elementBox = elementSize(element);\n return attempts(element, options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n const setClasses = (element, decision) => {\n const classInfo = decision.classes;\n remove$1(element, classInfo.off);\n add$1(element, classInfo.on);\n };\n const setHeight = (element, decision, options) => {\n const maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n const setWidth = (element, decision, options) => {\n const maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n const position$2 = (element, decision, options) => {\n const positionCss = reposition(options.origin, decision);\n options.transition.each(transition => {\n applyTransitionCss(element, options.origin, positionCss, transition, decision, options.lastPlacement);\n });\n applyPositionCss(element, positionCss);\n };\n const setPlacement = (element, decision) => {\n setPlacement$1(element, decision.placement);\n };\n\n const setMaxHeight = (element, maxHeight) => {\n setMax$1(element, Math.floor(maxHeight));\n };\n const anchored = constant$1((element, available) => {\n setMaxHeight(element, available);\n setAll(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n const expandable$1 = constant$1((element, available) => {\n setMaxHeight(element, available);\n });\n\n const defaultOr = (options, key, dephault) => options[key] === undefined ? dephault : options[key];\n const simple = (anchor, element, bubble, layouts, lastPlacement, getBounds, overrideOptions, transition) => {\n const maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n const maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n const anchorBox = anchor.anchorBox;\n const origin = anchor.origin;\n const options = {\n bounds: viewport(origin, getBounds),\n origin,\n preference: layouts,\n maxHeightFunction,\n maxWidthFunction,\n lastPlacement,\n transition\n };\n return go(anchorBox, element, bubble, options);\n };\n const go = (anchorBox, element, bubble, options) => {\n const decision = layout(anchorBox, element, bubble, options);\n position$2(element, decision, options);\n setPlacement(element, decision);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n return {\n layout: decision.layout,\n placement: decision.placement\n };\n };\n\n const allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'inset'\n ];\n const nu$5 = (xOffset, yOffset, classes, insetModifier = 1) => {\n const insetXOffset = xOffset * insetModifier;\n const insetYOffset = yOffset * insetModifier;\n const getClasses = prop => get$g(classes, prop).getOr([]);\n const make = (xDelta, yDelta, alignmentsOn) => {\n const alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind$3(alignmentsOn, getClasses),\n classesOff: bind$3(alignmentsOff, getClasses)\n };\n };\n return {\n southeast: () => make(-xOffset, yOffset, [\n 'top',\n 'alignLeft'\n ]),\n southwest: () => make(xOffset, yOffset, [\n 'top',\n 'alignRight'\n ]),\n south: () => make(-xOffset / 2, yOffset, [\n 'top',\n 'alignCentre'\n ]),\n northeast: () => make(-xOffset, -yOffset, [\n 'bottom',\n 'alignLeft'\n ]),\n northwest: () => make(xOffset, -yOffset, [\n 'bottom',\n 'alignRight'\n ]),\n north: () => make(-xOffset / 2, -yOffset, [\n 'bottom',\n 'alignCentre'\n ]),\n east: () => make(xOffset, -yOffset / 2, [\n 'valignCentre',\n 'left'\n ]),\n west: () => make(-xOffset, -yOffset / 2, [\n 'valignCentre',\n 'right'\n ]),\n insetNortheast: () => make(insetXOffset, insetYOffset, [\n 'top',\n 'alignLeft',\n 'inset'\n ]),\n insetNorthwest: () => make(-insetXOffset, insetYOffset, [\n 'top',\n 'alignRight',\n 'inset'\n ]),\n insetNorth: () => make(-insetXOffset / 2, insetYOffset, [\n 'top',\n 'alignCentre',\n 'inset'\n ]),\n insetSoutheast: () => make(insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignLeft',\n 'inset'\n ]),\n insetSouthwest: () => make(-insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignRight',\n 'inset'\n ]),\n insetSouth: () => make(-insetXOffset / 2, -insetYOffset, [\n 'bottom',\n 'alignCentre',\n 'inset'\n ]),\n insetEast: () => make(-insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'right',\n 'inset'\n ]),\n insetWest: () => make(insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'left',\n 'inset'\n ])\n };\n };\n const fallback = () => nu$5(0, 0, {});\n\n const nu$4 = identity;\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$e(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n var AttributeValue;\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n }(AttributeValue || (AttributeValue = {})));\n const Attribute = 'data-alloy-vertical-dir';\n const isBottomToTopDir = el => closest$2(el, current => isElement$1(current) && get$f(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop);\n\n const schema$y = () => optionObjOf('layouts', [\n required$1('onLtr'),\n required$1('onRtl'),\n option$3('onBottomLtr'),\n option$3('onBottomRtl')\n ]);\n const get$5 = (elem, info, defaultLtr, defaultRtl, defaultBottomLtr, defaultBottomRtl, dirElement) => {\n const isBottomToTop = dirElement.map(isBottomToTopDir).getOr(false);\n const customLtr = info.layouts.map(ls => ls.onLtr(elem));\n const customRtl = info.layouts.map(ls => ls.onRtl(elem));\n const ltr = isBottomToTop ? info.layouts.bind(ls => ls.onBottomLtr.map(f => f(elem))).or(customLtr).getOr(defaultBottomLtr) : customLtr.getOr(defaultLtr);\n const rtl = isBottomToTop ? info.layouts.bind(ls => ls.onBottomRtl.map(f => f(elem))).or(customRtl).getOr(defaultBottomRtl) : customRtl.getOr(defaultRtl);\n const f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n const placement$4 = (component, anchorInfo, origin) => {\n const hotspot = anchorInfo.hotspot;\n const anchorBox = toBox(origin, hotspot.element);\n const layouts = get$5(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts,\n placer: Optional.none()\n }));\n };\n var HotspotAnchor = [\n required$1('hotspot'),\n option$3('bubble'),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$4)\n ];\n\n const placement$3 = (component, anchorInfo, origin) => {\n const pos = translate$2(origin, anchorInfo.x, anchorInfo.y);\n const anchorBox = bounds(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n const layouts = get$5(component.element, anchorInfo, all$1(), allRtl$1(), all$1(), allRtl$1(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts,\n placer: Optional.none()\n }));\n };\n var MakeshiftAnchor = [\n required$1('x'),\n required$1('y'),\n defaulted('height', 0),\n defaulted('width', 0),\n defaulted('bubble', fallback()),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$3)\n ];\n\n const adt$7 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n const toFixed = pos => pos.fold(identity, (point, scrollLeft, scrollTop) => point.translate(-scrollLeft, -scrollTop));\n const toAbsolute = pos => pos.fold(identity, identity);\n const sum = points => foldl(points, (b, a) => b.translate(a.left, a.top), SugarPosition(0, 0));\n const sumAsFixed = positions => {\n const points = map$2(positions, toFixed);\n return sum(points);\n };\n const sumAsAbsolute = positions => {\n const points = map$2(positions, toAbsolute);\n return sum(points);\n };\n const screen = adt$7.screen;\n const absolute$1 = adt$7.absolute;\n\n const getOffset = (component, origin, anchorInfo) => {\n const win = defaultView(anchorInfo.root).dom;\n const hasSameOwner = frame => {\n const frameOwner = owner$4(frame);\n const compOwner = owner$4(component.element);\n return eq(frameOwner, compOwner);\n };\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute$3);\n };\n const getRootPoint = (component, origin, anchorInfo) => {\n const doc = owner$4(component.element);\n const outerScroll = get$b(doc);\n const offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left, outerScroll.top);\n };\n\n const getBox = (left, top, width, height) => {\n const point = screen(SugarPosition(left, top));\n return Optional.some(pointed(point, width, height));\n };\n const calcNewAnchor = (optBox, rootPoint, anchorInfo, origin, elem) => optBox.map(box => {\n const points = [\n rootPoint,\n box.point\n ];\n const topLeft = cata$1(origin, () => sumAsAbsolute(points), () => sumAsAbsolute(points), () => sumAsFixed(points));\n const anchorBox = rect(topLeft.left, topLeft.top, box.width, box.height);\n const layoutsLtr = anchorInfo.showAbove ? aboveOrBelow() : belowOrAbove();\n const layoutsRtl = anchorInfo.showAbove ? aboveOrBelowRtl() : belowOrAboveRtl();\n const layouts = get$5(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts,\n placer: Optional.none()\n });\n });\n\n const placement$2 = (component, anchorInfo, origin) => {\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.filter(inBody).bind(target => {\n const rect = target.dom.getBoundingClientRect();\n const nodeBox = getBox(rect.left, rect.top, rect.width, rect.height);\n const elem = anchorInfo.node.getOr(component.element);\n return calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n required$1('node'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$2)\n ];\n\n const zeroWidth = '\\uFEFF';\n const nbsp = '\\xA0';\n\n const create$2 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$2 };\n\n const adt$6 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before = adt$6.before;\n const on$1 = adt$6.on;\n const after$1 = adt$6.after;\n const Situ = {\n before,\n on: on$1,\n after: after$1,\n cata,\n getStart: getStart$1\n };\n\n const adt$5 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt$5.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt$5.domRange;\n const relative = adt$5.relative;\n const exact = adt$5.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range$1 = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range: range$1\n };\n\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n const getBounds$2 = rng => {\n const rect = rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$4 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant$1(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$4.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$4.ltr, rng));\n } else {\n return fromRange(win, adt$4.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$4.ltr;\n adt$4.rtl;\n\n const descendants = (scope, selector) => all$3(selector, scope);\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner$4(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getBounds$1 = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getBounds$2(rng);\n };\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$4 = element => api.get(element);\n\n const point = (element, offset) => ({\n element,\n offset\n });\n const descendOnce$1 = (element, offset) => {\n const children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n const last = children$1[children$1.length - 1];\n const len = isText(last) ? get$4(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n const descendOnce = (element, offset) => isText(element) ? point(element, offset) : descendOnce$1(element, offset);\n const getAnchorSelection = (win, anchorInfo) => {\n const getSelection = anchorInfo.getSelection.getOrThunk(() => () => getExact(win));\n return getSelection().map(sel => {\n const modStart = descendOnce(sel.start, sel.soffset);\n const modFinish = descendOnce(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n });\n };\n const placement$1 = (component, anchorInfo, origin) => {\n const win = defaultView(anchorInfo.root).dom;\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n const selectionBox = getAnchorSelection(win, anchorInfo).bind(sel => {\n const optRect = getBounds$1(win, SimSelection.exactFromRange(sel)).orThunk(() => {\n const x = SugarElement.fromText(zeroWidth);\n before$1(sel.start, x);\n const rect = getFirstRect(win, SimSelection.exact(x, 0, x, 1));\n remove$5(x);\n return rect;\n });\n return optRect.bind(rawRect => getBox(rawRect.left, rawRect.top, rawRect.width, rawRect.height));\n });\n const targetElement = getAnchorSelection(win, anchorInfo).bind(sel => isElement$1(sel.start) ? Optional.some(sel.start) : parentElement(sel.start));\n const elem = targetElement.getOr(component.element);\n return calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option$3('getSelection'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$1)\n ];\n\n const labelPrefix$1 = 'link-layout';\n const eastX = anchor => anchor.x + anchor.width;\n const westX = (anchor, element) => anchor.x - element.width;\n const northY$1 = (anchor, element) => anchor.y - element.height + anchor.height;\n const southY$1 = anchor => anchor.y;\n const southeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), southY$1(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), labelPrefix$1);\n const southwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), southY$1(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), labelPrefix$1);\n const northeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), northY$1(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), labelPrefix$1);\n const northwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), labelPrefix$1);\n const all = () => [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1\n ];\n const allRtl = () => [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1\n ];\n\n const placement = (component, submenuInfo, origin) => {\n const anchorBox = toBox(origin, submenuInfo.item.element);\n const layouts = get$5(component.element, submenuInfo, all(), allRtl(), all(), allRtl(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts,\n placer: Optional.none()\n }));\n };\n var SubmenuAnchor = [\n required$1('item'),\n schema$y(),\n defaulted('overrides', {}),\n output$1('placement', placement)\n ];\n\n var AnchorSchema = choose$1('type', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n const TransitionSchema = [\n requiredArrayOf('classes', string),\n defaultedStringEnum('mode', 'all', [\n 'all',\n 'layout',\n 'placement'\n ])\n ];\n const PositionSchema = [\n defaulted('useFixed', never),\n option$3('getBounds')\n ];\n const PlacementSchema = [\n requiredOf('anchor', AnchorSchema),\n optionObjOf('transition', TransitionSchema)\n ];\n\n const getFixedOrigin = () => {\n const html = document.documentElement;\n return fixed$1(0, 0, html.clientWidth, html.clientHeight);\n };\n const getRelativeOrigin = component => {\n const position = absolute$3(component.element);\n const bounds = component.element.dom.getBoundingClientRect();\n return relative$1(position.left, position.top, bounds.width, bounds.height);\n };\n const place = (component, origin, anchoring, getBounds, placee, lastPlace, transition) => {\n const anchor = box(anchoring.anchorBox, origin);\n return simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, lastPlace, getBounds, anchoring.overrides, transition);\n };\n const position$1 = (component, posConfig, posState, placee, placementSpec) => {\n positionWithin(component, posConfig, posState, placee, placementSpec, Optional.none());\n };\n const positionWithin = (component, posConfig, posState, placee, placementSpec, boxElement) => {\n const boundsBox = boxElement.map(box$1);\n return positionWithinBounds(component, posConfig, posState, placee, placementSpec, boundsBox);\n };\n const positionWithinBounds = (component, posConfig, posState, placee, placementSpec, bounds) => {\n const placeeDetail = asRawOrDie$1('placement.info', objOf(PlacementSchema), placementSpec);\n const anchorage = placeeDetail.anchor;\n const element = placee.element;\n const placeeState = posState.get(placee.uid);\n preserve$1(() => {\n set$8(element, 'position', 'fixed');\n const oldVisibility = getRaw(element, 'visibility');\n set$8(element, 'visibility', 'hidden');\n const origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n const placer = anchorage.placement;\n const getBounds = bounds.map(constant$1).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(anchoring => {\n const doPlace = anchoring.placer.getOr(place);\n const newState = doPlace(component, origin, anchoring, getBounds, placee, placeeState, placeeDetail.transition);\n posState.set(placee.uid, newState);\n });\n oldVisibility.fold(() => {\n remove$6(element, 'visibility');\n }, vis => {\n set$8(element, 'visibility', vis);\n });\n if (getRaw(element, 'left').isNone() && getRaw(element, 'top').isNone() && getRaw(element, 'right').isNone() && getRaw(element, 'bottom').isNone() && is$1(getRaw(element, 'position'), 'fixed')) {\n remove$6(element, 'position');\n }\n }, element);\n };\n const getMode = (component, pConfig, _pState) => pConfig.useFixed() ? 'fixed' : 'absolute';\n const reset$1 = (component, pConfig, posState, placee) => {\n const element = placee.element;\n each$1([\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], prop => remove$6(element, prop));\n reset$2(element);\n posState.clear(placee.uid);\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n position: position$1,\n positionWithin: positionWithin,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode,\n reset: reset$1\n });\n\n const init$g = () => {\n let state = {};\n const set = (id, data) => {\n state[id] = data;\n };\n const get = id => get$g(state, id);\n const clear = id => {\n if (isNonNullable(id)) {\n delete state[id];\n } else {\n state = {};\n }\n };\n return nu$8({\n readState: () => state,\n clear,\n set,\n get\n });\n };\n\n var PositioningState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$g\n });\n\n const Positioning = create$3({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis,\n state: PositioningState\n });\n\n const isConnected = comp => comp.getSystem().isConnected();\n const fireDetaching = component => {\n emit(component, detachedFromDom());\n const children = component.components();\n each$1(children, fireDetaching);\n };\n const fireAttaching = component => {\n const children = component.components();\n each$1(children, fireAttaching);\n emit(component, attachedToDom());\n };\n const virtualAttach = (parent, child) => {\n parent.getSystem().addToWorld(child);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n };\n const virtualDetach = comp => {\n fireDetaching(comp);\n comp.getSystem().removeFromWorld(comp);\n };\n const attach$1 = (parent, child) => {\n append$2(parent.element, child.element);\n };\n const detachChildren$1 = component => {\n each$1(component.components(), childComp => remove$5(childComp.element));\n empty(component.element);\n component.syncComponents();\n };\n const replaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n detachChildren$1(component);\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, comp => {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n component.getSystem().addToWorld(childComp);\n attach$1(component, childComp);\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach$1(component, childComp);\n }\n });\n component.syncComponents();\n };\n const virtualReplaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n const existingComps = bind$3(newSpecs, spec => getPremade(spec).toArray());\n each$1(subs, childComp => {\n if (!contains$2(existingComps, childComp)) {\n virtualDetach(childComp);\n }\n });\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, deletedComp => {\n if (isConnected(deletedComp)) {\n virtualDetach(deletedComp);\n }\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n virtualAttach(component, childComp);\n }\n });\n component.syncComponents();\n };\n\n const attach = (parent, child) => {\n attachWith(parent, child, append$2);\n };\n const attachWith = (parent, child, insertion) => {\n parent.getSystem().addToWorld(child);\n insertion(parent.element, child.element);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n const doDetach = component => {\n fireDetaching(component);\n remove$5(component.element);\n component.getSystem().removeFromWorld(component);\n };\n const detach = component => {\n const parent$1 = parent(component.element).bind(p => component.getSystem().getByDom(p).toOptional());\n doDetach(component);\n parent$1.each(p => {\n p.syncComponents();\n });\n };\n const detachChildren = component => {\n const subs = component.components();\n each$1(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n const attachSystem = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, append$2);\n };\n const attachSystemAfter = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, after$2);\n };\n const attachSystemWith = (element, guiSystem, inserter) => {\n inserter(element, guiSystem.element);\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n const detachSystem = guiSystem => {\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove$5(guiSystem.element);\n };\n\n const rebuild = (sandbox, sConfig, sState, data) => {\n sState.get().each(_data => {\n detachChildren(sandbox);\n });\n const point = sConfig.getAttachPoint(sandbox);\n attach(point, sandbox);\n const built = sandbox.getSystem().build(data);\n attach(sandbox, built);\n sState.set(built);\n return built;\n };\n const open$1 = (sandbox, sConfig, sState, data) => {\n const newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n const setContent = (sandbox, sConfig, sState, data) => sState.get().map(() => rebuild(sandbox, sConfig, sState, data));\n const openWhileCloaked = (sandbox, sConfig, sState, data, transaction) => {\n cloak(sandbox, sConfig);\n open$1(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n const close$1 = (sandbox, sConfig, sState) => {\n sState.get().each(data => {\n detachChildren(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n const isOpen$1 = (_sandbox, _sConfig, sState) => sState.isOpen();\n const isPartOf = (sandbox, sConfig, sState, queryElem) => isOpen$1(sandbox, sConfig, sState) && sState.get().exists(data => sConfig.isPartOf(sandbox, data, queryElem));\n const getState$2 = (_sandbox, _sConfig, sState) => sState.get();\n const store = (sandbox, cssKey, attr, newValue) => {\n getRaw(sandbox.element, cssKey).fold(() => {\n remove$7(sandbox.element, attr);\n }, v => {\n set$9(sandbox.element, attr, v);\n });\n set$8(sandbox.element, cssKey, newValue);\n };\n const restore = (sandbox, cssKey, attr) => {\n getOpt(sandbox.element, attr).fold(() => remove$6(sandbox.element, cssKey), oldValue => set$8(sandbox.element, cssKey, oldValue));\n };\n const cloak = (sandbox, sConfig, _sState) => {\n const sink = sConfig.getAttachPoint(sandbox);\n set$8(sandbox.element, 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n const hasPosition = element => exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], pos => getRaw(element, pos).isSome());\n const decloak = (sandbox, sConfig, _sState) => {\n if (!hasPosition(sandbox.element)) {\n remove$6(sandbox.element, 'position');\n }\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n cloak: cloak,\n decloak: decloak,\n open: open$1,\n openWhileCloaked: openWhileCloaked,\n close: close$1,\n isOpen: isOpen$1,\n isPartOf: isPartOf,\n getState: getState$2,\n setContent: setContent\n });\n\n const events$g = (sandboxConfig, sandboxState) => derive$2([run$1(sandboxClose(), (sandbox, _simulatedEvent) => {\n close$1(sandbox, sandboxConfig, sandboxState);\n })]);\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$g\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n required$1('isPartOf'),\n required$1('getAttachPoint'),\n defaulted('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n const init$f = () => {\n const contents = value$2();\n const readState = constant$1('not-implemented');\n return nu$8({\n readState,\n isOpen: contents.isSet,\n clear: contents.clear,\n set: contents.set,\n get: contents.get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$f\n });\n\n const Sandboxing = create$3({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n const dismissPopups = constant$1('dismiss.popups');\n const repositionPopups = constant$1('reposition.popups');\n const mouseReleased = constant$1('mouse.released');\n\n const schema$x = objOfOnly([\n defaulted('isExtraPart', never),\n optionObjOf('fireEventInstead', [defaulted('event', dismissRequested())])\n ]);\n const receivingChannel$1 = rawSpec => {\n const detail = asRawOrDie$1('Dismissal', schema$x, rawSpec);\n return {\n [dismissPopups()]: {\n schema: objOfOnly([required$1('target')]),\n onReceive: (sandbox, data) => {\n if (Sandboxing.isOpen(sandbox)) {\n const isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n if (!isPart) {\n detail.fireEventInstead.fold(() => Sandboxing.close(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n }\n };\n };\n\n const schema$w = objOfOnly([\n optionObjOf('fireEventInstead', [defaulted('event', repositionRequested())]),\n requiredFunction('doReposition')\n ]);\n const receivingChannel = rawSpec => {\n const detail = asRawOrDie$1('Reposition', schema$w, rawSpec);\n return {\n [repositionPopups()]: {\n onReceive: sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(() => detail.doReposition(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n };\n };\n\n const onLoad$5 = (component, repConfig, repState) => {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n const onUnload$2 = (component, repConfig, repState) => {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n const setValue$3 = (component, repConfig, repState, data) => {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n const getValue$3 = (component, repConfig, repState) => repConfig.store.manager.getValue(component, repConfig, repState);\n const getState$1 = (component, repConfig, repState) => repState;\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad$5,\n onUnload: onUnload$2,\n setValue: setValue$3,\n getValue: getValue$3,\n getState: getState$1\n });\n\n const events$f = (repConfig, repState) => {\n const es = repConfig.resetOnDom ? [\n runOnAttached((comp, _se) => {\n onLoad$5(comp, repConfig, repState);\n }),\n runOnDetached((comp, _se) => {\n onUnload$2(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad$5)];\n return derive$2(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n const memory$1 = () => {\n const data = Cell(null);\n const readState = () => ({\n mode: 'memory',\n value: data.get()\n });\n const isNotSet = () => data.get() === null;\n const clear = () => {\n data.set(null);\n };\n return nu$8({\n set: data.set,\n get: data.get,\n isNotSet,\n clear,\n readState\n });\n };\n const manual = () => {\n const readState = noop;\n return nu$8({ readState });\n };\n const dataset = () => {\n const dataByValue = Cell({});\n const dataByText = Cell({});\n const readState = () => ({\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n });\n const clear = () => {\n dataByValue.set({});\n dataByText.set({});\n };\n const lookup = itemString => get$g(dataByValue.get(), itemString).orThunk(() => get$g(dataByText.get(), itemString));\n const update = items => {\n const currentDataByValue = dataByValue.get();\n const currentDataByText = dataByText.get();\n const newDataByValue = {};\n const newDataByText = {};\n each$1(items, item => {\n newDataByValue[item.value] = item;\n get$g(item, 'meta').each(meta => {\n get$g(meta, 'text').each(text => {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set({\n ...currentDataByValue,\n ...newDataByValue\n });\n dataByText.set({\n ...currentDataByText,\n ...newDataByText\n });\n };\n return nu$8({\n readState,\n lookup,\n update,\n clear\n });\n };\n const init$e = spec => spec.store.manager.state(spec);\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory$1,\n dataset: dataset,\n manual: manual,\n init: init$e\n });\n\n const setValue$2 = (component, repConfig, repState, data) => {\n const store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const getValue$2 = (component, repConfig, repState) => {\n const store = repConfig.store;\n const key = store.getDataKey(component);\n return repState.lookup(key).getOrThunk(() => store.getFallbackEntry(key));\n };\n const onLoad$4 = (component, repConfig, repState) => {\n const store = repConfig.store;\n store.initialValue.each(data => {\n setValue$2(component, repConfig, repState, data);\n });\n };\n const onUnload$1 = (component, repConfig, repState) => {\n repState.clear();\n };\n var DatasetStore = [\n option$3('initialValue'),\n required$1('getFallbackEntry'),\n required$1('getDataKey'),\n required$1('setValue'),\n output$1('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$4,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n const getValue$1 = (component, repConfig, _repState) => repConfig.store.getValue(component);\n const setValue$1 = (component, repConfig, _repState, data) => {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const onLoad$3 = (component, repConfig, _repState) => {\n repConfig.store.initialValue.each(data => {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n required$1('getValue'),\n defaulted('setValue', noop),\n option$3('initialValue'),\n output$1('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$3,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n const setValue = (component, repConfig, repState, data) => {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n const getValue = (component, repConfig, repState) => repState.get();\n const onLoad$2 = (component, repConfig, repState) => {\n repConfig.store.initialValue.each(initVal => {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n const onUnload = (component, repConfig, repState) => {\n repState.clear();\n };\n var MemoryStore = [\n option$3('initialValue'),\n output$1('manager', {\n setValue,\n getValue,\n onLoad: onLoad$2,\n onUnload,\n state: memory$1\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted('resetOnDom', false)\n ];\n\n const Representing = create$3({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: (component, source) => {\n const value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n const field = (name, forbidden) => defaultedObjOf(name, {}, map$2(forbidden, f => forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name)).concat([customField('dump', identity)]));\n const get$3 = data => data.dump;\n const augment = (data, original) => ({\n ...derive$1(original),\n ...data.dump\n });\n const SketchBehaviours = {\n field,\n augment,\n get: get$3\n };\n\n const _placeholder = 'placeholder';\n const adt$3 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n const isSubstituted = spec => has$2(spec, 'uiType');\n const subPlaceholder = (owner, detail, compSpec, placeholders) => {\n if (owner.exists(o => o !== compSpec.owner)) {\n return adt$3.single(true, constant$1(compSpec));\n }\n return get$g(placeholders, compSpec.name).fold(() => {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + JSON.stringify(compSpec, null, 2));\n }, newSpec => newSpec.replace());\n };\n const scan = (owner, detail, compSpec, placeholders) => {\n if (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$3.single(false, constant$1(compSpec));\n }\n };\n const substitute = (owner, detail, compSpec, placeholders) => {\n const base = scan(owner, detail, compSpec, placeholders);\n return base.fold((req, valueThunk) => {\n const value = isSubstituted(compSpec) ? valueThunk(detail, compSpec.config, compSpec.validated) : valueThunk(detail);\n const childSpecs = get$g(value, 'components').getOr([]);\n const substituted = bind$3(childSpecs, c => substitute(owner, detail, c, placeholders));\n return [{\n ...value,\n components: substituted\n }];\n }, (req, valuesThunk) => {\n if (isSubstituted(compSpec)) {\n const values = valuesThunk(detail, compSpec.config, compSpec.validated);\n const preprocessor = compSpec.validated.preprocess.getOr(identity);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n const substituteAll = (owner, detail, components, placeholders) => bind$3(components, c => substitute(owner, detail, c, placeholders));\n const oneReplace = (label, replacements) => {\n let called = false;\n const used = () => called;\n const replace = () => {\n if (called) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n const required = () => replacements.fold((req, _) => req, (req, _) => req);\n return {\n name: constant$1(label),\n required,\n used,\n replace\n };\n };\n const substitutePlaces = (owner, detail, components, placeholders) => {\n const ps = map$1(placeholders, (ph, name) => oneReplace(name, ph));\n const outcome = substituteAll(owner, detail, components, ps);\n each(ps, p => {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + JSON.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n const single$2 = adt$3.single;\n const multiple = adt$3.multiple;\n const placeholder = constant$1(_placeholder);\n\n const adt$2 = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n const fFactory = defaulted('factory', { sketch: identity });\n const fSchema = defaulted('schema', []);\n const fName = required$1('name');\n const fPname = field$1('pname', 'pname', defaultedThunk(typeSpec => '<alloy.' + generate$6(typeSpec.name) + '>'), anyValue());\n const fGroupSchema = customField('schema', () => [option$3('preprocess')]);\n const fDefaults = defaulted('defaults', constant$1({}));\n const fOverrides = defaulted('overrides', constant$1({}));\n const requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n const optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n required$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n const asNamedPart = part => {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.some);\n };\n const name$2 = part => {\n const get = data => data.name;\n return part.fold(get, get, get, get);\n };\n const asCommon = part => {\n return part.fold(identity, identity, identity, identity);\n };\n const convert = (adtConstructor, partSchema) => spec => {\n const data = asRawOrDie$1('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n const required = convert(adt$2.required, requiredSpec);\n const external = convert(adt$2.external, externalSpec);\n const optional = convert(adt$2.optional, optionalSpec);\n const group = convert(adt$2.group, groupSpec);\n const original = constant$1('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n __proto__: null,\n required: required,\n external: external,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$2,\n asCommon: asCommon,\n original: original\n });\n\n const combine = (detail, data, partSpec, partValidated) => deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n const subs = (owner, detail, parts) => {\n const internals = {};\n const externals = {};\n each$1(parts, part => {\n part.fold(data => {\n internals[data.pname] = single$2(true, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n const partSpec = detail.parts[data.name];\n externals[data.name] = constant$1(data.factory.sketch(combine(detail, data, partSpec[original()]), partSpec));\n }, data => {\n internals[data.pname] = single$2(false, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n internals[data.pname] = multiple(true, (detail, _partSpec, _partValidated) => {\n const units = detail[data.name];\n return map$2(units, u => data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u))));\n });\n });\n });\n return {\n internals: constant$1(internals),\n externals: constant$1(externals)\n };\n };\n\n const generate$3 = (owner, parts) => {\n const r = {};\n each$1(parts, part => {\n asNamedPart(part).each(np => {\n const g = doGenerateOne(owner, np.pname);\n r[np.name] = config => {\n const validated = asRawOrDie$1('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return {\n ...g,\n config,\n validated\n };\n };\n });\n });\n return r;\n };\n const doGenerateOne = (owner, pname) => ({\n uiType: placeholder(),\n owner,\n name: pname\n });\n const generateOne$1 = (owner, pname, config) => ({\n uiType: placeholder(),\n owner,\n name: pname,\n config,\n validated: {}\n });\n const schemas = parts => bind$3(parts, part => part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(data => requiredObjOf(data.name, data.schema.concat([snapshot(original())]))).toArray());\n const names = parts => map$2(parts, name$2);\n const substitutes = (owner, detail, parts) => subs(owner, detail, parts);\n const components$1 = (owner, detail, internals) => substitutePlaces(Optional.some(owner), detail, detail.components, internals);\n const getPart = (component, detail, partKey) => {\n const uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOptional();\n };\n const getPartOrDie = (component, detail, partKey) => getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n const getParts = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]));\n });\n return r;\n };\n const getAllParts = (component, detail) => {\n const system = component.getSystem();\n return map$1(detail.partUids, (pUid, _k) => constant$1(system.getByUid(pUid)));\n };\n const getAllPartNames = detail => keys(detail.partUids);\n const getPartsOrDie = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n const defaultUids = (baseUid, partTypes) => {\n const partNames = names(partTypes);\n return wrapAll(map$2(partNames, pn => ({\n key: pn,\n value: baseUid + '-' + pn\n })));\n };\n const defaultUidsSchema = partTypes => field$1('partUids', 'partUids', mergeWithThunk(spec => defaultUids(spec.uid, partTypes)), anyValue());\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$3,\n generateOne: generateOne$1,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components$1,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n const base = (partSchemas, partUidsSchemas) => {\n const ps = partSchemas.length > 0 ? [requiredObjOf('parts', partSchemas)] : [];\n return ps.concat([\n required$1('uid'),\n defaulted('dom', {}),\n defaulted('components', []),\n snapshot('originalSpec'),\n defaulted('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n const asRawOrDie = (label, schema, spec, partSchemas, partUidsSchemas) => {\n const baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie$1(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n const single$1 = (owner, schema, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const detail = asRawOrDie(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n const composite$1 = (owner, schema, partTypes, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const partSchemas = schemas(partTypes);\n const partUidsSchema = defaultUidsSchema(partTypes);\n const detail = asRawOrDie(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n const subs = substitutes(owner, detail, partTypes);\n const components = components$1(owner, detail, subs.internals());\n return factory(detail, components, specWithUid, subs.externals());\n };\n const hasUid = spec => has$2(spec, 'uid');\n const supplyUid = spec => {\n return hasUid(spec) ? spec : {\n ...spec,\n uid: generate$5('uid')\n };\n };\n\n const isSketchSpec = spec => {\n return spec.uid !== undefined;\n };\n const singleSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const compositeSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n required$1('partFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const single = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n const sketch = spec => single$1(config.name, config.configFields, config.factory, spec);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n configFields: config.configFields,\n sketch,\n ...apis,\n ...extraApis\n };\n };\n const composite = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n const sketch = spec => composite$1(config.name, config.configFields, config.partFields, config.factory, spec);\n const parts = generate$3(config.name, config.partFields);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n partFields: config.partFields,\n configFields: config.configFields,\n sketch,\n parts,\n ...apis,\n ...extraApis\n };\n };\n\n const inside = target => isTag('input')(target) && get$f(target, 'type') !== 'radio' || isTag('textarea')(target);\n\n const getCurrent = (component, composeConfig, _composeState) => composeConfig.find(component);\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCurrent: getCurrent\n });\n\n const ComposeSchema = [required$1('find')];\n\n const Composing = create$3({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n const nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n const onLoad$1 = (component, disableConfig, disableState) => {\n const f = disableConfig.disabled() ? disable : enable;\n f(component, disableConfig);\n };\n const hasNative = (component, config) => config.useNative === true && contains$2(nativeDisabled, name$3(component.element));\n const nativeIsDisabled = component => has$1(component.element, 'disabled');\n const nativeDisable = component => {\n set$9(component.element, 'disabled', 'disabled');\n };\n const nativeEnable = component => {\n remove$7(component.element, 'disabled');\n };\n const ariaIsDisabled = component => get$f(component.element, 'aria-disabled') === 'true';\n const ariaDisable = component => {\n set$9(component.element, 'aria-disabled', 'true');\n };\n const ariaEnable = component => {\n set$9(component.element, 'aria-disabled', 'false');\n };\n const disable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n add$2(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n const enable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n remove$2(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n const isDisabled = (component, disableConfig) => hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n const set$4 = (component, disableConfig, disableState, disabled) => {\n const f = disabled ? disable : enable;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable,\n disable: disable,\n isDisabled: isDisabled,\n onLoad: onLoad$1,\n set: set$4\n });\n\n const exhibit$5 = (base, disableConfig) => nu$7({ classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : [] });\n const events$e = (disableConfig, disableState) => derive$2([\n abort(execute$5(), (component, _simulatedEvent) => isDisabled(component, disableConfig)),\n loadEvent(disableConfig, disableState, onLoad$1)\n ]);\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$5,\n events: events$e\n });\n\n var DisableSchema = [\n defaultedFunction('disabled', never),\n defaulted('useNative', true),\n option$3('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n const Disabling = create$3({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n const dehighlightAllExcept = (component, hConfig, hState, skip) => {\n const highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each$1(highlighted, h => {\n if (!exists(skip, skipComp => skipComp.element === h)) {\n remove$2(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(target => {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n });\n }\n });\n };\n const dehighlightAll = (component, hConfig, hState) => dehighlightAllExcept(component, hConfig, hState, []);\n const dehighlight = (component, hConfig, hState, target) => {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$2(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n }\n };\n const highlight = (component, hConfig, hState, target) => {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element, hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight$1());\n }\n };\n const highlightFirst = (component, hConfig, hState) => {\n getFirst(component, hConfig).each(firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightLast = (component, hConfig, hState) => {\n getLast(component, hConfig).each(lastComp => {\n highlight(component, hConfig, hState, lastComp);\n });\n };\n const highlightAt = (component, hConfig, hState, index) => {\n getByIndex(component, hConfig, hState, index).fold(err => {\n throw err;\n }, firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightBy = (component, hConfig, hState, predicate) => {\n const candidates = getCandidates(component, hConfig);\n const targetComp = find$5(candidates, predicate);\n targetComp.each(c => {\n highlight(component, hConfig, hState, c);\n });\n };\n const isHighlighted = (component, hConfig, hState, queryTarget) => has(queryTarget.element, hConfig.highlightClass);\n const getHighlighted = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.highlightClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getByIndex = (component, hConfig, hState, index) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return Optional.from(items[index]).fold(() => Result.error(new Error('No element found with index ' + index)), component.getSystem().getByDom);\n };\n const getFirst = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.itemClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getLast = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const last = items.length > 0 ? Optional.some(items[items.length - 1]) : Optional.none();\n return last.bind(c => component.getSystem().getByDom(c).toOptional());\n };\n const getDelta$2 = (component, hConfig, hState, delta) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const current = findIndex$1(items, item => has(item, hConfig.highlightClass));\n return current.bind(selected => {\n const dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOptional();\n });\n };\n const getPrevious = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, -1);\n const getNext = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, +1);\n const getCandidates = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map$2(items, i => component.getSystem().getByDom(i).toOptional()));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight,\n highlight: highlight,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n\n var HighlightSchema = [\n required$1('highlightClass'),\n required$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n const Highlighting = create$3({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n const BACKSPACE = [8];\n const TAB = [9];\n const ENTER = [13];\n const ESCAPE = [27];\n const SPACE = [32];\n const LEFT = [37];\n const UP = [38];\n const RIGHT = [39];\n const DOWN = [40];\n\n const cyclePrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n const after = reverse(values.slice(index + 1));\n return find$5(before.concat(after), predicate);\n };\n const tryPrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n return find$5(before, predicate);\n };\n const cycleNext = (values, index, predicate) => {\n const before = values.slice(0, index);\n const after = values.slice(index + 1);\n return find$5(after.concat(before), predicate);\n };\n const tryNext = (values, index, predicate) => {\n const after = values.slice(index + 1);\n return find$5(after, predicate);\n };\n\n const inSet = keys => event => {\n const raw = event.raw;\n return contains$2(keys, raw.which);\n };\n const and = preds => event => forall(preds, pred => pred(event));\n const isShift = event => {\n const raw = event.raw;\n return raw.shiftKey === true;\n };\n const isControl = event => {\n const raw = event.raw;\n return raw.ctrlKey === true;\n };\n const isNotShift = not(isShift);\n\n const rule = (matches, action) => ({\n matches,\n classification: action\n });\n const choose = (transitions, event) => {\n const transition = find$5(transitions, t => t.matches(event));\n return transition.map(t => t.classification);\n };\n\n const reportFocusShifting = (component, prevFocus, newFocus) => {\n const noChange = prevFocus.exists(p => newFocus.exists(n => eq(n, p)));\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus,\n newFocus\n });\n }\n };\n const dom$2 = () => {\n const get = component => search(component.element);\n const set = (component, focusee) => {\n const prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element);\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n const highlights = () => {\n const get = component => Highlighting.getHighlighted(component).map(item => item.element);\n const set = (component, element) => {\n const prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, item => {\n Highlighting.highlight(component, item);\n });\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n const typical = (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) => {\n const schema = () => infoSchema.concat([\n defaulted('focusManager', dom$2()),\n defaultedOf('focusInside', 'onFocus', valueOf(val => contains$2([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside'))),\n output$1('handler', me),\n output$1('state', stateInit),\n output$1('sendFocusIn', optFocusIn)\n ]);\n const processKey = (component, simulatedEvent, getRules, keyingConfig, keyingState) => {\n const rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose(rules, simulatedEvent.event).bind(rule => rule(component, simulatedEvent, keyingConfig, keyingState));\n };\n const toEvents = (keyingConfig, keyingState) => {\n const onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Optional.none() : optFocusIn(keyingConfig).map(focusIn => run$1(focus$4(), (component, simulatedEvent) => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n }));\n const tryGoInsideComponent = (component, simulatedEvent) => {\n const isEnterOrSpace = inSet(SPACE.concat(ENTER))(simulatedEvent.event);\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(focusIn => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n const keyboardEvents = [\n run$1(keydown(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(() => {\n tryGoInsideComponent(component, simulatedEvent);\n }, _ => {\n simulatedEvent.stop();\n });\n }),\n run$1(keyup(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(_ => {\n simulatedEvent.stop();\n });\n })\n ];\n return derive$2(onFocusHandler.toArray().concat(keyboardEvents));\n };\n const me = {\n schema,\n processKey,\n toEvents\n };\n return me;\n };\n\n const create$1 = cyclicField => {\n const schema = [\n option$3('onEscape'),\n option$3('onEnter'),\n defaulted('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted('firstTabstop', 0),\n defaulted('useTabstopAt', always),\n option$3('visibilitySelector')\n ].concat([cyclicField]);\n const isVisible = (tabbingConfig, element) => {\n const target = tabbingConfig.visibilitySelector.bind(sel => closest$1(element, sel)).getOr(element);\n return get$d(target) > 0;\n };\n const findInitial = (component, tabbingConfig) => {\n const tabstops = descendants(component.element, tabbingConfig.selector);\n const visibles = filter$2(tabstops, elem => isVisible(tabbingConfig, elem));\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n const findCurrent = (component, tabbingConfig) => tabbingConfig.focusManager.get(component).bind(elem => closest$1(elem, tabbingConfig.selector));\n const isTabstop = (tabbingConfig, element) => isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n const focusIn = (component, tabbingConfig, _tabbingState) => {\n findInitial(component, tabbingConfig).each(target => {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n const goFromTabstop = (component, tabstops, stopIndex, tabbingConfig, cycle) => cycle(tabstops, stopIndex, elem => isTabstop(tabbingConfig, elem)).fold(() => tabbingConfig.cyclic ? Optional.some(true) : Optional.none(), target => {\n tabbingConfig.focusManager.set(component, target);\n return Optional.some(true);\n });\n const go = (component, _simulatedEvent, tabbingConfig, cycle) => {\n const tabstops = descendants(component.element, tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(tabstop => {\n const optStopIndex = findIndex$1(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(stopIndex => goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle));\n });\n };\n const goBackwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const goForwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const execute = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEnter.bind(f => f(component, simulatedEvent));\n const exit = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEscape.bind(f => f(component, simulatedEvent));\n const getKeydownRules = constant$1([\n rule(and([\n isShift,\n inSet(TAB)\n ]), goBackwards),\n rule(inSet(TAB), goForwards),\n rule(inSet(ESCAPE), exit),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), execute)\n ]);\n const getKeyupRules = constant$1([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, () => Optional.some(focusIn));\n };\n\n var AcyclicType = create$1(customField('cyclic', never));\n\n var CyclicType = create$1(customField('cyclic', always));\n\n const doDefaultExecute = (component, _simulatedEvent, focused) => {\n dispatch(component, focused, execute$5());\n return Optional.some(true);\n };\n const defaultExecute = (component, simulatedEvent, focused) => {\n const isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n const stopEventForFirefox = (_component, _simulatedEvent) => Optional.some(true);\n\n const schema$v = [\n defaulted('execute', defaultExecute),\n defaulted('useSpace', false),\n defaulted('useEnter', true),\n defaulted('useControlEnter', false),\n defaulted('useDown', false)\n ];\n const execute$4 = (component, simulatedEvent, executeConfig) => executeConfig.execute(component, simulatedEvent, component.element);\n const getKeydownRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => {\n const spaceExec = executeConfig.useSpace && !inside(component.element) ? SPACE : [];\n const enterExec = executeConfig.useEnter ? ENTER : [];\n const downExec = executeConfig.useDown ? DOWN : [];\n const execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$4)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER)\n ]), execute$4)] : []);\n };\n const getKeyupRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n var ExecutionType = typical(schema$v, NoState.init, getKeydownRules$5, getKeyupRules$5, () => Optional.none());\n\n const flatgrid$1 = () => {\n const dimensions = value$2();\n const setGridSize = (numRows, numColumns) => {\n dimensions.set({\n numRows,\n numColumns\n });\n };\n const getNumRows = () => dimensions.get().map(d => d.numRows);\n const getNumColumns = () => dimensions.get().map(d => d.numColumns);\n return nu$8({\n readState: () => dimensions.get().map(d => ({\n numRows: String(d.numRows),\n numColumns: String(d.numColumns)\n })).getOr({\n numRows: '?',\n numColumns: '?'\n }),\n setGridSize,\n getNumRows,\n getNumColumns\n });\n };\n const init$d = spec => spec.state(spec);\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid$1,\n init: init$d\n });\n\n const useH = movement => (component, simulatedEvent, config, state) => {\n const move = movement(component.element);\n return use(move, component, simulatedEvent, config, state);\n };\n const west$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n const east$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n const useV = move => (component, simulatedEvent, config, state) => use(move, component, simulatedEvent, config, state);\n const use = (move, component, simulatedEvent, config, state) => {\n const outcome = config.focusManager.get(component).bind(focused => move(component.element, focused, config, state));\n return outcome.map(newFocus => {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n const north$1 = useV;\n const south$1 = useV;\n const move$1 = useV;\n\n const isHidden$1 = dom => dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n const isVisible = element => !isHidden$1(element.dom);\n\n const locate = (candidates, predicate) => findIndex$1(candidates, predicate).map(index => ({\n index,\n candidates\n }));\n\n const locateVisible = (container, current, selector) => {\n const predicate = x => eq(x, current);\n const candidates = descendants(container, selector);\n const visible = filter$2(candidates, isVisible);\n return locate(visible, predicate);\n };\n const findIndex = (elements, target) => findIndex$1(elements, elem => eq(target, elem));\n\n const withGrid = (values, index, numCols, f) => {\n const oldRow = Math.floor(index / numCols);\n const oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(address => {\n const newIndex = address.row * numCols + address.column;\n return newIndex >= 0 && newIndex < values.length ? Optional.some(values[newIndex]) : Optional.none();\n });\n };\n const cycleHorizontal$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const onLastRow = oldRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n const newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Optional.some({\n row: oldRow,\n column: newColumn\n });\n });\n const cycleVertical$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n const onLastRow = newRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n const newCol = clamp(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n const cycleRight$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, +1);\n const cycleLeft$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, -1);\n const cycleUp$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, -1);\n const cycleDown$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, +1);\n\n const schema$u = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('captureTab', false),\n initSize()\n ];\n const focusIn$3 = (component, gridConfig, _gridState) => {\n descendant(component.element, gridConfig.selector).each(first => {\n gridConfig.focusManager.set(component, first);\n });\n };\n const findCurrent$1 = (component, gridConfig) => gridConfig.focusManager.get(component).bind(elem => closest$1(elem, gridConfig.selector));\n const execute$3 = (component, simulatedEvent, gridConfig, _gridState) => findCurrent$1(component, gridConfig).bind(focused => gridConfig.execute(component, simulatedEvent, focused));\n const doMove$2 = cycle => (element, focused, gridConfig, gridState) => locateVisible(element, focused, gridConfig.selector).bind(identified => cycle(identified.candidates, identified.index, gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns)));\n const handleTab = (_component, _simulatedEvent, gridConfig) => gridConfig.captureTab ? Optional.some(true) : Optional.none();\n const doEscape$1 = (component, simulatedEvent, gridConfig) => gridConfig.onEscape(component, simulatedEvent);\n const moveLeft$3 = doMove$2(cycleLeft$1);\n const moveRight$3 = doMove$2(cycleRight$1);\n const moveNorth$1 = doMove$2(cycleUp$1);\n const moveSouth$1 = doMove$2(cycleDown$1);\n const getKeydownRules$4 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT), east$1(moveLeft$3, moveRight$3)),\n rule(inSet(UP), north$1(moveNorth$1)),\n rule(inSet(DOWN), south$1(moveSouth$1)),\n rule(and([\n isShift,\n inSet(TAB)\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), handleTab),\n rule(inSet(ESCAPE), doEscape$1),\n rule(inSet(SPACE.concat(ENTER)), execute$3)\n ]);\n const getKeyupRules$4 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlatgridType = typical(schema$u, flatgrid$1, getKeydownRules$4, getKeyupRules$4, () => Optional.some(focusIn$3));\n\n const horizontal = (container, selector, current, delta) => {\n const isDisabledButton = candidate => name$3(candidate) === 'button' && get$f(candidate, 'disabled') === 'disabled';\n const tryCycle = (initial, index, candidates) => {\n const newIndex = cycleBy(index, delta, 0, candidates.length - 1);\n if (newIndex === initial) {\n return Optional.none();\n } else {\n return isDisabledButton(candidates[newIndex]) ? tryCycle(initial, newIndex, candidates) : Optional.from(candidates[newIndex]);\n }\n };\n return locateVisible(container, current, selector).bind(identified => {\n const index = identified.index;\n const candidates = identified.candidates;\n return tryCycle(index, index, candidates);\n });\n };\n\n const schema$t = [\n required$1('selector'),\n defaulted('getInitial', Optional.none),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('executeOnMove', false),\n defaulted('allowVertical', true)\n ];\n const findCurrent = (component, flowConfig) => flowConfig.focusManager.get(component).bind(elem => closest$1(elem, flowConfig.selector));\n const execute$2 = (component, simulatedEvent, flowConfig) => findCurrent(component, flowConfig).bind(focused => flowConfig.execute(component, simulatedEvent, focused));\n const focusIn$2 = (component, flowConfig, _state) => {\n flowConfig.getInitial(component).orThunk(() => descendant(component.element, flowConfig.selector)).each(first => {\n flowConfig.focusManager.set(component, first);\n });\n };\n const moveLeft$2 = (element, focused, info) => horizontal(element, info.selector, focused, -1);\n const moveRight$2 = (element, focused, info) => horizontal(element, info.selector, focused, +1);\n const doMove$1 = movement => (component, simulatedEvent, flowConfig, flowState) => movement(component, simulatedEvent, flowConfig, flowState).bind(() => flowConfig.executeOnMove ? execute$2(component, simulatedEvent, flowConfig) : Optional.some(true));\n const doEscape = (component, simulatedEvent, flowConfig) => flowConfig.onEscape(component, simulatedEvent);\n const getKeydownRules$3 = (_component, _se, flowConfig, _flowState) => {\n const westMovers = LEFT.concat(flowConfig.allowVertical ? UP : []);\n const eastMovers = RIGHT.concat(flowConfig.allowVertical ? DOWN : []);\n return [\n rule(inSet(westMovers), doMove$1(west$1(moveLeft$2, moveRight$2))),\n rule(inSet(eastMovers), doMove$1(east$1(moveLeft$2, moveRight$2))),\n rule(inSet(ENTER), execute$2),\n rule(inSet(SPACE), execute$2),\n rule(inSet(ESCAPE), doEscape)\n ];\n };\n const getKeyupRules$3 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlowType = typical(schema$t, NoState.init, getKeydownRules$3, getKeyupRules$3, () => Optional.some(focusIn$2));\n\n const toCell = (matrix, rowIndex, columnIndex) => Optional.from(matrix[rowIndex]).bind(row => Optional.from(row[columnIndex]).map(cell => ({\n rowIndex,\n columnIndex,\n cell\n })));\n const cycleHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const cycleVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const moveHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = clamp(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const moveVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = clamp(startRow + deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const cycleRight = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, +1);\n const cycleLeft = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, -1);\n const cycleUp = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, -1);\n const cycleDown = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, +1);\n const moveLeft$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, -1);\n const moveRight$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, +1);\n const moveUp$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, -1);\n const moveDown$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, +1);\n\n const schema$s = [\n requiredObjOf('selectors', [\n required$1('row'),\n required$1('cell')\n ]),\n defaulted('cycles', true),\n defaulted('previousSelector', Optional.none),\n defaulted('execute', defaultExecute)\n ];\n const focusIn$1 = (component, matrixConfig, _state) => {\n const focused = matrixConfig.previousSelector(component).orThunk(() => {\n const selectors = matrixConfig.selectors;\n return descendant(component.element, selectors.cell);\n });\n focused.each(cell => {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n const execute$1 = (component, simulatedEvent, matrixConfig) => search(component.element).bind(focused => matrixConfig.execute(component, simulatedEvent, focused));\n const toMatrix = (rows, matrixConfig) => map$2(rows, row => descendants(row, matrixConfig.selectors.cell));\n const doMove = (ifCycle, ifMove) => (element, focused, matrixConfig) => {\n const move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$1(focused, matrixConfig.selectors.row).bind(inRow => {\n const cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex(cellsInRow, focused).bind(colIndex => {\n const allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex(allRows, inRow).bind(rowIndex => {\n const matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(next => next.cell);\n });\n });\n });\n };\n const moveLeft = doMove(cycleLeft, moveLeft$1);\n const moveRight = doMove(cycleRight, moveRight$1);\n const moveNorth = doMove(cycleUp, moveUp$1);\n const moveSouth = doMove(cycleDown, moveDown$1);\n const getKeydownRules$2 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft, moveRight)),\n rule(inSet(RIGHT), east$1(moveLeft, moveRight)),\n rule(inSet(UP), north$1(moveNorth)),\n rule(inSet(DOWN), south$1(moveSouth)),\n rule(inSet(SPACE.concat(ENTER)), execute$1)\n ]);\n const getKeyupRules$2 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$s, NoState.init, getKeydownRules$2, getKeyupRules$2, () => Optional.some(focusIn$1));\n\n const schema$r = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n defaulted('moveOnTab', false)\n ];\n const execute = (component, simulatedEvent, menuConfig) => menuConfig.focusManager.get(component).bind(focused => menuConfig.execute(component, simulatedEvent, focused));\n const focusIn = (component, menuConfig, _state) => {\n descendant(component.element, menuConfig.selector).each(first => {\n menuConfig.focusManager.set(component, first);\n });\n };\n const moveUp = (element, focused, info) => horizontal(element, info.selector, focused, -1);\n const moveDown = (element, focused, info) => horizontal(element, info.selector, focused, +1);\n const fireShiftTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveUp)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const fireTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveDown)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const getKeydownRules$1 = constant$1([\n rule(inSet(UP), move$1(moveUp)),\n rule(inSet(DOWN), move$1(moveDown)),\n rule(and([\n isShift,\n inSet(TAB)\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), fireTab),\n rule(inSet(ENTER), execute),\n rule(inSet(SPACE), execute)\n ]);\n const getKeyupRules$1 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$r, NoState.init, getKeydownRules$1, getKeyupRules$1, () => Optional.some(focusIn));\n\n const schema$q = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted('stopSpaceKeyup', false),\n option$3('focusIn')\n ];\n const getKeydownRules = (component, simulatedEvent, specialInfo) => [\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), specialInfo.onEnter),\n rule(and([\n isShift,\n inSet(ENTER)\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift,\n inSet(TAB)\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), specialInfo.onTab),\n rule(inSet(UP), specialInfo.onUp),\n rule(inSet(DOWN), specialInfo.onDown),\n rule(inSet(LEFT), specialInfo.onLeft),\n rule(inSet(RIGHT), specialInfo.onRight),\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(inSet(ESCAPE), specialInfo.onEscape)\n ];\n const getKeyupRules = (component, simulatedEvent, specialInfo) => specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n var SpecialType = typical(schema$q, NoState.init, getKeydownRules, getKeyupRules, specialInfo => specialInfo.focusIn);\n\n const acyclic = AcyclicType.schema();\n const cyclic = CyclicType.schema();\n const flow = FlowType.schema();\n const flatgrid = FlatgridType.schema();\n const matrix = MatrixType.schema();\n const execution = ExecutionType.schema();\n const menu = MenuType.schema();\n const special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n const isFlatgridState = keyState => hasNonNullableKey(keyState, 'setGridSize');\n const Keying = createModes({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: (keyingConfig, keyingState) => {\n const handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: (component, keyConfig, keyState) => {\n keyConfig.sendFocusIn(keyConfig).fold(() => {\n component.getSystem().triggerFocus(component.element, component.element);\n }, sendFocusIn => {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: (component, keyConfig, keyState, numRows, numColumns) => {\n if (!isFlatgridState(keyState)) {\n console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n const withoutReuse = (parent, data) => {\n preserve$1(() => {\n replaceChildren(parent, data, () => map$2(data, parent.getSystem().build));\n }, parent.element);\n };\n const withReuse = (parent, data) => {\n preserve$1(() => {\n virtualReplaceChildren(parent, data, () => {\n return patchSpecChildren(parent.element, data, parent.getSystem().buildOrPatch);\n });\n }, parent.element);\n };\n\n const virtualReplace = (component, replacee, replaceeIndex, childSpec) => {\n virtualDetach(replacee);\n const child = patchSpecChild(component.element, replaceeIndex, childSpec, component.getSystem().buildOrPatch);\n virtualAttach(component, child);\n component.syncComponents();\n };\n const insert = (component, insertion, childSpec) => {\n const child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n const replace = (component, replacee, replaceeIndex, childSpec) => {\n detach(replacee);\n insert(component, (p, c) => appendAt(p, c, replaceeIndex), childSpec);\n };\n const set$3 = (component, replaceConfig, replaceState, data) => {\n const replacer = replaceConfig.reuseDom ? withReuse : withoutReuse;\n return replacer(component, data);\n };\n const append = (component, replaceConfig, replaceState, appendee) => {\n insert(component, append$2, appendee);\n };\n const prepend = (component, replaceConfig, replaceState, prependee) => {\n insert(component, prepend$1, prependee);\n };\n const remove = (component, replaceConfig, replaceState, removee) => {\n const children = contents(component);\n const foundChild = find$5(children, child => eq(removee.element, child.element));\n foundChild.each(detach);\n };\n const contents = (component, _replaceConfig) => component.components();\n const replaceAt = (component, replaceConfig, replaceState, replaceeIndex, replacer) => {\n const children = contents(component);\n return Optional.from(children[replaceeIndex]).map(replacee => {\n replacer.fold(() => detach(replacee), r => {\n const replacer = replaceConfig.reuseDom ? virtualReplace : replace;\n replacer(component, replacee, replaceeIndex, r);\n });\n return replacee;\n });\n };\n const replaceBy = (component, replaceConfig, replaceState, replaceePred, replacer) => {\n const children = contents(component);\n return findIndex$1(children, replaceePred).bind(replaceeIndex => replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer));\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n remove: remove,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$3,\n contents: contents\n });\n\n const Replacing = create$3({\n fields: [defaultedBoolean('reuseDom', true)],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n const events$d = (name, eventHandlers) => {\n const events = derive$2(eventHandlers);\n return create$3({\n fields: [required$1('enabled')],\n name,\n active: { events: constant$1(events) }\n });\n };\n const config = (name, eventHandlers) => {\n const me = events$d(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me,\n configAsRaw: constant$1({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n const focus$2 = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n focus$3(component.element);\n focusConfig.onFocus(component);\n }\n };\n const blur = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n blur$1(component.element);\n }\n };\n const isFocused = component => hasFocus(component.element);\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur,\n isFocused: isFocused\n });\n\n const exhibit$4 = (base, focusConfig) => {\n const mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$7(mod);\n };\n const events$c = focusConfig => derive$2([run$1(focus$4(), (component, simulatedEvent) => {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run$1(mousedown(), (_, simulatedEvent) => {\n simulatedEvent.event.prevent();\n })] : []));\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4,\n events: events$c\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted('stopMousedown', false),\n defaulted('ignore', false)\n ];\n\n const Focusing = create$3({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n const SetupBehaviourCellState = initialState => {\n const init = () => {\n const cell = Cell(initialState);\n const get = () => cell.get();\n const set = newState => cell.set(newState);\n const clear = () => cell.set(initialState);\n const readState = () => cell.get();\n return {\n get,\n set,\n clear,\n readState\n };\n };\n return { init };\n };\n\n const updateAriaState = (component, toggleConfig, toggleState) => {\n const ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n const updateClass = (component, toggleConfig, toggleState) => {\n toggleConfig.toggleClass.each(toggleClass => {\n if (toggleState.get()) {\n add$2(component.element, toggleClass);\n } else {\n remove$2(component.element, toggleClass);\n }\n });\n };\n const toggle$2 = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, !toggleState.get());\n };\n const on = (component, toggleConfig, toggleState) => {\n toggleState.set(true);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n const off = (component, toggleConfig, toggleState) => {\n toggleState.set(false);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n const set$2 = (component, toggleConfig, toggleState, state) => {\n const action = state ? on : off;\n action(component, toggleConfig, toggleState);\n };\n const isOn = (component, toggleConfig, toggleState) => toggleState.get();\n const onLoad = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$2\n });\n\n const exhibit$3 = () => nu$7({});\n const events$b = (toggleConfig, toggleState) => {\n const execute = executeEvent(toggleConfig, toggleState, toggle$2);\n const load = loadEvent(toggleConfig, toggleState, onLoad);\n return derive$2(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$b\n });\n\n const updatePressed = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n const updateSelected = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-selected', status);\n };\n const updateChecked = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-checked', status);\n };\n const updateExpanded = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted('selected', false),\n option$3('toggleClass'),\n defaulted('toggleOnExecute', true),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted('syncWithExpanded', false),\n output$1('update', updatePressed)\n ],\n checked: [output$1('update', updateChecked)],\n expanded: [output$1('update', updateExpanded)],\n selected: [output$1('update', updateSelected)],\n none: [output$1('update', noop)]\n }))\n ];\n\n const Toggling = create$3({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n const pointerEvents = () => {\n const onClick = (component, simulatedEvent) => {\n simulatedEvent.stop();\n emitExecute(component);\n };\n return [\n run$1(click(), onClick),\n run$1(tap(), onClick),\n cutter(touchstart()),\n cutter(mousedown())\n ];\n };\n const events$a = optAction => {\n const executeHandler = action => runOnExecute$1((component, simulatedEvent) => {\n action(component);\n simulatedEvent.stop();\n });\n return derive$2(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n const hoverEvent = 'alloy.item-hover';\n const focusEvent = 'alloy.item-focus';\n const onHover = item => {\n if (search(item.element).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item });\n }\n };\n const onFocus$1 = item => {\n emitWith(item, focusEvent, { item });\n };\n const hover = constant$1(hoverEvent);\n const focus$1 = constant$1(focusEvent);\n\n const builder$2 = detail => ({\n dom: detail.dom,\n domModification: {\n ...detail.domModification,\n attributes: {\n 'role': detail.toggling.isSome() ? 'menuitemcheckbox' : 'menuitem',\n ...detail.domModification.attributes,\n 'aria-haspopup': detail.hasSubmenu,\n ...detail.hasSubmenu ? { 'aria-expanded': false } : {}\n }\n },\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, tConfig => Toggling.config({\n aria: { mode: 'checked' },\n ...tConfig\n })),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', [\n ...pointerEvents(),\n run$1(mouseover(), onHover),\n run$1(focusItem(), Focusing.focus)\n ])\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n });\n const schema$p = [\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('hasSubmenu', false),\n option$3('toggling'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted('ignoreFocus', false),\n defaulted('domModification', {}),\n output$1('builder', builder$2),\n defaulted('eventOrder', {})\n ];\n\n const builder$1 = detail => ({\n dom: detail.dom,\n components: detail.components,\n events: derive$2([stopper(focusItem())])\n });\n const schema$o = [\n required$1('dom'),\n required$1('components'),\n output$1('builder', builder$1)\n ];\n\n const owner$2 = constant$1('item-widget');\n const parts$h = constant$1([required({\n name: 'widget',\n overrides: detail => {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: _component => {\n return detail.data;\n },\n setValue: noop\n }\n })])\n };\n }\n })]);\n\n const builder = detail => {\n const subs = substitutes(owner$2(), detail, parts$h());\n const components = components$1(owner$2(), detail, subs.internals());\n const focusWidget = component => getPart(component, detail, 'widget').map(widget => {\n Keying.focusIn(widget);\n return widget;\n });\n const onHorizontalArrow = (component, simulatedEvent) => inside(simulatedEvent.event.target) ? Optional.none() : (() => {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n })();\n return {\n dom: detail.dom,\n components,\n domModification: detail.domModification,\n events: derive$2([\n runOnExecute$1((component, simulatedEvent) => {\n focusWidget(component).each(_widget => {\n simulatedEvent.stop();\n });\n }),\n run$1(mouseover(), onHover),\n run$1(focusItem(), (component, _simulatedEvent) => {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? component => {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: (component, simulatedEvent) => {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Optional.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }\n })\n ])\n };\n };\n const schema$n = [\n required$1('uid'),\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('autofocus', false),\n defaulted('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted('domModification', {}),\n defaultUidsSchema(parts$h()),\n output$1('builder', builder)\n ];\n\n const itemSchema$2 = choose$1('type', {\n widget: schema$n,\n item: schema$p,\n separator: schema$o\n });\n const configureGrid = (detail, movementInfo) => ({\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n });\n const configureMatrix = (detail, movementInfo) => ({\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n focusManager: detail.focusManager\n });\n const configureMenu = (detail, movementInfo) => ({\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n });\n const parts$g = constant$1([group({\n factory: {\n sketch: spec => {\n const itemInfo = asRawOrDie$1('menu.spec item', itemSchema$2, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: (detail, u) => {\n return has$2(u, 'uid') ? u : {\n ...u,\n uid: generate$5('item')\n };\n },\n overrides: (detail, u) => {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n const schema$m = constant$1([\n required$1('value'),\n required$1('items'),\n required$1('dom'),\n required$1('components'),\n defaulted('eventOrder', {}),\n field('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output$1('config', configureGrid)\n ],\n matrix: [\n output$1('config', configureMatrix),\n required$1('rowSelector')\n ],\n menu: [\n defaulted('moveOnTab', true),\n output$1('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted('fakeFocus', false),\n defaulted('focusManager', dom$2()),\n onHandler('onHighlight')\n ]);\n\n const focus = constant$1('alloy.menu-focus');\n\n const make$7 = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Optional.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive$2([\n run$1(focus$1(), (menu, simulatedEvent) => {\n const event = simulatedEvent.event;\n menu.getSystem().getByDom(event.target).each(item => {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus(), {\n menu,\n item\n });\n });\n }),\n run$1(hover(), (menu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n Highlighting.highlight(menu, item);\n })\n ]),\n components,\n eventOrder: detail.eventOrder,\n domModification: { attributes: { role: 'menu' } }\n });\n\n const Menu = composite({\n name: 'Menu',\n configFields: schema$m(),\n partFields: parts$g(),\n factory: make$7\n });\n\n const transpose$1 = obj => tupleMap(obj, (v, k) => ({\n k: v,\n v: k\n }));\n const trace = (items, byItem, byMenu, finish) => get$g(byMenu, finish).bind(triggerItem => get$g(items, triggerItem).bind(triggerMenu => {\n const rest = trace(items, byItem, byMenu, triggerMenu);\n return Optional.some([triggerMenu].concat(rest));\n })).getOr([]);\n const generate$2 = (menus, expansions) => {\n const items = {};\n each(menus, (menuItems, menu) => {\n each$1(menuItems, item => {\n items[item] = menu;\n });\n });\n const byItem = expansions;\n const byMenu = transpose$1(expansions);\n const menuPaths = map$1(byMenu, (_triggerItem, submenu) => [submenu].concat(trace(items, byItem, byMenu, submenu)));\n return map$1(items, menu => get$g(menuPaths, menu).getOr([menu]));\n };\n\n const init$c = () => {\n const expansions = Cell({});\n const menus = Cell({});\n const paths = Cell({});\n const primary = value$2();\n const directory = Cell({});\n const clear = () => {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.clear();\n };\n const isClear = () => primary.get().isNone();\n const setMenuBuilt = (menuName, built) => {\n menus.set({\n ...menus.get(),\n [menuName]: {\n type: 'prepared',\n menu: built\n }\n });\n };\n const setContents = (sPrimary, sMenus, sExpansions, dir) => {\n primary.set(sPrimary);\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n const sPaths = generate$2(dir, sExpansions);\n paths.set(sPaths);\n };\n const getTriggeringItem = menuValue => find$4(expansions.get(), (v, _k) => v === menuValue);\n const getTriggerData = (menuValue, getItemByValue, path) => getPreparedMenu(menuValue).bind(menu => getTriggeringItem(menuValue).bind(triggeringItemValue => getItemByValue(triggeringItemValue).map(triggeredItem => ({\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n }))));\n const getTriggeringPath = (itemValue, getItemByValue) => {\n const extraPath = filter$2(lookupItem(itemValue).toArray(), menuValue => getPreparedMenu(menuValue).isSome());\n return get$g(paths.get(), itemValue).bind(path => {\n const revPath = reverse(extraPath.concat(path));\n const triggers = bind$3(revPath, (menuValue, menuIndex) => getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(() => is$1(primary.get(), menuValue) ? [] : [Optional.none()], data => [Optional.some(data)]));\n return sequence(triggers);\n });\n };\n const expand = itemValue => get$g(expansions.get(), itemValue).map(menu => {\n const current = get$g(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n const collapse = itemValue => get$g(paths.get(), itemValue).bind(path => path.length > 1 ? Optional.some(path.slice(1)) : Optional.none());\n const refresh = itemValue => get$g(paths.get(), itemValue);\n const getPreparedMenu = menuValue => lookupMenu(menuValue).bind(extractPreparedMenu);\n const lookupMenu = menuValue => get$g(menus.get(), menuValue);\n const lookupItem = itemValue => get$g(expansions.get(), itemValue);\n const otherMenus = path => {\n const menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n const getPrimary = () => primary.get().bind(getPreparedMenu);\n const getMenus = () => menus.get();\n return {\n setMenuBuilt,\n setContents,\n expand,\n refresh,\n collapse,\n lookupMenu,\n lookupItem,\n otherMenus,\n getPrimary,\n getMenus,\n clear,\n isClear,\n getTriggeringPath\n };\n };\n const extractPreparedMenu = prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n const LayeredState = {\n init: init$c,\n extractPreparedMenu\n };\n\n const make$6 = (detail, _rawUiSpec) => {\n const submenuParentItems = value$2();\n const buildMenus = (container, primaryName, menus) => map$1(menus, (spec, name) => {\n const makeSketch = () => Menu.sketch({\n ...spec,\n value: name,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: detail.onHighlight,\n focusManager: detail.fakeFocus ? highlights() : dom$2()\n });\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n const layeredState = LayeredState.init();\n const setup = container => {\n const componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n const directory = toDirectory();\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n const getItemValue = item => Representing.getValue(item).value;\n const getItemByValue = (_container, menus, itemValue) => findMap(menus, menu => {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n const candidates = Highlighting.getCandidates(menu);\n return find$5(candidates, c => getItemValue(c) === itemValue);\n });\n const toDirectory = _container => map$1(detail.data.menus, (data, _menuName) => bind$3(data.items, item => item.type === 'separator' ? [] : [item.data.value]));\n const setActiveMenu = (container, menu) => {\n Highlighting.highlight(container, menu);\n Highlighting.getHighlighted(menu).orThunk(() => Highlighting.getFirst(menu)).each(item => {\n dispatch(container, item.element, focusItem());\n });\n };\n const getMenus = (state, menuValues) => cat(map$2(menuValues, mv => state.lookupMenu(mv).bind(prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none())));\n const closeOthers = (container, state, path) => {\n const others = getMenus(state, state.otherMenus(path));\n each$1(others, o => {\n remove$1(o.element, [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n const getSubmenuParents = container => submenuParentItems.get().getOrThunk(() => {\n const r = {};\n const items = descendants(container.element, `.${ detail.markers.item }`);\n const parentItems = filter$2(items, i => get$f(i, 'aria-haspopup') === 'true');\n each$1(parentItems, i => {\n container.getSystem().getByDom(i).each(itemComp => {\n const key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(r);\n return r;\n });\n const updateAriaExpansions = (container, path) => {\n const parentItems = getSubmenuParents(container);\n each(parentItems, (v, k) => {\n const expanded = contains$2(path, k);\n set$9(v.element, 'aria-expanded', expanded);\n });\n };\n const updateMenuPath = (container, state, path) => Optional.from(path[0]).bind(latestMenuName => state.lookupMenu(latestMenuName).bind(menuPrep => {\n if (menuPrep.type === 'notbuilt') {\n return Optional.none();\n } else {\n const activeMenu = menuPrep.menu;\n const rest = getMenus(state, path.slice(1));\n each$1(rest, r => {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n remove$1(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.some(activeMenu);\n }\n }));\n let ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n const buildIfRequired = (container, menuName, menuPrep) => {\n if (menuPrep.type === 'notbuilt') {\n const menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n const expandRight = (container, item, decision = ExpandHighlightDecision.HighlightSubmenu) => {\n if (item.hasConfigured(Disabling) && Disabling.isDisabled(item)) {\n return Optional.some(item);\n } else {\n const value = getItemValue(item);\n return layeredState.expand(value).bind(path => {\n updateAriaExpansions(container, path);\n return Optional.from(path[0]).bind(menuName => layeredState.lookupMenu(menuName).bind(activeMenuPrep => {\n const activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Optional.some(item);\n }\n }));\n });\n }\n };\n const collapseLeft = (container, item) => {\n const value = getItemValue(item);\n return layeredState.collapse(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(activeMenu => {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n const updateView = (container, item) => {\n const value = getItemValue(item);\n return layeredState.refresh(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n const onRight = (container, item) => inside(item.element) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n const onLeft = (container, item) => inside(item.element) ? Optional.none() : collapseLeft(container, item);\n const onEscape = (container, item) => collapseLeft(container, item).orThunk(() => detail.onEscape(container, item).map(() => container));\n const keyOnItem = f => (container, simulatedEvent) => closest$1(simulatedEvent.getSource(), '.' + detail.markers.item).bind(target => container.getSystem().getByDom(target).toOptional().bind(item => f(container, item).map(always)));\n const events = derive$2([\n run$1(focus(), (sandbox, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n layeredState.lookupItem(getItemValue(item)).each(() => {\n const menu = simulatedEvent.event.menu;\n Highlighting.highlight(sandbox, menu);\n const value = getItemValue(simulatedEvent.event.item);\n layeredState.refresh(value).each(path => closeOthers(sandbox, layeredState, path));\n });\n }),\n runOnExecute$1((component, simulatedEvent) => {\n const target = simulatedEvent.event.target;\n component.getSystem().getByDom(target).each(item => {\n const itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(() => {\n detail.onExecute(component, item);\n }, noop);\n });\n }),\n runOnAttached((container, _simulatedEvent) => {\n setup(container).each(primary => {\n Replacing.append(container, premade(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })\n ].concat(detail.navigateOnHover ? [run$1(hover(), (sandbox, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n updateView(sandbox, item);\n expandRight(sandbox, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(sandbox, item);\n })] : []));\n const getActiveItem = container => Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n const collapseMenuApi = container => {\n getActiveItem(container).each(currentItem => {\n collapseLeft(container, currentItem);\n });\n };\n const highlightPrimary = container => {\n layeredState.getPrimary().each(primary => {\n setActiveMenu(container, primary);\n });\n };\n const extractMenuFromContainer = container => Optional.from(container.components()[0]).filter(comp => get$f(comp.element, 'role') === 'menu');\n const repositionMenus = container => {\n const maybeActivePrimary = layeredState.getPrimary().bind(primary => getActiveItem(container).bind(currentItem => {\n const itemValue = getItemValue(currentItem);\n const allMenus = values(layeredState.getMenus());\n const preparedMenus = cat(map$2(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, v => getItemByValue(container, preparedMenus, v));\n }).map(triggeringPath => ({\n primary,\n triggeringPath\n })));\n maybeActivePrimary.fold(() => {\n extractMenuFromContainer(container).each(primaryMenu => {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, ({primary, triggeringPath}) => {\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n const apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary,\n repositionMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: (container, _keyInfo) => {\n layeredState.getPrimary().each(primary => {\n dispatch(container, primary.element, focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: container => {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis,\n events\n };\n };\n const collapseItem$1 = constant$1('collapse-item');\n\n const tieredData = (primary, menus, expansions) => ({\n primary,\n menus,\n expansions\n });\n const singleData = (name, menu) => ({\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n });\n const collapseItem = text => ({\n value: generate$6(collapseItem$1()),\n meta: { text }\n });\n const tieredMenu = single({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted('highlightImmediately', true),\n requiredObjOf('data', [\n required$1('primary'),\n required$1('menus'),\n required$1('expansions')\n ]),\n defaulted('fakeFocus', false),\n onHandler('onHighlight'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n required$1('dom'),\n defaulted('navigateOnHover', true),\n defaulted('stayInDom', false),\n field('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted('eventOrder', {})\n ],\n apis: {\n collapseMenu: (apis, tmenu) => {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: (apis, tmenu) => {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: (apis, tmenu) => {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$6,\n extraApis: {\n tieredData,\n singleData,\n collapseItem\n }\n });\n\n const makeMenu = (detail, menuSandbox, placementSpec, menuSpec, getBounds) => {\n const lazySink = () => detail.lazySink(menuSandbox);\n const layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: () => belowOrAbove(),\n onRtl: () => belowOrAboveRtl()\n }\n } : {};\n const isFirstTierSubmenu = triggeringPaths => triggeringPaths.length === 2;\n const getSubmenuLayouts = triggeringPaths => isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightImmediately: menuSpec.menu.highlightImmediately,\n onEscape: () => {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(handler => handler(menuSandbox));\n return Optional.some(true);\n },\n onExecute: () => {\n return Optional.some(true);\n },\n onOpenMenu: (tmenu, menu) => {\n Positioning.positionWithinBounds(lazySink().getOrDie(), menu, placementSpec, getBounds());\n },\n onOpenSubmenu: (tmenu, item, submenu, triggeringPaths) => {\n const sink = lazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item,\n ...getSubmenuLayouts(triggeringPaths)\n }\n });\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, primaryMenu, placementSpec, getBounds());\n each$1(submenuTriggers, st => {\n const submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem,\n ...submenuLayouts\n }\n });\n });\n }\n });\n };\n const factory$m = (detail, spec) => {\n const isPartOfRelated = (sandbox, queryElem) => {\n const related = detail.getRelated(sandbox);\n return related.exists(rel => isPartOf$1(rel, queryElem));\n };\n const setContent = (sandbox, thing) => {\n Sandboxing.setContent(sandbox, thing);\n };\n const showAt = (sandbox, thing, placementSpec) => {\n showWithin(sandbox, thing, placementSpec, Optional.none());\n };\n const showWithin = (sandbox, thing, placementSpec, boxElement) => {\n showWithinBounds(sandbox, thing, placementSpec, () => boxElement.map(elem => box$1(elem)));\n };\n const showWithinBounds = (sandbox, thing, placementSpec, getBounds) => {\n const sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, () => Positioning.positionWithinBounds(sink, sandbox, placementSpec, getBounds()));\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n config: placementSpec,\n getBounds\n }));\n };\n const showMenuAt = (sandbox, placementSpec, menuSpec) => {\n showMenuWithinBounds(sandbox, placementSpec, menuSpec, Optional.none);\n };\n const showMenuWithinBounds = (sandbox, placementSpec, menuSpec, getBounds) => {\n const menu = makeMenu(detail, sandbox, placementSpec, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu\n }));\n };\n const hide = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n const getContent = sandbox => Sandboxing.getState(sandbox);\n const reposition = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(state => {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(tieredMenu.repositionMenus);\n break;\n case 'position':\n const sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, sandbox, state.config, state.getBounds());\n break;\n }\n });\n }\n };\n const apis = {\n setContent,\n showAt,\n showWithin,\n showWithinBounds,\n showMenuAt,\n showMenuWithinBounds,\n hide,\n getContent,\n reposition,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [\n Sandboxing.config({\n isPartOf: (sandbox, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: sandbox => {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: sandbox => {\n detail.onShow(sandbox);\n },\n onClose: sandbox => {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: spec.isExtraPart,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n ...detail.fireRepositionEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({}),\n doReposition: reposition\n })\n }\n })\n ]),\n eventOrder: detail.eventOrder,\n apis\n };\n };\n const InlineView = single({\n name: 'InlineView',\n configFields: [\n required$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted('event', repositionRequested())]),\n defaulted('getRelated', Optional.none),\n defaulted('isExtraPart', never),\n defaulted('eventOrder', Optional.none)\n ],\n factory: factory$m,\n apis: {\n showAt: (apis, component, anchor, thing) => {\n apis.showAt(component, anchor, thing);\n },\n showWithin: (apis, component, anchor, thing, boxElement) => {\n apis.showWithin(component, anchor, thing, boxElement);\n },\n showWithinBounds: (apis, component, anchor, thing, bounds) => {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: (apis, component, anchor, menuSpec) => {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: (apis, component, anchor, menuSpec, bounds) => {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: (apis, component) => {\n apis.hide(component);\n },\n isOpen: (apis, component) => apis.isOpen(component),\n getContent: (apis, component) => apis.getContent(component),\n setContent: (apis, component, thing) => {\n apis.setContent(component, thing);\n },\n reposition: (apis, component) => {\n apis.reposition(component);\n }\n }\n });\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n const factory$l = detail => {\n const events = events$a(detail.action);\n const tag = detail.dom.tag;\n const lookupAttr = attr => get$g(detail.dom, 'attributes').bind(attrs => get$g(attrs, attr));\n const getModAttributes = () => {\n if (tag === 'button') {\n const type = lookupAttr('type').getOr('button');\n const roleAttrs = lookupAttr('role').map(role => ({ role })).getOr({});\n return {\n type,\n ...roleAttrs\n };\n } else {\n const role = lookupAttr('role').getOr('button');\n return { role };\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n const Button = single({\n name: 'Button',\n factory: factory$l,\n configFields: [\n defaulted('uid', undefined),\n required$1('dom'),\n defaulted('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option$3('action'),\n option$3('role'),\n defaulted('eventOrder', {})\n ]\n });\n\n const record = spec => {\n const uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');\n const get = anyInSystem => anyInSystem.getSystem().getByUid(uid).getOrDie();\n const getOpt = anyInSystem => anyInSystem.getSystem().getByUid(uid).toOptional();\n const asSpec = () => ({\n ...spec,\n uid\n });\n return {\n get,\n getOpt,\n asSpec\n };\n };\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n const 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 const defaultIconName = 'temporary-placeholder';\n const defaultIcon = icons => () => get$g(icons, defaultIconName).getOr('!not found!');\n const getIconName = (name, icons) => {\n const lcName = name.toLowerCase();\n if (global$8.isRtl()) {\n const rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n const lookupIcon = (name, icons) => get$g(icons, getIconName(name, icons));\n const get$2 = (name, iconProvider) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n const getOr = (name, iconProvider, fallbackIcon) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n const needsRtlTransform = iconName => global$8.isRtl() ? has$2(rtlTransform, iconName) : false;\n const addFocusableBehaviour = () => config('add-focusable', [runOnAttached(comp => {\n child(comp.element, 'svg').each(svg => set$9(svg, 'focusable', 'false'));\n })]);\n const renderIcon$2 = (spec, iconName, icons, fallbackIcon) => {\n var _a, _b;\n const rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n const iconHtml = get$g(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([\n ...(_b = spec.behaviours) !== null && _b !== void 0 ? _b : [],\n addFocusableBehaviour()\n ])\n };\n };\n const render$3 = (iconName, spec, iconProvider, fallbackIcon = Optional.none()) => renderIcon$2(spec, iconName, iconProvider(), fallbackIcon);\n const renderFirst = (iconNames, spec, iconProvider) => {\n const icons = iconProvider();\n const iconName = find$5(iconNames, name => has$2(icons, getIconName(name, icons)));\n return renderIcon$2(spec, iconName.getOr(defaultIconName), icons, Optional.none());\n };\n\n const notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n const factory$k = detail => {\n const memBannerText = record({\n dom: {\n tag: 'p',\n innerHtml: detail.translationProvider(detail.text)\n },\n behaviours: derive$1([Replacing.config({})])\n });\n const renderPercentBar = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n styles: { width: `${ percent }%` }\n }\n });\n const renderPercentText = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: `${ percent }%`\n }\n });\n const memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n const updateProgress = (comp, percent) => {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(progress => {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n const updateText = (comp, text) => {\n if (comp.getSystem().isConnected()) {\n const banner = memBannerText.get(comp);\n Replacing.set(banner, [text$1(text)]);\n }\n };\n const apis = {\n updateProgress,\n updateText\n };\n const iconChoices = flatten([\n detail.icon.toArray(),\n detail.level.toArray(),\n detail.level.bind(level => Optional.from(notificationIconMap[level])).toArray()\n ]);\n const memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ]\n },\n components: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon'],\n attributes: { 'aria-label': detail.translationProvider('Close') }\n }, detail.iconProvider)],\n action: comp => {\n detail.onAction(comp);\n }\n }));\n const notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n const notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n const components = [\n notificationIconSpec,\n notificationBodySpec\n ];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: detail.level.map(level => [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ level }`\n ]).getOr([\n 'tox-notification',\n 'tox-notification--in'\n ])\n },\n behaviours: derive$1([\n Focusing.config({}),\n config('notification-events', [run$1(focusin(), comp => {\n memButton.getOpt(comp).each(Focusing.focus);\n })])\n ]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(!detail.closeButton ? [] : [memButton.asSpec()]),\n apis\n };\n };\n const Notification = single({\n name: 'Notification',\n factory: factory$k,\n configFields: [\n option$3('level'),\n required$1('progress'),\n required$1('icon'),\n required$1('onAction'),\n required$1('text'),\n required$1('iconProvider'),\n required$1('translationProvider'),\n defaultedBoolean('closeButton', true)\n ],\n apis: {\n updateProgress: (apis, comp, percent) => {\n apis.updateProgress(comp, percent);\n },\n updateText: (apis, comp, text) => {\n apis.updateText(comp, text);\n }\n }\n });\n\n var NotificationManagerImpl = (editor, extras, uiMothership) => {\n const sharedBackstage = extras.backstage.shared;\n const getBounds = () => {\n const contentArea = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const win$1 = win();\n const x = clamp(win$1.x, contentArea.x, contentArea.right);\n const y = clamp(win$1.y, contentArea.y, contentArea.bottom);\n const right = Math.max(contentArea.right, win$1.right);\n const bottom = Math.max(contentArea.bottom, win$1.bottom);\n return Optional.some(bounds(x, y, right - x, bottom - y));\n };\n const open = (settings, closeCallback) => {\n const close = () => {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n const notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains$2([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Optional.from(settings.icon),\n closeButton: settings.closeButton,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n translationProvider: sharedBackstage.providers.translate\n }));\n const notificationWrapper = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {},\n ...sharedBackstage.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} }\n }));\n uiMothership.add(notificationWrapper);\n if (settings.timeout > 0) {\n global$9.setEditorTimeout(editor, () => {\n close();\n }, settings.timeout);\n }\n const reposition = () => {\n const notificationSpec = premade(notification);\n const anchorOverrides = { maxHeightFunction: expandable$1() };\n const allNotifications = editor.notificationManager.getNotifications();\n if (allNotifications[0] === thisNotification) {\n const anchor = {\n ...sharedBackstage.anchors.banner(),\n overrides: anchorOverrides\n };\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor }, getBounds);\n } else {\n indexOf(allNotifications, thisNotification).each(idx => {\n const previousNotification = allNotifications[idx - 1].getEl();\n const nodeAnchor = {\n type: 'node',\n root: body(),\n node: Optional.some(SugarElement.fromDom(previousNotification)),\n overrides: anchorOverrides,\n layouts: {\n onRtl: () => [south$2],\n onLtr: () => [south$2]\n }\n };\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor: nodeAnchor }, getBounds);\n });\n }\n };\n const thisNotification = {\n close,\n reposition,\n text: nuText => {\n Notification.updateText(notification, nuText);\n },\n settings,\n getEl: () => notification.element.dom,\n progressBar: {\n value: percent => {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n return thisNotification;\n };\n const close = notification => {\n notification.close();\n };\n const getArgs = notification => {\n return notification.settings;\n };\n return {\n open,\n close,\n getArgs\n };\n };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var ToolbarMode$1;\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n }(ToolbarMode$1 || (ToolbarMode$1 = {})));\n var ToolbarLocation$1;\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n }(ToolbarLocation$1 || (ToolbarLocation$1 = {})));\n const option$2 = name => editor => editor.options.get(name);\n const wrapOptional = fn => editor => Optional.from(fn(editor));\n const register$e = editor => {\n const isPhone = global$5.deviceType.isPhone();\n const isMobile = global$5.deviceType.isTablet() || isPhone;\n const registerOption = editor.options.register;\n const stringOrFalseProcessor = value => isString(value) || value === false;\n const stringOrNumberProcessor = value => isString(value) || isNumber(value);\n registerOption('skin', {\n processor: value => isString(value) || value === false,\n default: 'oxide'\n });\n registerOption('skin_url', { processor: 'string' });\n registerOption('height', {\n processor: stringOrNumberProcessor,\n default: Math.max(editor.getElement().offsetHeight, 400)\n });\n registerOption('width', {\n processor: stringOrNumberProcessor,\n default: global$7.DOM.getStyle(editor.getElement(), 'width')\n });\n registerOption('min_height', {\n processor: 'number',\n default: 100\n });\n registerOption('min_width', { processor: 'number' });\n registerOption('max_height', { processor: 'number' });\n registerOption('max_width', { processor: 'number' });\n registerOption('style_formats', { processor: 'object[]' });\n registerOption('style_formats_merge', {\n processor: 'boolean',\n default: false\n });\n registerOption('style_formats_autohide', {\n processor: 'boolean',\n default: false\n });\n registerOption('line_height_formats', {\n processor: 'string',\n default: '1 1.1 1.2 1.3 1.4 1.5 2'\n });\n registerOption('font_family_formats', {\n processor: 'string',\n default: '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 });\n registerOption('font_size_formats', {\n processor: 'string',\n default: '8pt 10pt 12pt 14pt 18pt 24pt 36pt'\n });\n registerOption('block_formats', {\n processor: 'string',\n default: 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre'\n });\n registerOption('content_langs', { processor: 'object[]' });\n registerOption('removed_menuitems', {\n processor: 'string',\n default: ''\n });\n registerOption('menubar', {\n processor: value => isString(value) || isBoolean(value),\n default: !isPhone\n });\n registerOption('menu', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar', {\n processor: value => {\n if (isBoolean(value) || isString(value) || isArray(value)) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a boolean, string or array.'\n };\n }\n },\n default: true\n });\n range$2(9, num => {\n registerOption('toolbar' + (num + 1), { processor: 'string' });\n });\n registerOption('toolbar_mode', {\n processor: 'string',\n default: isMobile ? 'scrolling' : 'floating'\n });\n registerOption('toolbar_groups', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar_location', {\n processor: 'string',\n default: ToolbarLocation$1.auto\n });\n registerOption('toolbar_persist', {\n processor: 'boolean',\n default: false\n });\n registerOption('toolbar_sticky', {\n processor: 'boolean',\n default: editor.inline\n });\n registerOption('toolbar_sticky_offset', {\n processor: 'number',\n default: 0\n });\n registerOption('fixed_toolbar_container', {\n processor: 'string',\n default: ''\n });\n registerOption('fixed_toolbar_container_target', { processor: 'object' });\n registerOption('file_picker_callback', { processor: 'function' });\n registerOption('file_picker_validator_handler', { processor: 'function' });\n registerOption('file_picker_types', { processor: 'string' });\n registerOption('typeahead_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('anchor_top', {\n processor: stringOrFalseProcessor,\n default: '#top'\n });\n registerOption('anchor_bottom', {\n processor: stringOrFalseProcessor,\n default: '#bottom'\n });\n registerOption('draggable_modal', {\n processor: 'boolean',\n default: false\n });\n registerOption('statusbar', {\n processor: 'boolean',\n default: true\n });\n registerOption('elementpath', {\n processor: 'boolean',\n default: true\n });\n registerOption('branding', {\n processor: 'boolean',\n default: true\n });\n registerOption('resize', {\n processor: value => value === 'both' || isBoolean(value),\n default: !global$5.deviceType.isTouch()\n });\n };\n const isReadOnly = option$2('readonly');\n const getHeightOption = option$2('height');\n const getWidthOption = option$2('width');\n const getMinWidthOption = wrapOptional(option$2('min_width'));\n const getMinHeightOption = wrapOptional(option$2('min_height'));\n const getMaxWidthOption = wrapOptional(option$2('max_width'));\n const getMaxHeightOption = wrapOptional(option$2('max_height'));\n const getUserStyleFormats = wrapOptional(option$2('style_formats'));\n const shouldMergeStyleFormats = option$2('style_formats_merge');\n const shouldAutoHideStyleFormats = option$2('style_formats_autohide');\n const getContentLanguages = option$2('content_langs');\n const getRemovedMenuItems = option$2('removed_menuitems');\n const getToolbarMode = option$2('toolbar_mode');\n const getToolbarGroups = option$2('toolbar_groups');\n const getToolbarLocation = option$2('toolbar_location');\n const fixedContainerSelector = option$2('fixed_toolbar_container');\n const fixedToolbarContainerTarget = option$2('fixed_toolbar_container_target');\n const isToolbarPersist = option$2('toolbar_persist');\n const getStickyToolbarOffset = option$2('toolbar_sticky_offset');\n const getMenubar = option$2('menubar');\n const getToolbar = option$2('toolbar');\n const getFilePickerCallback = option$2('file_picker_callback');\n const getFilePickerValidatorHandler = option$2('file_picker_validator_handler');\n const getFilePickerTypes = option$2('file_picker_types');\n const useTypeaheadUrls = option$2('typeahead_urls');\n const getAnchorTop = option$2('anchor_top');\n const getAnchorBottom = option$2('anchor_bottom');\n const isDraggableModal$1 = option$2('draggable_modal');\n const useStatusBar = option$2('statusbar');\n const useElementPath = option$2('elementpath');\n const useBranding = option$2('branding');\n const getResize = option$2('resize');\n const getPasteAsText = option$2('paste_as_text');\n const isSkinDisabled = editor => editor.options.get('skin') === false;\n const isMenubarEnabled = editor => editor.options.get('menubar') !== false;\n const getSkinUrl = editor => {\n const skinUrl = editor.options.get('skin_url');\n if (isSkinDisabled(editor)) {\n return skinUrl;\n } else {\n if (skinUrl) {\n return editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n const skin = editor.options.get('skin');\n return global$6.baseURL + '/skins/ui/' + skin;\n }\n }\n };\n const getLineHeightFormats = editor => editor.options.get('line_height_formats').split(' ');\n const isToolbarEnabled = editor => {\n const toolbar = getToolbar(editor);\n const isToolbarString = isString(toolbar);\n const isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || toolbar === true);\n };\n const getMultipleToolbarsOption = editor => {\n const toolbars = range$2(9, num => editor.options.get('toolbar' + (num + 1)));\n const toolbarArray = filter$2(toolbars, isString);\n return someIf(toolbarArray.length > 0, toolbarArray);\n };\n const isMultipleToolbars = editor => getMultipleToolbarsOption(editor).fold(() => {\n const toolbar = getToolbar(editor);\n return isArrayOf(toolbar, isString) && toolbar.length > 0;\n }, always);\n const isToolbarLocationBottom = editor => getToolbarLocation(editor) === ToolbarLocation$1.bottom;\n const fixedContainerTarget = editor => {\n if (!editor.inline) {\n return Optional.none();\n }\n const selector = fixedContainerSelector(editor);\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n const element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n const useFixedContainer = editor => editor.inline && fixedContainerTarget(editor).isSome();\n const getUiContainer = editor => {\n const fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(() => getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement()))));\n };\n const isDistractionFree = editor => editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n const isStickyToolbar = editor => {\n const isStickyToolbar = editor.options.get('toolbar_sticky');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n const getMenus = editor => {\n const menu = editor.options.get('menu');\n return map$1(menu, menu => ({\n ...menu,\n items: menu.items\n }));\n };\n\n var Options = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get ToolbarMode () { return ToolbarMode$1; },\n get ToolbarLocation () { return ToolbarLocation$1; },\n register: register$e,\n getSkinUrl: getSkinUrl,\n isReadOnly: isReadOnly,\n isSkinDisabled: isSkinDisabled,\n getHeightOption: getHeightOption,\n getWidthOption: getWidthOption,\n getMinWidthOption: getMinWidthOption,\n getMinHeightOption: getMinHeightOption,\n getMaxWidthOption: getMaxWidthOption,\n getMaxHeightOption: getMaxHeightOption,\n getUserStyleFormats: getUserStyleFormats,\n shouldMergeStyleFormats: shouldMergeStyleFormats,\n shouldAutoHideStyleFormats: shouldAutoHideStyleFormats,\n getLineHeightFormats: getLineHeightFormats,\n getContentLanguages: getContentLanguages,\n getRemovedMenuItems: getRemovedMenuItems,\n isMenubarEnabled: isMenubarEnabled,\n isMultipleToolbars: isMultipleToolbars,\n isToolbarEnabled: isToolbarEnabled,\n isToolbarPersist: isToolbarPersist,\n getMultipleToolbarsOption: getMultipleToolbarsOption,\n getUiContainer: getUiContainer,\n useFixedContainer: useFixedContainer,\n getToolbarMode: getToolbarMode,\n isDraggableModal: isDraggableModal$1,\n isDistractionFree: isDistractionFree,\n isStickyToolbar: isStickyToolbar,\n getStickyToolbarOffset: getStickyToolbarOffset,\n getToolbarLocation: getToolbarLocation,\n isToolbarLocationBottom: isToolbarLocationBottom,\n getToolbarGroups: getToolbarGroups,\n getMenus: getMenus,\n getMenubar: getMenubar,\n getToolbar: getToolbar,\n getFilePickerCallback: getFilePickerCallback,\n getFilePickerTypes: getFilePickerTypes,\n useTypeaheadUrls: useTypeaheadUrls,\n getAnchorTop: getAnchorTop,\n getAnchorBottom: getAnchorBottom,\n getFilePickerValidatorHandler: getFilePickerValidatorHandler,\n useStatusBar: useStatusBar,\n useElementPath: useElementPath,\n useBranding: useBranding,\n getResize: getResize,\n getPasteAsText: getPasteAsText\n });\n\n const autocompleteSelector = '[data-mce-autocompleter]';\n const detect = elm => closest$1(elm, autocompleteSelector);\n const findIn = elm => descendant(elm, autocompleteSelector);\n\n const setup$e = (api, editor) => {\n const redirectKeyToItem = (item, e) => {\n emitWith(item, keydown(), { raw: e });\n };\n const getItem = () => api.getView().bind(Highlighting.getHighlighted);\n editor.on('keydown', e => {\n const keyCode = e.which;\n if (!api.isActive()) {\n return;\n }\n if (api.isMenuOpen()) {\n if (keyCode === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (keyCode === 40) {\n getItem().fold(() => {\n api.getView().each(Highlighting.highlightFirst);\n }, item => {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (keyCode === 37 || keyCode === 38 || keyCode === 39) {\n getItem().each(item => {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (keyCode === 13 || keyCode === 38 || keyCode === 40) {\n api.cancelIfNecessary();\n }\n }\n });\n editor.on('NodeChange', e => {\n if (api.isActive() && !api.isProcessingAction() && detect(SugarElement.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n const AutocompleterEditorEvents = { setup: setup$e };\n\n var ItemResponse;\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n }(ItemResponse || (ItemResponse = {})));\n var ItemResponse$1 = ItemResponse;\n\n const navClass = 'tox-menu-nav__js';\n const selectableClass = 'tox-collection__item';\n const colorClass = 'tox-swatch';\n const presetClasses = {\n normal: navClass,\n color: colorClass\n };\n const tickedClass = 'tox-collection__item--enabled';\n const groupHeadingClass = 'tox-collection__group-heading';\n const iconClass = 'tox-collection__item-icon';\n const textClass = 'tox-collection__item-label';\n const accessoryClass = 'tox-collection__item-accessory';\n const caretClass = 'tox-collection__item-caret';\n const checkmarkClass = 'tox-collection__item-checkmark';\n const activeClass = 'tox-collection__item--active';\n const containerClass = 'tox-collection__item-container';\n const containerColumnClass = 'tox-collection__item-container--column';\n const containerRowClass = 'tox-collection__item-container--row';\n const containerAlignRightClass = 'tox-collection__item-container--align-right';\n const containerAlignLeftClass = 'tox-collection__item-container--align-left';\n const containerValignTopClass = 'tox-collection__item-container--valign-top';\n const containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n const containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n const classForPreset = presets => get$g(presetClasses, presets).getOr(navClass);\n\n const forMenu = presets => {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n const classes = presets => ({\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 const markers = presets => {\n const 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 const dom$1 = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n `tox-menu-${ columns }-column`\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n const components = [Menu.parts.items({})];\n const part = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n const d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers(presets)\n };\n };\n\n const chunk = (rowDom, numColumns) => items => {\n const chunks = chunk$1(items, numColumns);\n return map$2(chunks, c => ({\n dom: rowDom,\n components: c\n }));\n };\n const forSwatch = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\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\n })]\n }]\n });\n const forToolbar = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts.items({\n preprocess: chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n });\n const preprocessCollection = (items, isSeparator) => {\n const allSplits = [];\n let currentSplit = [];\n each$1(items, (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') || item.components.length > 0) {\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, s => ({\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n }));\n };\n const forCollection = (columns, initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts.items({\n preprocess: 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, (_item, i) => initItems[i].type === 'separator');\n }\n }\n })]\n });\n const forHorizontalCollection = (initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts.items({ preprocess: items => preprocessCollection(items, (_item, i) => initItems[i].type === 'separator') })]\n });\n\n const menuHasIcons = xs => exists(xs, item => 'icon' in item && item.icon !== undefined);\n const handleError = error => {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n const createHorizontalPartialMenuWithAlloyItems = (value, _hasIcons, items, _columns, _presets) => {\n const structure = forHorizontalCollection(items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n };\n const createPartialMenuWithAlloyItems = (value, hasIcons, items, columns, presets) => {\n if (presets === 'color') {\n const structure = forSwatch(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n }\n if (presets === 'normal' && columns === 'auto') {\n const structure = forCollection(columns, items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n }\n if (presets === 'normal' && columns === 1) {\n const structure = forCollection(1, items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n }\n if (presets === 'normal') {\n const structure = forCollection(columns, items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n }\n if (presets === 'listpreview' && columns !== 'auto') {\n const structure = forToolbar(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n }\n return {\n value,\n dom: dom$1(hasIcons, columns, presets),\n components: components,\n items\n };\n };\n\n const type = requiredString('type');\n const name$1 = requiredString('name');\n const label = requiredString('label');\n const text = requiredString('text');\n const title = requiredString('title');\n const icon = requiredString('icon');\n const value$1 = requiredString('value');\n const fetch$1 = requiredFunction('fetch');\n const getSubmenuItems = requiredFunction('getSubmenuItems');\n const onAction = requiredFunction('onAction');\n const onItemAction = requiredFunction('onItemAction');\n const onSetup = defaultedFunction('onSetup', () => noop);\n const optionalName = optionString('name');\n const optionalText = optionString('text');\n const optionalIcon = optionString('icon');\n const optionalTooltip = optionString('tooltip');\n const optionalLabel = optionString('label');\n const optionalShortcut = optionString('shortcut');\n const optionalSelect = optionFunction('select');\n const active = defaultedBoolean('active', false);\n const borderless = defaultedBoolean('borderless', false);\n const enabled = defaultedBoolean('enabled', true);\n const primary = defaultedBoolean('primary', false);\n const defaultedColumns = num => defaulted('columns', num);\n const defaultedMeta = defaulted('meta', {});\n const defaultedOnAction = defaultedFunction('onAction', noop);\n const defaultedType = type => defaultedString('type', type);\n const generatedName = namePrefix => field$1('name', 'name', defaultedThunk(() => generate$6(`${ namePrefix }-name`)), string);\n const generatedValue = valuePrefix => field$1('value', 'value', defaultedThunk(() => generate$6(`${ valuePrefix }-value`)), anyValue());\n\n const separatorMenuItemSchema = objOf([\n type,\n optionalText\n ]);\n const createSeparatorMenuItem = spec => asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n\n const autocompleterItemSchema = objOf([\n defaultedType('autocompleteitem'),\n active,\n enabled,\n defaultedMeta,\n value$1,\n optionalText,\n optionalIcon\n ]);\n const createSeparatorItem = spec => asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n const createAutocompleterItem = spec => asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n\n const baseToolbarButtonFields = [\n enabled,\n optionalTooltip,\n optionalIcon,\n optionalText,\n onSetup\n ];\n const toolbarButtonSchema = objOf([\n type,\n onAction\n ].concat(baseToolbarButtonFields));\n const createToolbarButton = spec => asRaw('toolbarbutton', toolbarButtonSchema, spec);\n\n const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n const toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n type,\n onAction\n ]));\n const createToggleButton = spec => asRaw('ToggleButton', toggleButtonSchema, spec);\n\n const contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n const contextButtonFields = baseToolbarButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n const toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n const contextFormSchema = objOf([\n defaultedType('contextform'),\n defaultedFunction('initValue', constant$1('')),\n optionalLabel,\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n const createContextForm = spec => asRaw('ContextForm', contextFormSchema, spec);\n\n const contextToolbarSchema = objOf([\n defaultedType('contexttoolbar'),\n requiredString('items')\n ].concat(contextBarFields));\n const createContextToolbar = spec => asRaw('ContextToolbar', contextToolbarSchema, spec);\n\n const cardImageFields = [\n type,\n requiredString('src'),\n optionString('alt'),\n defaultedArrayOf('classes', [], string)\n ];\n const cardImageSchema = objOf(cardImageFields);\n\n const cardTextFields = [\n type,\n text,\n optionalName,\n defaultedArrayOf('classes', ['tox-collection__item-label'], string)\n ];\n const cardTextSchema = objOf(cardTextFields);\n\n const itemSchema$1 = valueThunk(() => choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n }));\n const cardContainerSchema = objOf([\n type,\n defaultedString('direction', 'horizontal'),\n defaultedString('align', 'left'),\n defaultedString('valign', 'middle'),\n requiredArrayOf('items', itemSchema$1)\n ]);\n\n const commonMenuItemFields = [\n enabled,\n optionalText,\n optionalShortcut,\n generatedValue('menuitem'),\n defaultedMeta\n ];\n\n const cardMenuItemSchema = objOf([\n type,\n optionalLabel,\n requiredArrayOf('items', itemSchema$1),\n onSetup,\n defaultedOnAction\n ].concat(commonMenuItemFields));\n const createCardMenuItem = spec => asRaw('cardmenuitem', cardMenuItemSchema, spec);\n\n const choiceMenuItemSchema = objOf([\n type,\n active,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createChoiceMenuItem = spec => asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n\n const baseFields = [\n type,\n requiredString('fancytype'),\n defaultedOnAction\n ];\n const insertTableFields = [defaulted('initData', {})].concat(baseFields);\n const colorSwatchFields = [defaultedObjOf('initData', {}, [\n defaultedBoolean('allowCustomColors', true),\n optionArrayOf('colors', anyValue())\n ])].concat(baseFields);\n const fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n const createFancyMenuItem = spec => asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n\n const menuItemSchema = objOf([\n type,\n onSetup,\n defaultedOnAction,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createMenuItem = spec => asRaw('menuitem', menuItemSchema, spec);\n\n const nestedMenuItemSchema = objOf([\n type,\n getSubmenuItems,\n onSetup,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createNestedMenuItem = spec => asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n\n const toggleMenuItemSchema = objOf([\n type,\n optionalIcon,\n active,\n onSetup,\n onAction\n ].concat(commonMenuItemFields));\n const createToggleMenuItem = spec => asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n\n const detectSize = (comp, margin, selectorClass) => {\n const descendants$1 = descendants(comp.element, '.' + selectorClass);\n if (descendants$1.length > 0) {\n const columnLength = findIndex$1(descendants$1, c => {\n const thisTop = c.dom.getBoundingClientRect().top;\n const 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\n const namedEvents = (name, handlers) => derive$1([config(name, handlers)]);\n const unnamedEvents = handlers => namedEvents(generate$6('unnamed-events'), handlers);\n const SimpleBehaviours = {\n namedEvents,\n unnamedEvents\n };\n\n const ExclusivityChannel = generate$6('tooltip.exclusive');\n const ShowTooltipEvent = generate$6('tooltip.show');\n const HideTooltipEvent = generate$6('tooltip.hide');\n\n const hideAllExclusive = (component, _tConfig, _tState) => {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n const setComponents = (component, tConfig, tState, specs) => {\n tState.getTooltip().each(tooltip => {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n\n const events$9 = (tooltipConfig, state) => {\n const hide = comp => {\n state.getTooltip().each(p => {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n const show = comp => {\n if (!state.isShowing()) {\n hideAllExclusive(comp);\n const sink = tooltipConfig.lazySink(comp).getOrDie();\n const popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [\n run$1(mouseover(), _ => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), _ => {\n emit(comp, HideTooltipEvent);\n })\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, { anchor: tooltipConfig.anchor(comp) });\n }\n };\n return derive$2(flatten([\n [\n run$1(ShowTooltipEvent, comp => {\n state.resetTimer(() => {\n show(comp);\n }, tooltipConfig.delay);\n }),\n run$1(HideTooltipEvent, comp => {\n state.resetTimer(() => {\n hide(comp);\n }, tooltipConfig.delay);\n }),\n run$1(receive(), (comp, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }),\n runOnDetached(comp => {\n hide(comp);\n })\n ],\n tooltipConfig.mode === 'normal' ? [\n run$1(focusin(), comp => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(postBlur(), comp => {\n emit(comp, HideTooltipEvent);\n }),\n run$1(mouseover(), comp => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ] : [\n run$1(highlight$1(), (comp, _se) => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(dehighlight$1(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ]\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$9\n });\n\n var TooltippingSchema = [\n required$1('lazySink'),\n required$1('tooltipDom'),\n defaulted('exclusive', true),\n defaulted('tooltipComponents', []),\n defaulted('delay', 300),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight'\n ]),\n defaulted('anchor', comp => ({\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n }\n })),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n const init$b = () => {\n const timer = value$2();\n const popup = value$2();\n const clearTimer = () => {\n timer.on(clearTimeout);\n };\n const resetTimer = (f, delay) => {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n const 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,\n resetTimer,\n readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$b\n });\n\n const Tooltipping = create$3({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n const escape = text => text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n const ReadOnlyChannel = 'silver.readonly';\n const ReadOnlyDataSchema = objOf([requiredBoolean('readonly')]);\n const broadcastReadonly = (uiComponents, readonly) => {\n const outerContainer = uiComponents.outerContainer;\n const target = outerContainer.element;\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], { target });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], { target });\n }\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], { readonly });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], { readonly });\n };\n const setupReadonlyModeSwitch = (editor, uiComponents) => {\n editor.on('init', () => {\n if (editor.mode.isReadOnly()) {\n broadcastReadonly(uiComponents, true);\n }\n });\n editor.on('SwitchMode', () => broadcastReadonly(uiComponents, editor.mode.isReadOnly()));\n if (isReadOnly(editor)) {\n editor.mode.set('readonly');\n }\n };\n const receivingConfig = () => Receiving.config({\n channels: {\n [ReadOnlyChannel]: {\n schema: ReadOnlyDataSchema,\n onReceive: (comp, data) => {\n Disabling.set(comp, data.readonly);\n }\n }\n }\n });\n\n const item = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n const button = disabled => Disabling.config({ disabled });\n const splitButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n const toolbarButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n const DisablingConfigs = {\n item,\n button,\n splitButton,\n toolbarButton\n };\n\n const runWithApi = (info, comp) => {\n const api = info.getApi(comp);\n return f => {\n f(api);\n };\n };\n const onControlAttached = (info, editorOffCell) => runOnAttached(comp => {\n const run = runWithApi(info, comp);\n run(api => {\n const onDestroy = info.onSetup(api);\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n const onControlDetached = (getApi, editorOffCell) => runOnDetached(comp => runWithApi(getApi, comp)(editorOffCell.get()));\n\n const onMenuItemExecute = (info, itemResponse) => runOnExecute$1((comp, simulatedEvent) => {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n if (comp.getSystem().isConnected()) {\n emit(comp, sandboxClose());\n }\n simulatedEvent.stop();\n }\n });\n const menuItemEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ]\n };\n\n const componentRenderPipeline = cat;\n const renderCommonItem = (spec, structure, itemResponse, providersbackstage) => {\n const 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([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(() => !spec.enabled || providersbackstage.isDisabled()),\n receivingConfig(),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n const buildData = source => ({\n value: source.value,\n meta: {\n text: source.text.getOr(''),\n ...source.meta\n }\n });\n\n const convertText = source => {\n const isMac = global$5.os.isMacOS() || global$5.os.isiOS();\n const mac = {\n alt: '\\u2325',\n ctrl: '\\u2303',\n shift: '\\u21E7',\n meta: '\\u2318',\n access: '\\u2303\\u2325'\n };\n const other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n const replace = isMac ? mac : other;\n const shortcut = source.split('+');\n const updated = map$2(shortcut, segment => {\n const search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return isMac ? updated.join('') : updated.join('+');\n };\n\n const renderIcon$1 = (name, icons, classes = [iconClass]) => render$3(name, {\n tag: 'div',\n classes\n }, icons);\n const renderText = text => ({\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text$1(global$8.translate(text))]\n });\n const renderHtml = (html, classes) => ({\n dom: {\n tag: 'div',\n classes,\n innerHtml: html\n }\n });\n const renderStyledText = (style, text) => ({\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$8.translate(text))]\n }]\n });\n const renderShortcut = shortcut => ({\n dom: {\n tag: 'div',\n classes: [accessoryClass]\n },\n components: [text$1(convertText(shortcut))]\n });\n const renderCheckmark = icons => renderIcon$1('checkmark', icons, [checkmarkClass]);\n const renderSubmenuCaret = icons => renderIcon$1('chevron-right', icons, [caretClass]);\n const renderDownwardsCaret = icons => renderIcon$1('chevron-down', icons, [caretClass]);\n const renderContainer = (container, components) => {\n const directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n const alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n const getValignClass = () => {\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: [\n containerClass,\n directionClass,\n alignClass,\n getValignClass()\n ]\n },\n components\n };\n };\n const renderImage = (src, classes, alt) => ({\n dom: {\n tag: 'img',\n classes,\n attributes: {\n src,\n alt: alt.getOr('')\n }\n }\n });\n\n const renderColorStructure = (item, providerBackstage, fallbackIcon) => {\n const colorPickerCommand = 'custom';\n const removeColorCommand = 'remove';\n const itemText = item.ariaLabel;\n const itemValue = item.value;\n const iconSvg = item.iconContent.map(name => getOr(name, providerBackstage.icons, fallbackIcon));\n const getDom = () => {\n const common = colorClass;\n const icon = iconSvg.getOr('');\n const attributes = itemText.map(text => ({ title: providerBackstage.translate(text) })).getOr({});\n const baseDom = {\n tag: 'div',\n attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return {\n ...baseDom,\n tag: 'button',\n classes: [\n ...baseDom.classes,\n 'tox-swatches__picker-btn'\n ],\n innerHtml: icon\n };\n } else if (itemValue === removeColorCommand) {\n return {\n ...baseDom,\n classes: [\n ...baseDom.classes,\n 'tox-swatch--remove'\n ],\n innerHtml: icon\n };\n } else {\n return {\n ...baseDom,\n attributes: {\n ...baseDom.attributes,\n 'data-mce-color': itemValue\n },\n styles: { 'background-color': itemValue }\n };\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n const renderItemDomStructure = ariaLabel => {\n const domTitle = ariaLabel.map(label => ({ attributes: { title: global$8.translate(label) } })).getOr({});\n return {\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ],\n ...domTitle\n };\n };\n const renderNormalItemStructure = (info, providersBackstage, renderIcons, fallbackIcon) => {\n const iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n const renderIcon = iconName => render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n const renderEmptyIcon = () => Optional.some({ dom: iconSpec });\n const leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n const checkmark = info.checkMark;\n const textRender = Optional.from(info.meta).fold(() => renderText, meta => has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText);\n const content = info.htmlContent.fold(() => info.textContent.map(textRender), html => Optional.some(renderHtml(html, [textClass])));\n const menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n checkmark,\n info.caret\n ]\n };\n return menuItem;\n };\n const renderItemStructure = (info, providersBackstage, renderIcons, fallbackIcon = Optional.none()) => {\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n\n const tooltipBehaviour = (meta, sharedBackstage) => get$g(meta, 'tooltipWorker').map(tooltipWorker => [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: comp => ({\n type: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable$1 }\n }),\n mode: 'follow-highlight',\n onShow: (component, _tooltip) => {\n tooltipWorker(elm => {\n Tooltipping.setComponents(component, [external$1({ element: SugarElement.fromDom(elm) })]);\n });\n }\n })]).getOr([]);\n const encodeText = text => global$7.DOM.encode(text);\n const replaceText = (text, matchText) => {\n const translated = global$8.translate(text);\n const encoded = encodeText(translated);\n if (matchText.length > 0) {\n const escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, match => `<span class=\"tox-autocompleter-highlight\">${ match }</span>`);\n } else {\n return encoded;\n }\n };\n const renderAutocompleteItem = (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons = true) => {\n const structure = renderItemStructure({\n presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(text => replaceText(text, matchText)) : 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 enabled: spec.enabled,\n getApi: constant$1({}),\n onAction: _api => onItemValueHandler(spec.value, spec.meta),\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n const render$2 = (items, extras) => map$2(items, 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 const shouldHighlight = item.name.exists(name => contains$2(extras.cardText.highlightOn, name));\n const matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n const renderCardMenuItem = (spec, itemResponse, sharedBackstage, extras) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => {\n Disabling.set(component, !state);\n each$1(descendants(component.element, '*'), elm => {\n component.getSystem().getByDom(elm).each(comp => {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, !state);\n }\n });\n });\n }\n });\n const structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n containerRowClass\n ]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n data: buildData({\n text: Optional.none(),\n ...spec\n }),\n enabled: spec.enabled,\n 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\n const renderChoiceItem = (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n 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 enabled: spec.enabled,\n getApi,\n onAction: _api => onItemValueHandler(spec.value),\n onSetup: 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\n const parts$f = generate$3(owner$2(), parts$h());\n\n const hexColour = value => ({ value });\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n const isHexString = hex => shorthandRegex.test(hex) || longformRegex.test(hex);\n const normalizeHex = hex => removeLeading(hex, '#').toUpperCase();\n const fromString$1 = hex => isHexString(hex) ? Optional.some({ value: normalizeHex(hex) }) : Optional.none();\n const getLongForm = hex => {\n const hexString = hex.value.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);\n return { value: hexString };\n };\n const extractValues = hex => {\n const longForm = getLongForm(hex);\n const splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n const toHex = component => {\n const hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n const fromRgba = rgbaColour => {\n const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n const min = Math.min;\n const max = Math.max;\n const round$1 = Math.round;\n const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\\s*$/i;\n const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?(?:\\.\\d+)?)\\s*\\)\\s*$/i;\n const rgbaColour = (red, green, blue, alpha) => ({\n red,\n green,\n blue,\n alpha\n });\n const isRgbaComponent = value => {\n const num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n const fromHsv = hsv => {\n let r;\n let g;\n let b;\n const hue = (hsv.hue || 0) % 360;\n let saturation = hsv.saturation / 100;\n let 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 const side = hue / 60;\n const chroma = brightness * saturation;\n const x = chroma * (1 - Math.abs(side % 2 - 1));\n const 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 const fromHex = hexColour => {\n const result = extractValues(hexColour);\n const red = parseInt(result[1], 16);\n const green = parseInt(result[2], 16);\n const blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n const fromStringValues = (red, green, blue, alpha) => {\n const r = parseInt(red, 10);\n const g = parseInt(green, 10);\n const b = parseInt(blue, 10);\n const a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n const fromString = rgbaString => {\n if (rgbaString === 'transparent') {\n return Optional.some(rgbaColour(0, 0, 0, 0));\n }\n const rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n const 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 const toString = rgba => `rgba(${ rgba.red },${ rgba.green },${ rgba.blue },${ rgba.alpha })`;\n const red = rgbaColour(255, 0, 0, 1);\n\n const fireSkinLoaded$1 = editor => editor.dispatch('SkinLoaded');\n const fireSkinLoadError$1 = (editor, error) => editor.dispatch('SkinLoadError', error);\n const fireResizeEditor = editor => editor.dispatch('ResizeEditor');\n const fireResizeContent = (editor, e) => editor.dispatch('ResizeContent', e);\n const fireScrollContent = (editor, e) => editor.dispatch('ScrollContent', e);\n const fireTextColorChange = (editor, data) => editor.dispatch('TextColorChange', data);\n\n const hsvColour = (hue, saturation, value) => ({\n hue,\n saturation,\n value\n });\n const fromRgb = rgbaColour => {\n let h = 0;\n let s = 0;\n let v = 0;\n const r = rgbaColour.red / 255;\n const g = rgbaColour.green / 255;\n const b = rgbaColour.blue / 255;\n const minRGB = Math.min(r, Math.min(g, b));\n const maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n const 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\n const hexToHsv = hex => fromRgb(fromHex(hex));\n const hsvToHex = hsv => fromRgba(fromHsv(hsv));\n const anyToHex = color => fromString$1(color).orThunk(() => fromString(color).map(fromRgba)).getOrThunk(() => {\n const canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n const 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 const rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n const r = rgba[0];\n const g = rgba[1];\n const b = rgba[2];\n const a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n const storageName = 'tinymce-custom-colors';\n var ColorCache = (max = 10) => {\n const storageString = global$4.getItem(storageName);\n const localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n const prune = list => {\n const diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n const cache = prune(localstorage);\n const add = key => {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$4.setItem(storageName, JSON.stringify(cache));\n };\n const remove = idx => {\n cache.splice(idx, 1);\n };\n const state = () => cache.slice(0);\n return {\n add,\n state\n };\n };\n\n const colorCache = ColorCache(10);\n const calcCols = colors => Math.max(5, Math.ceil(Math.sqrt(colors)));\n const mapColors = colorMap => {\n const colors = [];\n for (let 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 const option$1 = name => editor => editor.options.get(name);\n const register$d = editor => {\n const registerOption = editor.options.register;\n registerOption('color_map', {\n processor: value => {\n if (isArrayOf(value, isString)) {\n return {\n value: mapColors(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of strings.'\n };\n }\n },\n default: [\n '#BFEDD2',\n 'Light Green',\n '#FBEEB8',\n 'Light Yellow',\n '#F8CAC6',\n 'Light Red',\n '#ECCAFA',\n 'Light Purple',\n '#C2E0F4',\n 'Light Blue',\n '#2DC26B',\n 'Green',\n '#F1C40F',\n 'Yellow',\n '#E03E2D',\n 'Red',\n '#B96AD9',\n 'Purple',\n '#3598DB',\n 'Blue',\n '#169179',\n 'Dark Turquoise',\n '#E67E23',\n 'Orange',\n '#BA372A',\n 'Dark Red',\n '#843FA1',\n 'Dark Purple',\n '#236FA1',\n 'Dark Blue',\n '#ECF0F1',\n 'Light Gray',\n '#CED4D9',\n 'Medium Gray',\n '#95A5A6',\n 'Gray',\n '#7E8C8D',\n 'Dark Gray',\n '#34495E',\n 'Navy Blue',\n '#000000',\n 'Black',\n '#ffffff',\n 'White'\n ]\n });\n registerOption('color_cols', {\n processor: 'number',\n default: calcCols(getColors$2(editor).length)\n });\n registerOption('custom_colors', {\n processor: 'boolean',\n default: true\n });\n };\n const getColorCols$1 = option$1('color_cols');\n const hasCustomColors$1 = option$1('custom_colors');\n const getColors$2 = option$1('color_map');\n const getCurrentColors = () => map$2(colorCache.state(), color => ({\n type: 'choiceitem',\n text: color,\n value: color\n }));\n const addColor = color => {\n colorCache.add(color);\n };\n\n const fallbackColor = '#000000';\n const getCurrentColor = (editor, format) => {\n let color;\n editor.dom.getParents(editor.selection.getStart(), elm => {\n let 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 const applyFormat = (editor, format, value) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.apply(format, { value });\n editor.nodeChanged();\n });\n };\n const removeFormat = (editor, format) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.remove(format, { value: null }, null, true);\n editor.nodeChanged();\n });\n };\n const registerCommands = editor => {\n editor.addCommand('mceApplyTextcolor', (format, value) => {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', format => {\n removeFormat(editor, format);\n });\n };\n const getAdditionalColors = hasCustom => {\n const type = 'choiceitem';\n const remove = {\n type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n const custom = {\n type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [\n remove,\n custom\n ] : [remove];\n };\n const applyColor = (editor, format, value, onChoice) => {\n if (value === 'custom') {\n const dialog = colorPickerDialog(editor);\n dialog(colorOpt => {\n colorOpt.each(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 const getColors$1 = (colors, hasCustom) => colors.concat(getCurrentColors().concat(getAdditionalColors(hasCustom)));\n const getFetch$1 = (colors, hasCustom) => callback => {\n callback(getColors$1(colors, hasCustom));\n };\n const setIconColor = (splitButtonApi, name, newColor) => {\n const id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(id, newColor);\n };\n const registerTextColorButton = (editor, name, format, tooltip, lastColor) => {\n editor.ui.registry.addSplitButton(name, {\n tooltip,\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: value => {\n const optCurrentRgb = getCurrentColor(editor, format);\n return optCurrentRgb.bind(currentRgb => fromString(currentRgb).map(rgba => {\n const currentHex = fromRgba(rgba).value;\n return contains$1(value.toLowerCase(), currentHex);\n })).getOr(false);\n },\n columns: getColorCols$1(editor),\n fetch: getFetch$1(getColors$2(editor), hasCustomColors$1(editor)),\n onAction: _splitButtonApi => {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: (_splitButtonApi, value) => {\n applyColor(editor, format, value, newColor => {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name,\n color: newColor\n });\n });\n },\n onSetup: splitButtonApi => {\n setIconColor(splitButtonApi, name, lastColor.get());\n const handler = e => {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n editor.on('TextColorChange', handler);\n return () => {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n const registerTextColorMenuItem = (editor, name, format, text) => {\n editor.ui.registry.addNestedMenuItem(name, {\n text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n getSubmenuItems: () => [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: data => {\n applyColor(editor, format, data.value, noop);\n }\n }]\n });\n };\n const colorPickerDialog = editor => (callback, value) => {\n let isValid = false;\n const onSubmit = api => {\n const data = api.getData();\n const hex = data.colorpicker;\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate([\n 'Invalid hex color code: {0}',\n hex\n ]));\n }\n };\n const onAction = (_api, details) => {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n const initialData = { colorpicker: value };\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 {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData,\n onAction,\n onSubmit,\n onClose: noop,\n onCancel: () => {\n callback(Optional.none());\n }\n });\n };\n const register$c = editor => {\n registerCommands(editor);\n const lastForeColor = Cell(fallbackColor);\n const 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\n const createPartialChoiceMenu = (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) => {\n const hasIcons = menuHasIcons(items);\n const presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n const alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, presets);\n };\n const createChoiceItems = (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) => cat(map$2(items, item => {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, d => Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage, menuHasIcons(items))));\n } else {\n return Optional.none();\n }\n }));\n\n const deriveMenuMovement = (columns, presets) => {\n const 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 const rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass\n };\n }\n };\n const deriveCollectionMovement = (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\n const renderColorSwatchItem = (spec, backstage) => {\n const items = getColorItems(spec, backstage);\n const columns = backstage.colorinput.getColorCols();\n const presets = 'color';\n const menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onAction({ value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, backstage.shared.providers);\n const widgetSpec = {\n ...menuSpec,\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets)\n };\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n const getColorItems = (spec, backstage) => {\n const useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(() => getColors$1(backstage.colorinput.getColors(), useCustomColors), colors => colors.concat(getAdditionalColors(useCustomColors)));\n };\n\n const cellOverEvent = generate$6('cell-over');\n const cellExecuteEvent = generate$6('cell-execute');\n const makeCell = (row, col, labelId) => {\n const emitCellOver = c => emitWith(c, cellOverEvent, {\n row,\n col\n });\n const emitExecute = c => emitWith(c, cellExecuteEvent, {\n row,\n col\n });\n const onClick = (c, se) => {\n se.stop();\n emitExecute(c);\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: {\n role: 'button',\n ['aria-labelledby']: labelId\n }\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run$1(mouseover(), Focusing.focus),\n run$1(execute$5(), emitExecute),\n run$1(click(), onClick),\n run$1(tap(), onClick)\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n const makeCells = (labelId, numRows, numCols) => {\n const cells = [];\n for (let i = 0; i < numRows; i++) {\n const row = [];\n for (let j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n cells.push(row);\n }\n return cells;\n };\n const selectCells = (cells, selectedRow, selectedColumn, numRows, numColumns) => {\n for (let i = 0; i < numRows; i++) {\n for (let j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n const makeComponents = cells => bind$3(cells, cellRow => map$2(cellRow, premade));\n const makeLabelText = (row, col) => text$1(`${ col }x${ row }`);\n const renderInsertTableMenuItem = spec => {\n const numRows = 10;\n const numColumns = 10;\n const sizeLabelId = generate$6('size-label');\n const cells = makeCells(sizeLabelId, numRows, numColumns);\n const emptyLabelText = makeLabelText(0, 0);\n const memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: { id: sizeLabelId }\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\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([\n config('insert-table-picker', [\n runOnAttached(c => {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }),\n runWithTarget(cellOverEvent, (c, t, e) => {\n const {row, col} = e.event;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }),\n runWithTarget(cellExecuteEvent, (c, _, e) => {\n const {row, col} = e.event;\n spec.onAction({\n numRows: row + 1,\n numColumns: col + 1\n });\n emit(c, sandboxClose());\n })\n ]),\n Keying.config({\n initSize: {\n numRows,\n numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })\n ])\n })]\n };\n };\n\n const fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n const renderFancyMenuItem = (spec, backstage) => get$g(fancyMenuItems, spec.fancytype).map(render => render(spec, backstage));\n\n const renderNestedItem = (spec, itemResponse, providersBackstage, renderIcons = true, downwardsCaret = false) => {\n const caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const 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,\n enabled: spec.enabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderNormalItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const 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,\n enabled: spec.enabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderSeparatorItem = spec => ({\n type: 'separator',\n dom: {\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n },\n components: spec.text.map(text$1).toArray()\n });\n\n const renderToggleMenuItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const 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 enabled: spec.enabled,\n 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\n const autocomplete = renderAutocompleteItem;\n const separator$3 = renderSeparatorItem;\n const normal = renderNormalItem;\n const nested = renderNestedItem;\n const toggle$1 = renderToggleMenuItem;\n const fancy = renderFancyMenuItem;\n const card = renderCardMenuItem;\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n const createMenuItemFromBridge = (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) => {\n const providersBackstage = backstage.shared.providers;\n const parseForHorizontalMenu = menuitem => !isHorizontalMenu ? menuitem : {\n ...menuitem,\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, d => Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, d => Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu)));\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, d => Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, d => fancy(parseForHorizontalMenu(d), backstage));\n default: {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n const createAutocompleteItems = (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) => {\n const renderText = columns === 1;\n const renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, item => {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, d => Optional.some(card({\n ...d,\n onAction: 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,\n highlightOn\n }\n })));\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, d => Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons)));\n }\n }));\n };\n const createPartialMenu = (value, items, itemResponse, backstage, isHorizontalMenu) => {\n const hasIcons = menuHasIcons(items);\n const alloyItems = cat(map$2(items, item => {\n const itemHasIcon = i => isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n const createItem = i => createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem({\n ...item,\n enabled: false\n });\n } else {\n return createItem(item);\n }\n }));\n const createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, 'normal');\n };\n const createTieredDataFrom = partialMenu => tieredMenu.singleData(partialMenu.value, partialMenu);\n const createMenuFrom = (partialMenu, columns, focusMode, presets) => {\n const focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom$2();\n const movement = deriveMenuMovement(columns, presets);\n const 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,\n fakeFocus: focusMode === FocusMode.ContentFocus,\n focusManager,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached((comp, _se) => {\n detectSize(comp, 4, menuMarkers.item).each(({numColumns, numRows}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n\n const getAutocompleterRange = (dom, initRange) => {\n return detect(SugarElement.fromDom(initRange.startContainer)).map(elm => {\n const range = dom.createRng();\n range.selectNode(elm.dom);\n return range;\n });\n };\n const register$b = (editor, sharedBackstage) => {\n const processingAction = Cell(false);\n const activeState = Cell(false);\n const 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(), () => cancelIfNecessary())])]),\n lazySink: sharedBackstage.getSink\n }));\n const isMenuOpen = () => InlineView.isOpen(autocompleter);\n const isActive = activeState.get;\n const hideIfNecessary = () => {\n if (isMenuOpen()) {\n InlineView.hide(autocompleter);\n }\n };\n const cancelIfNecessary = () => editor.execCommand('mceAutocompleterClose');\n const getCombinedItems = matches => {\n const columns = findMap(matches, m => Optional.from(m.columns)).getOr(1);\n return bind$3(matches, match => {\n const choices = match.items;\n return createAutocompleteItems(choices, match.matchText, (itemValue, itemMeta) => {\n const nr = editor.selection.getRng();\n getAutocompleterRange(editor.dom, nr).each(range => {\n const autocompleterApi = {\n hide: () => cancelIfNecessary(),\n reload: fetchOptions => {\n hideIfNecessary();\n editor.execCommand('mceAutocompleterReload', false, { 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 const display = (lookupData, items) => {\n findIn(SugarElement.fromDom(editor.getBody())).each(element => {\n const columns = findMap(lookupData, ld => Optional.from(ld.columns)).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(element)\n }\n });\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n });\n };\n const updateDisplay = lookupData => {\n const combinedItems = getCombinedItems(lookupData);\n if (combinedItems.length > 0) {\n display(lookupData, combinedItems);\n } else {\n hideIfNecessary();\n }\n };\n editor.on('AutocompleterStart', ({lookupData}) => {\n activeState.set(true);\n processingAction.set(false);\n updateDisplay(lookupData);\n });\n editor.on('AutocompleterUpdate', ({lookupData}) => updateDisplay(lookupData));\n editor.on('AutocompleterEnd', () => {\n hideIfNecessary();\n activeState.set(false);\n processingAction.set(false);\n });\n const autocompleterUiApi = {\n cancelIfNecessary,\n isMenuOpen,\n isActive,\n isProcessingAction: processingAction.get,\n getView: () => InlineView.getContent(autocompleter)\n };\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n };\n const Autocompleter = { register: register$b };\n\n const closest = (scope, selector, isRoot) => closest$1(scope, selector, isRoot).isSome();\n\n const DelayedFunction = (fun, delay) => {\n let ref = null;\n const schedule = (...args) => {\n ref = setTimeout(() => {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n const cancel = () => {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel,\n schedule\n };\n };\n\n const SIGNIFICANT_MOVE = 5;\n const LONGPRESS_DELAY = 400;\n const getTouch = event => {\n const 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 const isFarEnough = (touch, data) => {\n const distX = Math.abs(touch.clientX - data.x);\n const distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n const monitor = settings => {\n const startData = value$2();\n const longpressFired = Cell(false);\n const longpress$1 = DelayedFunction(event => {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n const handleTouchstart = event => {\n getTouch(event).each(touch => {\n longpress$1.cancel();\n const 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 const handleTouchmove = event => {\n longpress$1.cancel();\n getTouch(event).each(touch => {\n startData.on(data => {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.none();\n };\n const handleTouchend = event => {\n longpress$1.cancel();\n const isSame = data => eq(data.target, event.target);\n return startData.get().filter(isSame).map(_data => {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n const handlers = wrapAll([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n const fireIfReady = (event, type) => get$g(handlers, type).bind(handler => handler(event));\n return { fireIfReady };\n };\n\n const isDangerous = event => {\n const keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains$2([\n 'input',\n 'textarea'\n ], name$3(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n const setup$d = (container, rawSettings) => {\n const settings = {\n stopBackspace: true,\n ...rawSettings\n };\n const pointerEvents = [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n const tapEvent = monitor(settings);\n const simpleEvents = map$2(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'transitioncancel',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), type => bind(container, type, event => {\n tapEvent.fireIfReady(event, type).each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n }));\n const pasteTimeout = value$2();\n const onPaste = bind(container, 'paste', event => {\n tapEvent.fireIfReady(event, 'paste').each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(setTimeout(() => {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n const onKeydown = bind(container, 'keydown', event => {\n const stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && isDangerous(event)) {\n event.prevent();\n }\n });\n const onFocusIn = bind(container, 'focusin', event => {\n const stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n const focusoutTimeout = value$2();\n const onFocusOut = bind(container, 'focusout', event => {\n const stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(setTimeout(() => {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n const unbind = () => {\n each$1(simpleEvents, 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 { unbind };\n };\n\n const derive = (rawEvent, rawTarget) => {\n const source = get$g(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n\n const fromSource = (event, source) => {\n const stopper = Cell(false);\n const cutter = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n const cut = () => {\n cutter.set(true);\n };\n return {\n stop,\n cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event,\n setSource: source.set,\n getSource: source.get\n };\n };\n const fromExternal = event => {\n const stopper = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n return {\n stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: never,\n event,\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n const adt$1 = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n const doTriggerHandler = (lookup, eventType, rawEvent, target, source, logger) => {\n const handler = lookup(eventType, target);\n const simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(() => {\n logger.logEventNoHandlers(eventType, target);\n return adt$1.complete();\n }, handlerInfo => {\n const descHandler = handlerInfo.descHandler;\n const 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(() => {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, parent => {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.resume(parent);\n });\n }\n });\n };\n const doTriggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, source, logger) => doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(always, parent => doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger), never);\n const triggerHandler = (lookup, eventType, rawEvent, target, logger) => {\n const source = derive(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n const broadcast = (listeners, rawEvent, _logger) => {\n const simulatedEvent = fromExternal(rawEvent);\n each$1(listeners, listener => {\n const descHandler = listener.descHandler;\n const handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n const triggerUntilStopped = (lookup, eventType, rawEvent, logger) => triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n const triggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, logger) => {\n const source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n const eventHandler = (element, descHandler) => ({\n element,\n descHandler\n });\n const broadcastHandler = (id, handler) => ({\n id,\n descHandler: handler\n });\n const EventRegistry = () => {\n const registry = {};\n const registerId = (extraArgs, id, events) => {\n each(events, (v, k) => {\n const handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n const findHandler = (handlers, elem) => read$1(elem).bind(id => get$g(handlers, id)).map(descHandler => eventHandler(elem, descHandler));\n const filterByType = type => get$g(registry, type).map(handlers => mapToArray(handlers, (f, id) => broadcastHandler(id, f))).getOr([]);\n const find = (isAboveRoot, type, target) => get$g(registry, type).bind(handlers => closest$4(target, elem => findHandler(handlers, elem), isAboveRoot));\n const unregisterId = id => {\n each(registry, (handlersById, _eventName) => {\n if (has$2(handlersById, id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId,\n unregisterId,\n filterByType,\n find\n };\n };\n\n const Registry = () => {\n const events = EventRegistry();\n const components = {};\n const readOrTag = component => {\n const elem = component.element;\n return read$1(elem).getOrThunk(() => write('uid-', component.element));\n };\n const failOnDuplicate = (component, tagId) => {\n const 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 const register = component => {\n const tagId = readOrTag(component);\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n const extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n const unregister = component => {\n read$1(component.element).each(tagId => {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n const filter = type => events.filterByType(type);\n const find = (isAboveRoot, type, target) => events.find(isAboveRoot, type, target);\n const getById = id => get$g(components, id);\n return {\n find,\n filter,\n register,\n unregister,\n getById\n };\n };\n\n const factory$j = detail => {\n const {attributes, ...domWithoutAttributes} = detail.dom;\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation',\n ...attributes\n },\n ...domWithoutAttributes\n },\n components: detail.components,\n behaviours: get$3(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n const Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [\n defaulted('components', []),\n field('containerBehaviours', []),\n defaulted('events', {}),\n defaulted('domModification', {}),\n defaulted('eventOrder', {})\n ]\n });\n\n const takeover = root => {\n const isAboveRoot = el => parent(root.element).fold(always, parent => eq(el, parent));\n const registry = Registry();\n const lookup = (eventName, target) => registry.find(isAboveRoot, eventName, target);\n const domEvents = setup$d(root.element, {\n triggerEvent: (eventName, event) => {\n return monitorEvent(eventName, event.target, logger => triggerUntilStopped(lookup, eventName, event, logger));\n }\n });\n const systemApi = {\n debugInfo: constant$1('real'),\n triggerEvent: (eventName, target, data) => {\n monitorEvent(eventName, target, logger => triggerOnUntilStopped(lookup, eventName, data, target, logger));\n },\n triggerFocus: (target, originator) => {\n read$1(target).fold(() => {\n focus$3(target);\n }, _alloyId => {\n monitorEvent(focus$4(), target, logger => {\n triggerHandler(lookup, focus$4(), {\n originator,\n kill: noop,\n prevent: noop,\n target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: (comp, simulatedEvent) => {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: uid => {\n return getByUid(uid);\n },\n getByDom: elem => {\n return getByDom(elem);\n },\n build: build$1,\n buildOrPatch: buildOrPatch,\n addToGui: c => {\n add(c);\n },\n removeFromGui: c => {\n remove(c);\n },\n addToWorld: c => {\n addToWorld(c);\n },\n removeFromWorld: c => {\n removeFromWorld(c);\n },\n broadcast: message => {\n broadcast$1(message);\n },\n broadcastOn: (channels, message) => {\n broadcastOn(channels, message);\n },\n broadcastEvent: (eventName, event) => {\n broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n const addToWorld = component => {\n component.connect(systemApi);\n if (!isText(component.element)) {\n registry.register(component);\n each$1(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, { target: component.element });\n }\n };\n const removeFromWorld = component => {\n if (!isText(component.element)) {\n each$1(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n const add = component => {\n attach(root, component);\n };\n const remove = component => {\n detach(component);\n };\n const destroy = () => {\n domEvents.unbind();\n remove$5(root.element);\n };\n const broadcastData = data => {\n const receivers = registry.filter(receive());\n each$1(receivers, receiver => {\n const descHandler = receiver.descHandler;\n const handler = getCurried(descHandler);\n handler(data);\n });\n };\n const broadcast$1 = message => {\n broadcastData({\n universal: true,\n data: message\n });\n };\n const broadcastOn = (channels, message) => {\n broadcastData({\n universal: false,\n channels,\n data: message\n });\n };\n const broadcastEvent = (eventName, event) => {\n const listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n const getByUid = uid => registry.getById(uid).fold(() => Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.')), Result.value);\n const getByDom = elem => {\n const uid = read$1(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root,\n element: root.element,\n destroy,\n add,\n remove,\n getByUid,\n getByDom,\n addToWorld,\n removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn,\n broadcastEvent\n };\n };\n\n const renderBar = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const schema$l = constant$1([\n defaulted('prefix', 'form-field'),\n field('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n const parts$e = constant$1([\n optional({\n schema: [required$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: spec => {\n const excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })\n ]);\n\n const factory$i = (detail, components, _spec, _externals) => {\n const behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: container => {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: field => {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: (field, value) => {\n Composing.getCurrent(field).each(current => {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n const events = derive$2([runOnAttached((component, _simulatedEvent) => {\n const ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(field => {\n const id = generate$6(detail.prefix);\n ps.label().each(label => {\n set$9(label.element, 'for', id);\n set$9(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(descriptor => {\n const descriptorId = generate$6(detail.prefix);\n set$9(descriptor.element, 'id', descriptorId);\n set$9(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n const apis = {\n getField: container => getPart(container, detail, 'field'),\n getLabel: container => getPart(container, detail, 'label')\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours,\n events,\n apis\n };\n };\n const FormField = composite({\n name: 'FormField',\n configFields: schema$l(),\n partFields: parts$e(),\n factory: factory$i,\n apis: {\n getField: (apis, comp) => apis.getField(comp),\n getLabel: (apis, comp) => apis.getLabel(comp)\n }\n });\n\n const exhibit$2 = (base, tabConfig) => 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\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n\n const Tabstopping = create$3({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n const renderFormFieldWith = (pLabel, pField, extraClasses, extraBehaviours) => {\n const spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n const renderFormField = (pLabel, pField) => renderFormFieldWith(pLabel, pField, [], []);\n const renderFormFieldSpecWith = (pLabel, pField, extraClasses, extraBehaviours) => ({\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n });\n const renderFormFieldDom = () => renderFormFieldDomWith([]);\n const renderFormFieldDomWith = extraClasses => ({\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n });\n const renderLabel$2 = (label, providersBackstage) => FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$1(providersBackstage.translate(label))]\n });\n\n const formChangeEvent = generate$6('form-component-change');\n const formCloseEvent = generate$6('form-close');\n const formCancelEvent = generate$6('form-cancel');\n const formActionEvent = generate$6('form-action');\n const formSubmitEvent = generate$6('form-submit');\n const formBlockEvent = generate$6('form-block');\n const formUnblockEvent = generate$6('form-unblock');\n const formTabChangeEvent = generate$6('form-tabchange');\n const formResizeEvent = generate$6('form-resize');\n\n const renderCollection = (spec, providersBackstage, initialData) => {\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const runOnItem = f => (comp, se) => {\n closest$1(se.event.target, '[data-collection-item-value]').each(target => {\n f(comp, se, target, get$f(target, 'data-collection-item-value'));\n });\n };\n const setContents = (comp, items) => {\n const htmlLines = map$2(items, item => {\n const itemText = global$8.translate(item.text);\n const textContent = spec.columns === 1 ? `<div class=\"tox-collection__item-label\">${ itemText }</div>` : '';\n const iconContent = `<div class=\"tox-collection__item-icon\">${ item.icon }</div>`;\n const mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n const ariaLabel = itemText.replace(/\\_| \\- |\\-/g, match => mapItemName[match]);\n const disabledClass = providersBackstage.isDisabled() ? ' tox-collection__item--state-disabled' : '';\n return `<div class=\"tox-collection__item${ disabledClass }\" tabindex=\"-1\" data-collection-item-value=\"${ global$3.encodeAllRaw(item.value) }\" title=\"${ ariaLabel }\" aria-label=\"${ ariaLabel }\">${ iconContent }${ textContent }</div>`;\n });\n const chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n const html = map$2(chunks, ch => `<div class=\"tox-collection__group\">${ ch.join('') }</div>`);\n set$6(comp.element, html.join(''));\n };\n const onClick = runOnItem((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 const collectionEvents = [\n run$1(mouseover(), runOnItem((comp, se, tgt) => {\n focus$3(tgt);\n })),\n run$1(click(), onClick),\n run$1(tap(), onClick),\n run$1(focusin(), runOnItem((comp, se, tgt) => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$2(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run$1(focusout(), runOnItem(comp => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$2(currentActive, activeClass);\n });\n })),\n runOnExecute$1(runOnItem((comp, se, tgt, itemValue) => {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n const iterCollectionItems = (comp, applyAttributes) => map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\n const 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: { sketch: identity },\n behaviours: derive$1([\n Disabling.config({\n disabled: providersBackstage.isDisabled,\n onDisabled: comp => {\n iterCollectionItems(comp, childElm => {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$9(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: comp => {\n iterCollectionItems(comp, childElm => {\n remove$2(childElm, 'tox-collection__item--state-disabled');\n remove$7(childElm, 'aria-disabled');\n });\n }\n }),\n receivingConfig(),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialData.getOr([])\n },\n onSetValue: (comp, items) => {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'collection-events'\n ]\n }\n });\n const extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n const schema$k = constant$1([\n option$3('data'),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('tag', 'input'),\n defaulted('inputClasses', []),\n onHandler('onSetValue'),\n defaulted('styles', {}),\n defaulted('eventOrder', {}),\n field('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted('selectOnFocus', true)\n ]);\n const focusBehaviours = detail => derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : component => {\n const input = component.element;\n const value = get$6(input);\n input.dom.setSelectionRange(0, value.length);\n }\n })]);\n const behaviours = detail => ({\n ...focusBehaviours(detail),\n ...augment(detail.inputBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n ...detail.data.map(data => ({ initialValue: data })).getOr({}),\n getValue: input => {\n return get$6(input.element);\n },\n setValue: (input, data) => {\n const current = get$6(input.element);\n if (current !== data) {\n set$5(input.element, data);\n }\n }\n },\n onSetValue: detail.onSetValue\n })])\n });\n const dom = detail => ({\n tag: detail.tag,\n attributes: {\n type: 'text',\n ...detail.inputAttributes\n },\n styles: detail.inputStyles,\n classes: detail.inputClasses\n });\n\n const factory$h = (detail, _spec) => ({\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n });\n const Input = single({\n name: 'Input',\n configFields: schema$k(),\n factory: factory$h\n });\n\n const nu$3 = baseFn => {\n let data = Optional.none();\n let callbacks = [];\n const map = f => nu$3(nCallback => {\n get(data => {\n nCallback(f(data));\n });\n });\n const get = nCallback => {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n const set = x => {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n const isReady = () => data.isSome();\n const run = cbs => {\n each$1(cbs, call);\n };\n const call = cb => {\n data.each(x => {\n setTimeout(() => {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get,\n map,\n isReady\n };\n };\n const pure$1 = a => nu$3(callback => {\n callback(a);\n });\n const LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n\n const errorReporter = err => {\n setTimeout(() => {\n throw err;\n }, 0);\n };\n const make$5 = run => {\n const get = callback => {\n run().then(callback, errorReporter);\n };\n const map = fab => {\n return make$5(() => run().then(fab));\n };\n const bind = aFutureB => {\n return make$5(() => run().then(v => aFutureB(v).toPromise()));\n };\n const anonBind = futureB => {\n return make$5(() => run().then(() => futureB.toPromise()));\n };\n const toLazy = () => {\n return LazyValue.nu(get);\n };\n const toCached = () => {\n let cache = null;\n return make$5(() => {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n const toPromise = run;\n return {\n map,\n bind,\n anonBind,\n toLazy,\n toCached,\n toPromise,\n get\n };\n };\n const nu$2 = baseFn => {\n return make$5(() => new Promise(baseFn));\n };\n const pure = a => {\n return make$5(() => Promise.resolve(a));\n };\n const Future = {\n nu: nu$2,\n pure\n };\n\n const ariaElements = [\n 'input',\n 'textarea'\n ];\n const isAriaElement = elem => {\n const name = name$3(elem);\n return contains$2(ariaElements, name);\n };\n const markValid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n const markInvalid = (component, invalidConfig, invalidState, text) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n const query = (component, invalidConfig, _invalidState) => invalidConfig.validator.fold(() => Future.pure(Result.value(true)), validatorInfo => validatorInfo.validate(component));\n const run = (component, invalidConfig, invalidState) => {\n invalidConfig.notify.each(notifyInfo => {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(valid => {\n if (component.getSystem().isConnected()) {\n return valid.fold(err => {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, 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 const isInvalid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n return has(elem, invalidConfig.invalidClass);\n };\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\n const events$8 = (invalidConfig, invalidState) => invalidConfig.validator.map(validatorInfo => derive$2([run$1(validatorInfo.onEvent, component => {\n run(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(component => {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []))).getOr({});\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n\n var InvalidateSchema = [\n required$1('invalidClass'),\n defaulted('getRoot', Optional.none),\n optionObjOf('notify', [\n defaulted('aria', 'alert'),\n defaulted('getContainer', Optional.none),\n defaulted('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n required$1('validate'),\n defaulted('onEvent', 'input'),\n defaulted('validateOnLoad', true)\n ])\n ];\n\n const Invalidating = create$3({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: validator => {\n return component => {\n const v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n const getCoupled = (component, coupleConfig, coupleState, name) => coupleState.getOrCreate(component, coupleConfig, name);\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled\n });\n\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n\n const init$a = () => {\n const coupled = {};\n const getOrCreate = (component, coupleConfig, name) => {\n const 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$g(coupled, name).getOrThunk(() => {\n const builder = get$g(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n const spec = builder(component);\n const built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n }\n };\n const readState = constant$1({});\n return nu$8({\n readState,\n getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n\n const Coupling = create$3({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n const suffix = constant$1('sink');\n const partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive$2([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n const getAnchor = (detail, component) => {\n const hotspot = detail.getHotspot(component).getOr(component);\n const type = 'hotspot';\n const overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(() => ({\n type,\n hotspot,\n overrides\n }), layouts => ({\n type,\n hotspot,\n overrides,\n layouts\n }));\n };\n const fetch = (detail, mapFetch, component) => {\n const fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n const openF = (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) => {\n const futureData = fetch(detail, mapFetch, component);\n const getLazySink = getSink(component, detail);\n return futureData.map(tdata => tdata.bind(data => Optional.from(tieredMenu.sketch({\n ...externals.menu(),\n uid: generate$5(''),\n data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: (tmenu, menu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, { anchor });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: (tmenu, item, submenu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, { anchor });\n each$1(submenuTriggers, st => {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: () => {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n }))));\n };\n const open = (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) => {\n const anchor = getAnchor(detail, hotspot);\n const processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(tdata => {\n tdata.fold(() => {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, data => {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n const close = (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) => {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n const togglePopup = (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) => {\n const sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n const showing = Sandboxing.isOpen(sandbox);\n const action = showing ? close : open;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n const matchWidth = (hotspot, container, useMinWidth) => {\n const menu = Composing.getCurrent(container).getOr(container);\n const buttonWidth = get$c(hotspot.element);\n if (useMinWidth) {\n set$8(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$7(menu.element, buttonWidth);\n }\n };\n const getSink = (anyInSystem, sinkDetail) => anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(internalSink => () => Result.value(internalSink)).getOrThunk(() => sinkDetail.lazySink.fold(() => () => Result.error(new Error('No internal sink is specified, nor could an external sink be found')), lazySinkFn => () => lazySinkFn(anyInSystem)));\n const doRepositionMenus = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n const makeSandbox$1 = (detail, hotspot, extras) => {\n const ariaControls = manager();\n const onOpen = (component, menu) => {\n const anchor = getAnchor(detail, hotspot);\n ariaControls.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 const onClose = (component, menu) => {\n ariaControls.unlink(hotspot.element);\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n const lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: {\n id: ariaControls.id,\n role: 'listbox'\n }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(hotspot, queryElem);\n },\n getAttachPoint: () => {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: sandbox => {\n return Sandboxing.getState(sandbox).bind(menu => Composing.getCurrent(menu));\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({ isExtraPart: never }),\n ...receivingChannel({ doReposition: doRepositionMenus })\n }\n })\n ])\n };\n };\n const repositionMenus = comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n const sandboxFields = () => [\n defaulted('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n\n const schema$j = constant$1([\n required$1('dom'),\n required$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n field('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n required$1('toggleClass'),\n defaulted('eventOrder', {}),\n option$3('lazySink'),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n option$3('role')\n ].concat(sandboxFields()));\n const parts$d = constant$1([\n external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: detail => {\n return { onExecute: detail.onExecute };\n }\n }),\n partType$1()\n ]);\n\n const factory$g = (detail, components, _spec, externals) => {\n const lookupAttr = attr => get$g(detail.dom, 'attributes').bind(attrs => get$g(attrs, attr));\n const switchToMenu = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup(detail, identity, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n const apis = {\n expand: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: comp => {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, identity, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n const triggerExecute = (comp, _se) => {\n emitExecute(comp);\n return Optional.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => Toggling.off(hotspot)\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: (comp, _se) => {\n if (Dropdown.isOpen(comp)) {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Optional.some(true);\n },\n onEscape: (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 }),\n Focusing.config({})\n ]),\n events: events$a(Optional.some(action)),\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n apis,\n domModification: {\n attributes: {\n 'aria-haspopup': 'true',\n ...detail.role.fold(() => ({}), role => ({ role })),\n ...detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {}\n }\n }\n };\n };\n const Dropdown = composite({\n name: 'Dropdown',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$g,\n apis: {\n open: (apis, comp) => apis.open(comp),\n expand: (apis, comp) => apis.expand(comp),\n close: (apis, comp) => apis.close(comp),\n isOpen: (apis, comp) => apis.isOpen(comp),\n repositionMenus: (apis, comp) => apis.repositionMenus(comp)\n }\n });\n\n const exhibit$1 = () => 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: { unselectable: 'on' }\n });\n const events$7 = () => 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\n const Unselecting = create$3({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n const renderPanelButton = (spec, sharedBackstage) => Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n DisablingConfigs.button(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })))),\n parts: { menu: part(false, 1, spec.presets) }\n });\n\n const colorInputChangeEvent = generate$6('color-input-change');\n const colorSwatchChangeEvent = generate$6('color-swatch-change');\n const colorPickerCancelEvent = generate$6('color-picker-cancel');\n const renderColorInput = (spec, sharedBackstage, colorInputBackstage, initialData) => {\n const pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n data: initialData,\n onSetValue: c => Invalidating.run(c).get(noop),\n inputBehaviours: derive$1([\n Disabling.config({ disabled: sharedBackstage.providers.isDisabled }),\n receivingConfig(),\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: comp => parentElement(comp.element),\n notify: {\n onValid: comp => {\n const val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: input => {\n const inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n const span = SugarElement.fromTag('span');\n set$8(span, 'background-color', inputValue);\n const res = getRaw(span, 'background-color').fold(() => Result.error('blah'), _ => Result.value(inputValue));\n return Future.pure(res);\n }\n }\n }\n })\n ]),\n selectOnFocus: false\n });\n const pLabel = spec.label.map(label => renderLabel$2(label, sharedBackstage.providers));\n const emitSwatchChange = (colorBit, value) => {\n emitWith(colorBit, colorSwatchChangeEvent, { value });\n };\n const onItemAction = (comp, value) => {\n memColorButton.getOpt(comp).each(colorBit => {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(valueOpt => {\n valueOpt.fold(() => emit(colorBit, colorPickerCancelEvent), 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 const memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: {\n onRtl: () => [\n southwest$2,\n southeast$2,\n south$2\n ],\n onLtr: () => [\n southeast$2,\n southwest$2,\n south$2\n ]\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(),\n presets: 'color',\n 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: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run$1(colorInputChangeEvent, (comp, se) => {\n memColorButton.getOpt(comp).each(colorButton => {\n set$8(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run$1(colorSwatchChangeEvent, (comp, se) => {\n FormField.getField(comp).each(field => {\n Representing.setValue(field, se.event.value);\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }),\n run$1(colorPickerCancelEvent, (comp, _se) => {\n FormField.getField(comp).each(_field => {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n const labelPart = optional({\n schema: [required$1('dom')],\n name: 'label'\n });\n const edgePart = name => optional({\n name: '' + name + '-edge',\n overrides: detail => {\n const action = detail.model.manager.edgeActions[name];\n return action.fold(() => ({}), a => ({\n events: derive$2([\n runActionExtra(touchstart(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousedown(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousemove(), (comp, se, det) => {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])\n ])\n }));\n }\n });\n const tlEdgePart = edgePart('top-left');\n const tedgePart = edgePart('top');\n const trEdgePart = edgePart('top-right');\n const redgePart = edgePart('right');\n const brEdgePart = edgePart('bottom-right');\n const bedgePart = edgePart('bottom');\n const blEdgePart = edgePart('bottom-left');\n const ledgePart = edgePart('left');\n const thumbPart = required({\n name: 'thumb',\n defaults: constant$1({ dom: { styles: { position: 'absolute' } } }),\n overrides: detail => {\n return {\n events: derive$2([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n const spectrumPart = required({\n schema: [customField('mouseIsDown', () => Cell(false))],\n name: 'spectrum',\n overrides: detail => {\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const setValueFrom = (component, simulatedEvent) => model.getValueFromEvent(simulatedEvent).map(value => model.setValueFrom(component, detail, value));\n return {\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: spectrum => model.onLeft(spectrum, detail),\n onRight: spectrum => model.onRight(spectrum, detail),\n onUp: spectrum => model.onUp(spectrum, detail),\n onDown: spectrum => model.onDown(spectrum, detail)\n }),\n Focusing.config({})\n ]),\n events: derive$2([\n run$1(touchstart(), setValueFrom),\n run$1(touchmove(), setValueFrom),\n run$1(mousedown(), setValueFrom),\n run$1(mousemove(), (spectrum, se) => {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ])\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n const _sliderChangeEvent = 'slider.change.value';\n const sliderChangeEvent = constant$1(_sliderChangeEvent);\n const isTouchEvent$1 = evt => evt.type.indexOf('touch') !== -1;\n const getEventSource = simulatedEvent => {\n const evt = simulatedEvent.event.raw;\n if (isTouchEvent$1(evt)) {\n const touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(t => SugarPosition(t.clientX, t.clientY)) : Optional.none();\n } else {\n const mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(me => SugarPosition(me.clientX, me.clientY)) : Optional.none();\n }\n };\n\n const t = 'top', r = 'right', b = 'bottom', l = 'left';\n const minX = detail => detail.model.minX;\n const minY = detail => detail.model.minY;\n const min1X = detail => detail.model.minX - 1;\n const min1Y = detail => detail.model.minY - 1;\n const maxX = detail => detail.model.maxX;\n const maxY = detail => detail.model.maxY;\n const max1X = detail => detail.model.maxX + 1;\n const max1Y = detail => detail.model.maxY + 1;\n const range = (detail, max, min) => max(detail) - min(detail);\n const xRange = detail => range(detail, maxX, minX);\n const yRange = detail => range(detail, maxY, minY);\n const halfX = detail => xRange(detail) / 2;\n const halfY = detail => yRange(detail) / 2;\n const step = detail => detail.stepSize;\n const snap = detail => detail.snapToGrid;\n const snapStart = detail => detail.snapStart;\n const rounded = detail => detail.rounded;\n const hasEdge = (detail, edgeName) => detail[edgeName + '-edge'] !== undefined;\n const hasLEdge = detail => hasEdge(detail, l);\n const hasREdge = detail => hasEdge(detail, r);\n const hasTEdge = detail => hasEdge(detail, t);\n const hasBEdge = detail => hasEdge(detail, b);\n const currentValue = detail => detail.model.value.get();\n\n const xyValue = (x, y) => ({\n x,\n y\n });\n const fireSliderChange$3 = (component, value) => {\n emitWith(component, sliderChangeEvent(), { value });\n };\n const setToTLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n const setToTEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1Y(detail));\n };\n const setToTEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n const setToTREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n const setToREdge = (edge, detail) => {\n fireSliderChange$3(edge, max1X(detail));\n };\n const setToREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n const setToBREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n const setToBEdge = (edge, detail) => {\n fireSliderChange$3(edge, max1Y(detail));\n };\n const setToBEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n const setToBLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n const setToLEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1X(detail));\n };\n const setToLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n const reduceBy = (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 const increaseBy = (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 const capValue = (value, min, max) => Math.max(min, Math.min(max, value));\n const snapValueOf = (value, min, max, step, snapStart) => snapStart.fold(() => {\n const initValue = value - min;\n const extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, start => {\n const remainder = (value - start) % step;\n const adjustment = Math.round(remainder / step);\n const rawSteps = Math.floor((value - start) / step);\n const maxSteps = Math.floor((max - start) / step);\n const numSteps = Math.min(maxSteps, rawSteps + adjustment);\n const r = start + numSteps * step;\n return Math.max(start, r);\n });\n const findOffsetOf = (value, min, max) => Math.min(max, Math.max(value, min)) - min;\n const findValueOf = args => {\n const {min, max, range, value, step, snap, snapStart, rounded, hasMinEdge, hasMaxEdge, minBound, maxBound, screenRange} = args;\n const capMin = hasMinEdge ? min - 1 : min;\n const capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n const offset = findOffsetOf(value, minBound, maxBound);\n const 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 const findOffsetOfValue$2 = args => {\n const {min, max, range, value, hasMinEdge, hasMaxEdge, maxBound, maxOffset, centerMinEdge, centerMaxEdge} = args;\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\n const top = 'top', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n const getBounds = component => component.element.dom.getBoundingClientRect();\n const getBoundsProperty = (bounds, property) => bounds[property];\n const getMinXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n const getMaxXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n const getMinYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n const getMaxYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n const getXScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n const getYScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n const getCenterOffsetOf = (componentMinEdge, componentMaxEdge, spectrumMinEdge) => (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n const getXCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, left);\n const componentMaxEdge = getBoundsProperty(componentBounds, right);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n const getYCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, top);\n const componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n const fireSliderChange$2 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset$1 = (spectrum, detail, left) => {\n const 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 const setValueFrom$2 = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value);\n const sliderVal = xValue;\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n const setToMin$2 = (spectrum, detail) => {\n const min = minX(detail);\n fireSliderChange$2(spectrum, min);\n };\n const setToMax$2 = (spectrum, detail) => {\n const max = maxX(detail);\n fireSliderChange$2(spectrum, max);\n };\n const moveBy$2 = (direction, spectrum, detail) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = f(currentValue(detail), minX(detail), maxX(detail), step(detail));\n fireSliderChange$2(spectrum, xValue);\n return Optional.some(xValue);\n };\n const handleMovement$2 = direction => (spectrum, detail) => moveBy$2(direction, spectrum, detail).map(always);\n const getValueFromEvent$2 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => p.left);\n };\n const findOffsetOfValue$1 = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getXScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue$1 = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n const setPositionFromValue$2 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const thumbRadius = get$c(thumb.element) / 2;\n set$8(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n const onLeft$2 = handleMovement$2(-1);\n const onRight$2 = handleMovement$2(1);\n const onUp$2 = Optional.none;\n const onDown$2 = Optional.none;\n const 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\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\n const fireSliderChange$1 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset = (spectrum, detail, top) => {\n const 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 const setValueFrom$1 = (spectrum, detail, value) => {\n const yValue = findValueOfOffset(spectrum, detail, value);\n const sliderVal = yValue;\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n const setToMin$1 = (spectrum, detail) => {\n const min = minY(detail);\n fireSliderChange$1(spectrum, min);\n };\n const setToMax$1 = (spectrum, detail) => {\n const max = maxY(detail);\n fireSliderChange$1(spectrum, max);\n };\n const moveBy$1 = (direction, spectrum, detail) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const yValue = f(currentValue(detail), minY(detail), maxY(detail), step(detail));\n fireSliderChange$1(spectrum, yValue);\n return Optional.some(yValue);\n };\n const handleMovement$1 = direction => (spectrum, detail) => moveBy$1(direction, spectrum, detail).map(always);\n const getValueFromEvent$1 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => {\n return p.top;\n });\n };\n const findOffsetOfValue = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getYScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n const setPositionFromValue$1 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue(slider, edges.getSpectrum(slider), value, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbRadius = get$d(thumb.element) / 2;\n set$8(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n const onLeft$1 = Optional.none;\n const onRight$1 = Optional.none;\n const onUp$1 = handleMovement$1(-1);\n const onDown$1 = handleMovement$1(1);\n const 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\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\n const fireSliderChange = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const sliderValue = (x, y) => ({\n x,\n y\n });\n const setValueFrom = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value.left);\n const yValue = findValueOfOffset(spectrum, detail, value.top);\n const val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n const moveBy = (direction, isVerticalMovement, spectrum, detail) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = isVerticalMovement ? currentValue(detail).x : f(currentValue(detail).x, minX(detail), maxX(detail), step(detail));\n const 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 const handleMovement = (direction, isVerticalMovement) => (spectrum, detail) => moveBy(direction, isVerticalMovement, spectrum, detail).map(always);\n const setToMin = (spectrum, detail) => {\n const mX = minX(detail);\n const mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const setToMax = (spectrum, detail) => {\n const mX = maxX(detail);\n const mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const getValueFromEvent = simulatedEvent => getEventSource(simulatedEvent);\n const setPositionFromValue = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbXRadius = get$c(thumb.element) / 2;\n const thumbYRadius = get$d(thumb.element) / 2;\n set$8(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$8(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n const onLeft = handleMovement(-1, false);\n const onRight = handleMovement(1, false);\n const onUp = handleMovement(-1, true);\n const onDown = handleMovement(1, true);\n const 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\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\n const SliderSchema = [\n defaulted('stepSize', 1),\n defaulted('onChange', noop),\n defaulted('onChoose', noop),\n defaulted('onInit', noop),\n defaulted('onDragStart', noop),\n defaulted('onDragEnd', noop),\n defaulted('snapToGrid', false),\n defaulted('rounded', true),\n option$3('snapStart'),\n requiredOf('model', choose$1('mode', {\n x: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n customField('value', spec => Cell(spec.mode.minX)),\n required$1('getInitialValue'),\n output$1('manager', HorizontalModel)\n ],\n y: [\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell(spec.mode.minY)),\n required$1('getInitialValue'),\n output$1('manager', VerticalModel)\n ],\n xy: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n })),\n required$1('getInitialValue'),\n output$1('manager', TwoDModel)\n ]\n })),\n field('sliderBehaviours', [\n Keying,\n Representing\n ]),\n customField('mouseIsDown', () => Cell(false))\n ];\n\n const sketch$2 = (detail, components, _spec, _externals) => {\n const getThumb = component => getPartOrDie(component, detail, 'thumb');\n const getSpectrum = component => getPartOrDie(component, detail, 'spectrum');\n const getLeftEdge = component => getPart(component, detail, 'left-edge');\n const getRightEdge = component => getPart(component, detail, 'right-edge');\n const getTopEdge = component => getPart(component, detail, 'top-edge');\n const getBottomEdge = component => getPart(component, detail, 'bottom-edge');\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const refresh = (slider, thumb) => {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge,\n getRightEdge,\n getTopEdge,\n getBottomEdge,\n getSpectrum\n });\n };\n const setValue = (slider, newValue) => {\n modelDetail.value.set(newValue);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n const changeValue = (slider, newValue) => {\n setValue(slider, newValue);\n const thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n const resetToMin = slider => {\n model.setToMin(slider, detail);\n };\n const resetToMax = slider => {\n model.setToMax(slider, detail);\n };\n const choose = slider => {\n const fireOnChoose = () => {\n getPart(slider, detail, 'thumb').each(thumb => {\n const value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n const wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n const onDragStart = (slider, simulatedEvent) => {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n const onDragEnd = (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,\n behaviours: augment(detail.sliderBehaviours, [\n Keying.config({\n mode: 'special',\n focusIn: slider => {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(always);\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: _ => {\n return modelDetail.value.get();\n },\n setValue\n }\n }),\n Receiving.config({ channels: { [mouseReleased()]: { onReceive: choose } } })\n ]),\n events: derive$2([\n run$1(sliderChangeEvent(), (slider, simulatedEvent) => {\n changeValue(slider, simulatedEvent.event.value);\n }),\n runOnAttached((slider, _simulatedEvent) => {\n const getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n const spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n }),\n run$1(touchstart(), onDragStart),\n run$1(touchend(), onDragEnd),\n run$1(mousedown(), onDragStart),\n run$1(mouseup(), onDragEnd)\n ]),\n apis: {\n resetToMin,\n resetToMax,\n setValue,\n refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n const Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: (apis, slider, value) => {\n apis.setValue(slider, value);\n },\n resetToMin: (apis, slider) => {\n apis.resetToMin(slider);\n },\n resetToMax: (apis, slider) => {\n apis.resetToMax(slider);\n },\n refresh: (apis, slider) => {\n apis.refresh(slider);\n }\n }\n });\n\n const fieldsUpdate = generate$6('rgb-hex-update');\n const sliderUpdate = generate$6('slider-update');\n const paletteUpdate = generate$6('palette-update');\n\n const sliderFactory = (translate, getClass) => {\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: { role: 'presentation' }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant$1(0)\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: (slider, _thumb, value) => {\n emitWith(slider, sliderUpdate, { value });\n }\n });\n };\n\n const owner$1 = 'form';\n const schema$i = [field('formBehaviours', [Representing])];\n const getPartName$1 = name => '<alloy.field.' + name + '>';\n const sketch$1 = fSpec => {\n const parts = (() => {\n const record = [];\n const field = (name, config) => {\n record.push(name);\n return generateOne$1(owner$1, getPartName$1(name), config);\n };\n return {\n field,\n record: constant$1(record)\n };\n })();\n const spec = fSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName$1(n)\n }));\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n const toResult = (o, e) => o.fold(() => Result.error(e), Result.value);\n const make$4 = (detail, components) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: form => {\n const resPs = getAllParts(form, detail);\n return map$1(resPs, (resPThunk, pName) => resPThunk().bind(v => {\n const 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 setValue: (form, values) => {\n each(values, (newValue, key) => {\n getPart(form, detail, key).each(wrapper => {\n Composing.getCurrent(wrapper).each(field => {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: (form, key) => {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n });\n const Form = {\n getField: makeApi((apis, component, key) => apis.getField(component, key)),\n sketch: sketch$1\n };\n\n const validInput = generate$6('valid-input');\n const invalidInput = generate$6('invalid-input');\n const validatingInput = generate$6('validating-input');\n const translatePrefix = 'colorcustom.rgb.';\n const rgbFormFactory = (translate, getClass, onValidHexx, onInvalidHexx) => {\n const invalidation = (label, isValid) => Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: comp => {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: comp => {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: comp => {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: comp => {\n const value = Representing.getValue(comp);\n const res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n const renderTextField = (isValid, name, label, description, data) => {\n const helptext = translate(translatePrefix + 'range');\n const pLabel = FormField.parts.label({\n dom: {\n tag: 'label',\n attributes: { 'aria-label': description }\n },\n components: [text$1(label)]\n });\n const pField = FormField.parts.field({\n data,\n factory: Input,\n inputAttributes: {\n type: 'text',\n ...name === 'hex' ? { 'aria-live': 'polite' } : {}\n },\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid),\n Tabstopping.config({})\n ]),\n onSetValue: input => {\n if (Invalidating.isInvalid(input)) {\n const run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n const comps = [\n pLabel,\n pField\n ];\n const concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({ text: helptext })] : [];\n const components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components\n };\n };\n const copyRgbToHex = (form, rgba) => {\n const hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(hexField => {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value });\n }\n });\n return hex;\n };\n const copyRgbToForm = (form, rgb) => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n Representing.setValue(form, {\n red,\n green,\n blue\n });\n };\n const memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n const updatePreview = (anyInSystem, hex) => {\n memPreview.getOpt(anyInSystem).each(preview => {\n set$8(preview.element, 'background-color', '#' + hex.value);\n });\n };\n const factory = () => {\n const 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 const copyHexToRgb = (form, hex) => {\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n const get = prop => state[prop].get();\n const set = (prop, value) => {\n state[prop].set(value);\n };\n const getValueRgb = () => get('red').bind(red => get('green').bind(green => get('blue').map(blue => rgbaColour(red, green, blue, 1))));\n const setValueRgb = rgb => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n set('red', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n const onInvalidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n const onValidHex = (form, value) => {\n onValidHexx(form);\n const hex = hexColour(value);\n set('hex', Optional.some(value));\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n };\n const onValidRgb = (form, prop, value) => {\n const val = parseInt(value, 10);\n set(prop, Optional.some(val));\n getValueRgb().each(rgb => {\n const hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n });\n };\n const isHexInputEvent = data => data.type === 'hex';\n const onValidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n const formPartStrings = key => ({\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n });\n const redStrings = formPartStrings('red');\n const greenStrings = formPartStrings('green');\n const blueStrings = formPartStrings('blue');\n const hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(parts => ({\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run$1(validInput, onValidInput),\n run$1(invalidInput, onInvalidInput),\n run$1(validatingInput, onInvalidInput)\n ])\n ])\n })), {\n apis: {\n updateHex: (form, hex) => {\n Representing.setValue(form, { hex: hex.value });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n const rgbFormSketcher = single({\n factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: (apis, form, hex) => {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n\n const paletteFactory = (_translate, getClass) => {\n const spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n const thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: `<div class=${ getClass('sv-palette-inner-thumb') } role=\"presentation\"></div>`\n }\n });\n const setColour = (canvas, rgba) => {\n const {width, height} = canvas;\n const ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n const 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 const 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 const setPaletteHue = (slider, hue) => {\n const canvas = slider.components()[0].element.dom;\n const hsv = hsvColour(hue, 100, 100);\n const rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n const setPaletteThumb = (slider, hex) => {\n const hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n };\n const factory = _detail => {\n const getInitialValue = constant$1({\n x: 0,\n y: 0\n });\n const onChange = (slider, _thumb, value) => {\n emitWith(slider, paletteUpdate, { value });\n };\n const onInit = (_slider, _thumb, spectrum, _value) => {\n setColour(spectrum.element.dom, toString(red));\n };\n const sliderBehaviours = derive$1([\n Composing.config({ find: Optional.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange,\n onInit,\n sliderBehaviours\n });\n };\n const saturationBrightnessPaletteSketcher = single({\n factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: (_apis, slider, hue) => {\n setPaletteHue(slider, hue);\n },\n setThumb: (_apis, slider, hex) => {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n const makeFactory = (translate, getClass) => {\n const factory = detail => {\n const rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n const sbPalette = paletteFactory(translate, getClass);\n const hueSliderToDegrees = hue => (100 - hue) / 100 * 360;\n const hueDegreesToSlider = hue => 100 - hue / 360 * 100;\n const state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n const memSlider = record(sliderFactory(translate, getClass));\n const memPalette = record(sbPalette.sketch({}));\n const memRgb = record(rgbForm.sketch({}));\n const updatePalette = (anyInSystem, _hex, hue) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setHue(palette, hue);\n });\n };\n const updateFields = (anyInSystem, hex) => {\n memRgb.getOpt(anyInSystem).each(form => {\n rgbForm.updateHex(form, hex);\n });\n };\n const updateSlider = (anyInSystem, _hex, hue) => {\n memSlider.getOpt(anyInSystem).each(slider => {\n Slider.setValue(slider, hueDegreesToSlider(hue));\n });\n };\n const updatePaletteThumb = (anyInSystem, hex) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setThumb(palette, hex);\n });\n };\n const updateState = (hex, hue) => {\n const rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n const runUpdates = (anyInSystem, hex, hue, updates) => {\n updateState(hex, hue);\n each$1(updates, update => {\n update(anyInSystem, hex, hue);\n });\n };\n const onPaletteUpdate = () => {\n const updates = [updateFields];\n return (form, simulatedEvent) => {\n const value = simulatedEvent.event.value;\n const oldHue = state.paletteHue.get();\n const newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n const onSliderUpdate = () => {\n const updates = [\n updatePalette,\n updateFields\n ];\n return (form, simulatedEvent) => {\n const hue = hueSliderToDegrees(simulatedEvent.event.value);\n const oldRgb = state.paletteRgba.get();\n const oldHsv = fromRgb(oldRgb);\n const newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n const onFieldsUpdate = () => {\n const updates = [\n updatePalette,\n updateSlider,\n updatePaletteThumb\n ];\n return (form, simulatedEvent) => {\n const hex = simulatedEvent.event.hex;\n const hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n memSlider.asSpec(),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run$1(fieldsUpdate, onFieldsUpdate()),\n run$1(paletteUpdate, onPaletteUpdate()),\n run$1(sliderUpdate, onSliderUpdate())\n ]),\n Composing.config({ find: comp => memRgb.getOpt(comp) }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n const colourPickerSketcher = single({\n name: 'ColourPicker',\n configFields: [\n required$1('dom'),\n defaulted('onValidHex', noop),\n defaulted('onInvalidHex', noop)\n ],\n factory\n });\n return colourPickerSketcher;\n };\n\n const self = () => Composing.config({ find: Optional.some });\n const memento$1 = mem => Composing.config({ find: mem.getOpt });\n const childAt = index => Composing.config({ find: comp => child$2(comp.element, index).bind(element => comp.getSystem().getByDom(element).toOptional()) });\n const ComposingConfigs = {\n self,\n memento: memento$1,\n childAt\n };\n\n const processors = objOf([\n defaulted('preprocess', identity),\n defaulted('postprocess', identity)\n ]);\n const memento = (mem, rawProcessors) => {\n const ps = asRawOrDie$1('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const other = mem.get(comp);\n const rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: (comp, rawValue) => {\n const newValue = ps.preprocess(rawValue);\n const other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n const withComp = (optInitialValue, getter, setter) => Representing.config({\n store: {\n mode: 'manual',\n ...optInitialValue.map(initialValue => ({ initialValue })).getOr({}),\n getValue: getter,\n setValue: setter\n }\n });\n const withElement = (initialValue, getter, setter) => withComp(initialValue, c => getter(c.element), (c, v) => setter(c.element, v));\n const domValue = optInitialValue => withElement(optInitialValue, get$6, set$5);\n const domHtml = optInitialValue => withElement(optInitialValue, get$9, set$6);\n const memory = initialValue => Representing.config({\n store: {\n mode: 'memory',\n initialValue\n }\n });\n const RepresentingConfigs = {\n memento,\n withElement,\n withComp,\n domValue,\n domHtml,\n memory\n };\n\n const 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 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n const translate$1 = providerBackstage => key => {\n return providerBackstage.translate(english[key]);\n };\n const renderColorPicker = (_spec, providerBackstage, initialData) => {\n const getClass = key => 'tox-' + key;\n const colourPickerFactory = makeFactory(translate$1(providerBackstage), getClass);\n const onValidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n const onInvalidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n const memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex,\n onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n RepresentingConfigs.withComp(initialData, comp => {\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n const optHex = optRgbForm.bind(rgbForm => {\n const formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(hex => '#' + hex).getOr('');\n }, (comp, newValue) => {\n const pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n const m = pattern.exec(newValue);\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(() => {\n console.log('Can not find form');\n }, rgbForm => {\n Representing.setValue(rgbForm, { hex: Optional.from(m[1]).getOr('') });\n Form.getField(rgbForm, 'hex').each(hexField => {\n emit(hexField, input());\n });\n });\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.Resource');\n\n const isOldCustomEditor = spec => has$2(spec, 'init');\n const renderCustomEditor = spec => {\n const editorApi = value$2();\n const memReplaced = record({ dom: { tag: spec.tag } });\n const initialValue = value$2();\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('custom-editor-events', [runOnAttached(component => {\n memReplaced.getOpt(component).each(ta => {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$2.load(spec.scriptId, spec.scriptUrl).then(init => init(ta.element.dom, spec.settings))).then(ea => {\n initialValue.on(cvalue => {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(ea);\n });\n });\n })]),\n RepresentingConfigs.withComp(Optional.none(), () => editorApi.get().fold(() => initialValue.get().getOr(''), ed => ed.getValue()), (component, value) => {\n editorApi.get().fold(() => initialValue.set(value), ed => ed.setValue(value));\n }),\n ComposingConfigs.self()\n ]),\n components: [memReplaced.asSpec()]\n };\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const filterByExtension = (files, providersBackstage) => {\n const allowedImageFileTypes = global$1.explode(providersBackstage.getOption('images_file_types'));\n const isFileInAllowedTypes = file => exists(allowedImageFileTypes, type => endsWith(file.name.toLowerCase(), `.${ type.toLowerCase() }`));\n return filter$2(from(files), isFileInAllowedTypes);\n };\n const renderDropZone = (spec, providersBackstage, initialData) => {\n const stopper = (_, se) => {\n se.stop();\n };\n const sequence = actions => (comp, se) => {\n each$1(actions, a => {\n a(comp, se);\n });\n };\n const onDrop = (comp, se) => {\n if (!Disabling.isDisabled(comp)) {\n const transferEvent = se.event.raw;\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n const onSelect = (component, simulatedEvent) => {\n const input = simulatedEvent.event.raw.target;\n handleFiles(component, input.files);\n };\n const handleFiles = (component, files) => {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, { name: spec.name });\n };\n const memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [\n cutter(click()),\n cutter(tap())\n ])])\n });\n const renderField = s => ({\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n RepresentingConfigs.memory(initialData.getOr([])),\n ComposingConfigs.self(),\n Disabling.config({}),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run$1('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragover', stopper),\n run$1('drop', sequence([\n stopper,\n onDrop\n ])),\n run$1(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: { tag: 'p' },\n components: [text$1(providersBackstage.translate('Drop an image here'))]\n },\n Button.sketch({\n dom: {\n tag: 'button',\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [\n text$1(providersBackstage.translate('Browse for an image')),\n memInput.asSpec()\n ],\n action: comp => {\n const inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\n ])\n })\n ]\n }]\n });\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const pField = FormField.parts.field({ factory: { sketch: renderField } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n const renderGrid = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n `tox-form__grid--${ spec.columns }col`\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const beforeObject = generate$6('alloy-fake-before-tabstop');\n const afterObject = generate$6('alloy-fake-after-tabstop');\n const craftWithClasses = classes => {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n const craft = spec => {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n const triggerTab = (placeholder, shiftKey) => {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey\n }\n });\n };\n const onFocus = (container, targetComp) => {\n const 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 const isPseudoStop = element => {\n return closest(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), never);\n };\n\n const getDynamicSource = initialData => {\n const cachedValue = Cell(initialData.getOr(''));\n return {\n getValue: _frameComponent => cachedValue.get(),\n setValue: (frameComponent, html) => {\n if (cachedValue.get() !== html) {\n set$9(frameComponent.element, 'srcdoc', html);\n }\n cachedValue.set(html);\n }\n };\n };\n const renderIFrame = (spec, providersBackstage, initialData) => {\n const isSandbox = spec.sandboxed;\n const attributes = {\n ...spec.label.map(title => ({ title })).getOr({}),\n ...initialData.map(html => ({ srcdoc: html })).getOr({}),\n ...isSandbox ? { sandbox: 'allow-scripts allow-same-origin' } : {}\n };\n const sourcing = getDynamicSource(initialData);\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const factory = newSpec => craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n RepresentingConfigs.withComp(initialData, sourcing.getValue, sourcing.setValue)\n ])\n });\n const pField = FormField.parts.field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n const image = image => new Promise((resolve, reject) => {\n const loaded = () => {\n destroy();\n resolve(image);\n };\n const listeners = [\n bind(image, 'load', loaded),\n bind(image, 'error', () => {\n destroy();\n reject('Unable to load data from image: ' + image.dom.src);\n })\n ];\n const destroy = () => each$1(listeners, l => l.unbind());\n if (image.dom.complete) {\n loaded();\n }\n });\n\n const calculateImagePosition = (panelWidth, panelHeight, imageWidth, imageHeight, zoom) => {\n const width = imageWidth * zoom;\n const height = imageHeight * zoom;\n const left = Math.max(0, panelWidth / 2 - width / 2);\n const top = Math.max(0, panelHeight / 2 - height / 2);\n return {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px'\n };\n };\n const zoomToFit = (panel, width, height) => {\n const panelW = get$c(panel);\n const panelH = get$d(panel);\n return Math.min(panelW / width, panelH / height, 1);\n };\n const renderImagePreview = (spec, initialData) => {\n const cachedData = Cell(initialData.getOr({ url: '' }));\n const memImage = record({\n dom: {\n tag: 'img',\n classes: ['tox-imagepreview__image'],\n attributes: initialData.map(data => ({ src: data.url })).getOr({})\n }\n });\n const memContainer = record({\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview__container'],\n attributes: { role: 'presentation' }\n },\n components: [memImage.asSpec()]\n });\n const setValue = (frameComponent, data) => {\n const translatedData = { url: data.url };\n data.zoom.each(z => translatedData.zoom = z);\n data.cachedWidth.each(z => translatedData.cachedWidth = z);\n data.cachedHeight.each(z => translatedData.cachedHeight = z);\n cachedData.set(translatedData);\n const applyFramePositioning = () => {\n const imageWidth = translatedData.cachedWidth;\n const imageHeight = translatedData.cachedHeight;\n if (isUndefined(translatedData.zoom)) {\n const z = zoomToFit(frameComponent.element, imageWidth, imageHeight);\n translatedData.zoom = z;\n }\n const position = calculateImagePosition(get$c(frameComponent.element), get$d(frameComponent.element), imageWidth, imageHeight, translatedData.zoom);\n memContainer.getOpt(frameComponent).each(container => {\n setAll(container.element, position);\n });\n };\n memImage.getOpt(frameComponent).each(imageComponent => {\n const img = imageComponent.element;\n if (data.url !== get$f(img, 'src')) {\n set$9(img, 'src', data.url);\n remove$2(frameComponent.element, 'tox-imagepreview__loaded');\n }\n if (!isUndefined(translatedData.cachedWidth) && !isUndefined(translatedData.cachedHeight)) {\n applyFramePositioning();\n }\n image(img).then(img => {\n if (frameComponent.getSystem().isConnected()) {\n add$2(frameComponent.element, 'tox-imagepreview__loaded');\n translatedData.cachedWidth = img.dom.naturalWidth;\n translatedData.cachedHeight = img.dom.naturalHeight;\n applyFramePositioning();\n }\n });\n });\n };\n const styles = {};\n spec.height.each(h => styles.height = h);\n const fakeValidatedData = initialData.map(d => ({\n url: d.url,\n zoom: Optional.from(d.zoom),\n cachedWidth: Optional.from(d.cachedWidth),\n cachedHeight: Optional.from(d.cachedHeight)\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview'],\n styles,\n attributes: { role: 'presentation' }\n },\n components: [memContainer.asSpec()],\n behaviours: derive$1([\n ComposingConfigs.self(),\n RepresentingConfigs.withComp(fakeValidatedData, () => cachedData.get(), setValue)\n ])\n };\n };\n\n const renderLabel$1 = (spec, backstageShared) => {\n const label = {\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$1(backstageShared.providers.translate(spec.label))]\n };\n const comps = map$2(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [\n label,\n ...comps\n ],\n behaviours: derive$1([\n ComposingConfigs.self(),\n Replacing.config({}),\n RepresentingConfigs.domHtml(Optional.none()),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n\n const internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n const onToolbarButtonExecute = info => runOnExecute$1((comp, _simulatedEvent) => {\n runWithApi(info, comp)(itemApi => {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n const toolbarButtonEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events'\n ]\n };\n\n const renderIcon = (iconName, iconsProvider, behaviours) => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ],\n behaviours\n }, iconsProvider);\n const renderIconFromPack = (iconName, iconsProvider) => renderIcon(iconName, iconsProvider, []);\n const renderReplacableIconFromPack = (iconName, iconsProvider) => renderIcon(iconName, iconsProvider, [Replacing.config({})]);\n const renderLabel = (text, prefix, providersBackstage) => ({\n dom: {\n tag: 'span',\n classes: [`${ prefix }__select-label`]\n },\n components: [text$1(providersBackstage.translate(text))],\n behaviours: derive$1([Replacing.config({})])\n });\n\n const updateMenuText = generate$6('update-menu-text');\n const updateMenuIcon = generate$6('update-menu-icon');\n const renderCommonDropdown = (spec, prefix, sharedBackstage) => {\n const editorOffCell = Cell(noop);\n const optMemDisplayText = spec.text.map(text => record(renderLabel(text, prefix, sharedBackstage.providers)));\n const optMemDisplayIcon = spec.icon.map(iconName => record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons)));\n const onLeftOrRightInMenu = (comp, se) => {\n const dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event.raw });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n const role = spec.role.fold(() => ({}), role => ({ role }));\n const tooltipAttributes = spec.tooltip.fold(() => ({}), tooltip => {\n const translatedTooltip = sharedBackstage.providers.translate(tooltip);\n return {\n 'title': translatedTooltip,\n 'aria-label': translatedTooltip\n };\n });\n const iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [`${ prefix }__select-chevron`]\n }, sharedBackstage.providers.icons);\n const memDropdown = record(Dropdown.sketch({\n ...spec.uid ? { uid: spec.uid } : {},\n ...role,\n dom: {\n tag: 'button',\n classes: [\n prefix,\n `${ prefix }--select`\n ].concat(map$2(spec.classes, c => `${ prefix }--${ c }`)),\n attributes: { ...tooltipAttributes }\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(mem => mem.asSpec()),\n optMemDisplayText.map(mem => mem.asSpec()),\n Optional.some(iconSpec)\n ]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1([\n ...spec.dropdownBehaviours,\n DisablingConfigs.button(() => spec.disabled || sharedBackstage.providers.isDisabled()),\n receivingConfig(),\n Unselecting.config({}),\n Replacing.config({}),\n config('dropdown-events', [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config('menubutton-update-display-text', [\n run$1(updateMenuText, (comp, se) => {\n optMemDisplayText.bind(mem => mem.getOpt(comp)).each(displayText => {\n Replacing.set(displayText, [text$1(sharedBackstage.providers.translate(se.event.text))]);\n });\n }),\n run$1(updateMenuIcon, (comp, se) => {\n optMemDisplayIcon.bind(mem => mem.getOpt(comp)).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplacableIconFromPack(se.event.icon, sharedBackstage.providers.icons)]);\n });\n })\n ])\n ]),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ]\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: { menu: part(false, spec.columns, spec.presets) },\n fetch: comp => Future.nu(curry(spec.fetch, comp))\n }));\n return memDropdown.asSpec();\n };\n\n const isMenuItemReference = item => isString(item);\n const isSeparator$1 = item => item.type === 'separator';\n const isExpandingMenuItem = item => has$2(item, 'getSubmenuItems');\n const separator$2 = { type: 'separator' };\n const unwrapReferences = (items, menuItems) => {\n const realItems = foldl(items, (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 const getFromExpandingItem = (item, menuItems) => {\n const submenuItems = item.getSubmenuItems();\n const rest = expand(submenuItems, menuItems);\n const newMenus = deepMerge(rest.menus, wrap$1(item.value, rest.items));\n const newExpansions = deepMerge(rest.expansions, wrap$1(item.value, item.value));\n return {\n item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n const getFromItem = (item, menuItems) => isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item,\n menus: {},\n expansions: {}\n };\n const generateValueIfRequired = item => {\n if (isSeparator$1(item)) {\n return item;\n } else {\n const itemValue = get$g(item, 'value').getOrThunk(() => generate$6('generated-menu-item'));\n return deepMerge({ value: itemValue }, item);\n }\n };\n const expand = (items, menuItems) => {\n const realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, (acc, item) => {\n const itemWithValue = generateValueIfRequired(item);\n const 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\n const build = (items, itemResponse, backstage, isHorizontalMenu) => {\n const primary = generate$6('primary-menu');\n const data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n const mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n const submenus = map$1(data.menus, (menuItems, menuName) => createPartialMenu(menuName, menuItems, itemResponse, backstage, false));\n const menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n const isSingleListItem = item => !has$2(item, 'items');\n const dataAttribute = 'data-value';\n const fetchItems = (dropdownComp, name, items, selectedValue) => map$2(items, item => {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: () => fetchItems(dropdownComp, name, item.items, selectedValue)\n };\n } else {\n return {\n type: 'togglemenuitem',\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: () => {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, { name });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n const findItemByValue = (items, value) => findMap(items, item => {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n const renderListBox = (spec, backstage, initialData) => {\n const providersBackstage = backstage.shared.providers;\n const initialItem = initialData.bind(value => findItemByValue(spec.items, value)).orThunk(() => head(spec.items).filter(isSingleListItem));\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: sketchSpec => renderCommonDropdown({\n uid: sketchSpec.uid,\n text: initialItem.map(item => item.text),\n icon: Optional.none(),\n tooltip: spec.label,\n role: Optional.none(),\n fetch: (comp, callback) => {\n const 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: [\n Tabstopping.config({}),\n RepresentingConfigs.withComp(initialItem.map(item => item.value), comp => get$f(comp.element, dataAttribute), (comp, data) => {\n findItemByValue(spec.items, data).each(item => {\n set$9(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, { text: item.text });\n });\n })\n ]\n }, 'tox-listbox', backstage.shared)\n }\n });\n const 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([\n pLabel.toArray(),\n [listBoxWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: constant$1(!spec.enabled),\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n const renderPanel = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n });\n\n const factory$f = (detail, _spec) => {\n const options = map$2(detail.options, option => ({\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n }));\n const initialValues = detail.data.map(v => wrap$1('initialValue', v)).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, [\n Focusing.config({}),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: select => {\n return get$6(select.element);\n },\n setValue: (select, newValue) => {\n const found = find$5(detail.options, opt => opt.value === newValue);\n if (found.isSome()) {\n set$5(select.element, newValue);\n }\n },\n ...initialValues\n }\n })\n ])\n };\n };\n const HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [\n required$1('options'),\n field('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted('selectClasses', []),\n defaulted('selectAttributes', {}),\n option$3('data')\n ],\n factory: factory$f\n });\n\n const renderSelectBox = (spec, providersBackstage, initialData) => {\n const translatedOptions = map$2(spec.items, item => ({\n text: providersBackstage.translate(item.text),\n value: item.value\n }));\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n ...initialData.map(data => ({ data })).getOr({}),\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.isDisabled() }),\n Tabstopping.config({}),\n config('selectbox-change', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const 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 const selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.isDisabled(),\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ])\n });\n };\n\n const schema$h = constant$1([\n defaulted('field1Name', 'field1'),\n defaulted('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers$1(['lockClass']),\n defaulted('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n const getField = (comp, detail, partName) => getPart(comp, detail, partName).bind(Composing.getCurrent);\n const coupledPart = (selfName, otherName) => required({\n factory: FormField,\n name: selfName,\n overrides: detail => {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run$1(input(), me => {\n getField(me, detail, otherName).each(other => {\n getPart(me, detail, 'lock').each(lock => {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n const parts$c = constant$1([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'lock',\n overrides: detail => {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n const factory$e = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Optional.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return {\n [detail.field1Name]: Representing.getValue(parts.field1()),\n [detail.field2Name]: Representing.getValue(parts.field2())\n };\n },\n setValue: (comp, value) => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\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 ]),\n apis: {\n getField1: component => getPart(component, detail, 'field1'),\n getField2: component => getPart(component, detail, 'field2'),\n getLock: component => getPart(component, detail, 'lock')\n }\n });\n const FormCoupledInputs = composite({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$e,\n apis: {\n getField1: (apis, component) => apis.getField1(component),\n getField2: (apis, component) => apis.getField2(component),\n getLock: (apis, component) => apis.getLock(component)\n }\n });\n\n const formatSize = size => {\n const 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 const maxDecimal = unit => unit in unitDec ? unitDec[unit] : 1;\n let 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 const parseSize = sizeText => {\n const numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n const match = numPattern.exec(sizeText);\n if (match !== null) {\n const value = parseFloat(match[1]);\n const unit = match[2];\n return Result.value({\n value,\n unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n const convertUnit = (size, unit) => {\n const 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 const supported = u => has$2(inInch, u);\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 const noSizeConversion = _input => Optional.none();\n const ratioSizeConversion = (scale, unit) => size => convertUnit(size, unit).map(value => ({\n value: value * scale,\n unit\n }));\n const makeRatioConverter = (currentFieldText, otherFieldText) => {\n const cValue = parseSize(currentFieldText).toOptional();\n const oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, (cSize, oSize) => convertUnit(cSize, oSize.unit).map(val => oSize.value / val).map(r => ratioSizeConversion(r, oSize.unit)).getOr(noSizeConversion)).getOr(noSizeConversion);\n };\n\n const renderSizeInput = (spec, providersBackstage) => {\n let converter = noSizeConversion;\n const ratioEvent = generate$6('ratio-event');\n const makeIcon = iconName => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__' + iconName\n ]\n }, providersBackstage.icons);\n const pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { title: providersBackstage.translate(spec.label.getOr('Constrain proportions')) }\n },\n components: [\n makeIcon('lock'),\n makeIcon('unlock')\n ],\n buttonBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.isDisabled() }),\n receivingConfig(),\n Tabstopping.config({})\n ])\n });\n const formGroup = components => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components\n });\n const getFieldPart = isField1 => FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.isDisabled() }),\n receivingConfig(),\n Tabstopping.config({}),\n config('size-input-events', [\n run$1(focusin(), (component, _simulatedEvent) => {\n emitWith(component, ratioEvent, { isField1 });\n }),\n run$1(change(), (component, _simulatedEvent) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n const getLabel = label => ({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$1(providersBackstage.translate(label))]\n });\n const widthField = FormCoupledInputs.parts.field1(formGroup([\n FormField.parts.label(getLabel('Width')),\n getFieldPart(true)\n ]));\n const heightField = FormCoupledInputs.parts.field2(formGroup([\n FormField.parts.label(getLabel('Height')),\n getFieldPart(false)\n ]));\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: [\n widthField,\n heightField,\n formGroup([\n getLabel(nbsp),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: (current, other, _lock) => {\n parseSize(Representing.getValue(current)).each(size => {\n converter(size).each(newSize => {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.isDisabled(),\n onDisabled: 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: 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 }),\n receivingConfig(),\n config('size-input-events2', [run$1(ratioEvent, (component, simulatedEvent) => {\n const isField1 = simulatedEvent.event.isField1;\n const optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n const optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n const value1 = optCurrent.map(Representing.getValue).getOr('');\n const value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])\n ])\n });\n };\n\n const renderSlider = (spec, providerBackstage, initialData) => {\n const labelPart = Slider.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$1(providerBackstage.translate(spec.label))]\n });\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: spec.min,\n maxX: spec.max,\n getInitialValue: constant$1(initialData.getOrThunk(() => (Math.abs(spec.max) - Math.abs(spec.min)) / 2))\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([\n ComposingConfigs.self(),\n Focusing.config({})\n ]),\n onChoose: (component, thumb, value) => {\n emitWith(component, formChangeEvent, {\n name: spec.name,\n value\n });\n }\n });\n };\n\n const renderTable = (spec, providersBackstage) => {\n const renderTh = text => ({\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderHeader = header => ({\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map$2(header, renderTh)\n }]\n });\n const renderTd = text => ({\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderTr = row => ({\n dom: { tag: 'tr' },\n components: map$2(row, renderTd)\n });\n const renderRows = rows => ({\n dom: { tag: 'tbody' },\n components: map$2(rows, renderTr)\n });\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n const renderTextField = (spec, providersBackstage) => {\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const baseInputBehaviours = [\n Disabling.config({ disabled: () => spec.disabled || providersBackstage.isDisabled() }),\n receivingConfig(),\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: comp => {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }),\n config('textfield-change', [\n run$1(input(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run$1(postPaste(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n const validatingBehaviours = spec.validation.map(vl => Invalidating.config({\n getRoot: input => {\n return parentElement(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: input => {\n const v = Representing.getValue(input);\n const result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n })).toArray();\n const placeholder = spec.placeholder.fold(constant$1({}), p => ({ placeholder: providersBackstage.translate(p) }));\n const inputMode = spec.inputMode.fold(constant$1({}), mode => ({ inputmode: mode }));\n const inputAttributes = {\n ...placeholder,\n ...inputMode\n };\n const pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n ...spec.data.map(data => ({ data })).getOr({}),\n inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([\n baseInputBehaviours,\n validatingBehaviours\n ])),\n selectOnFocus: false,\n factory: Input\n });\n const extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n const extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n const extraBehaviours = [\n Disabling.config({\n disabled: () => spec.disabled || providersBackstage.isDisabled(),\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n const renderInput = (spec, providersBackstage, initialData) => 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.enabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData\n }, providersBackstage);\n const renderTextarea = (spec, providersBackstage, initialData) => 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.enabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData\n }, providersBackstage);\n\n const events$6 = (streamConfig, streamState) => {\n const streams = streamConfig.stream.streams;\n const processor = streams.setup(streamConfig, streamState);\n return derive$2([\n run$1(streamConfig.event, processor),\n runOnDetached(() => streamState.cancel())\n ].concat(streamConfig.cancelEvent.map(e => [run$1(e, () => streamState.cancel())]).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6\n });\n\n const first = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const throttle = _config => {\n const state = Cell(null);\n const readState = () => ({ timer: state.get() !== null ? 'set' : 'unset' });\n const setTimer = t => {\n state.set(t);\n };\n const cancel = () => {\n const t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$8({\n readState,\n setTimer,\n cancel\n });\n };\n const init$9 = spec => spec.stream.streams.state(spec);\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$9\n });\n\n const setup$c = (streamInfo, streamState) => {\n const sInfo = streamInfo.stream;\n const throttler = last(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return (component, simulatedEvent) => {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n requiredOf('stream', choose$1('mode', {\n throttle: [\n required$1('delay'),\n defaulted('stopEvent', true),\n output$1('streams', {\n setup: setup$c,\n state: throttle\n })\n ]\n })),\n defaulted('event', 'input'),\n option$3('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n const Streaming = create$3({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n const setValueFromItem = (model, input, item) => {\n const itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n const setSelectionOn = (input, f) => {\n const el = input.element;\n const value = get$6(el);\n const node = el.dom;\n if (get$f(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n const setCursorAtEnd = input => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(value.length, value.length));\n };\n const setSelectionToEnd = (input, startOffset) => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(startOffset, value.length));\n };\n const attemptSelectOver = (model, input, item) => {\n if (!model.selectsOver) {\n return Optional.none();\n } else {\n const currentValue = Representing.getValue(input);\n const inputDisplay = model.getDisplayText(currentValue);\n const itemValue = Representing.getValue(item);\n const itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay) === 0 ? Optional.some(() => {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay.length);\n }) : Optional.none();\n }\n };\n\n const itemExecute = constant$1('alloy.typeahead.itemexecute');\n\n const make$3 = (detail, components, spec, externals) => {\n const navigateList = (comp, simulatedEvent, highlighter) => {\n detail.previewing.set(false);\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(menu => {\n Highlighting.getHighlighted(menu).fold(() => {\n highlighter(menu);\n }, () => {\n dispatchEvent(sandbox, menu.element, 'keydown', simulatedEvent);\n });\n });\n } else {\n const onOpenSync = sandbox => {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n const focusBehaviours$1 = focusBehaviours(detail);\n const mapFetch = comp => tdata => tdata.map(data => {\n const menus = values(data.menus);\n const items = bind$3(menus, menu => filter$2(menu.items, item => item.type === 'item'));\n const repState = Representing.getState(comp);\n repState.update(map$2(items, item => item.data));\n return data;\n });\n const behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: {\n mode: 'dataset',\n getDataKey: comp => get$6(comp.element),\n getFallbackEntry: itemString => ({\n value: itemString,\n meta: {}\n }),\n setValue: (comp, data) => {\n set$5(comp.element, detail.model.getDisplayText(data));\n },\n ...detail.initialData.map(d => wrap$1('initialValue', d)).getOr({})\n }\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: (component, _simulatedEvent) => {\n const sandbox = Coupling.getCoupled(component, 'sandbox');\n const focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$6(component.element).length >= detail.minChars) {\n const previousValue = Composing.getCurrent(sandbox).bind(menu => Highlighting.getHighlighted(menu).map(Representing.getValue));\n detail.previewing.set(true);\n const onOpenSync = _sandbox => {\n Composing.getCurrent(sandbox).each(menu => {\n previousValue.fold(() => {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(menu);\n }\n }, pv => {\n Highlighting.highlightBy(menu, item => {\n const itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(menu).orThunk(() => {\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 }),\n Keying.config({\n mode: 'special',\n onDown: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: comp => {\n const 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: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n const sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return Composing.getCurrent(sandbox).bind(menu => Highlighting.getHighlighted(menu)).map(item => {\n emitWith(comp, itemExecute(), { item });\n return true;\n });\n } else {\n const 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 }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => Toggling.off(hotspot)\n });\n }\n }\n }),\n config('typeaheadevents', [\n runOnExecute$1(comp => {\n const onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }),\n run$1(itemExecute(), (comp, se) => {\n const 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 })\n ].concat(detail.dismissOnBlur ? [run$1(postBlur(), typeahead => {\n const sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\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: {\n ...focusBehaviours$1,\n ...augment(detail.typeaheadBehaviours, behaviours)\n },\n eventOrder: detail.eventOrder\n };\n };\n\n const schema$g = constant$1([\n option$3('lazySink'),\n required$1('fetch'),\n defaulted('minChars', 5),\n defaulted('responseTime', 1000),\n onHandler('onOpen'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n defaulted('layouts', Optional.none()),\n defaulted('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted('getDisplayText', itemData => itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value),\n defaulted('selectsOver', true),\n defaulted('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted('inputClasses', []),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('matchWidth', true),\n defaulted('useMinWidth', false),\n defaulted('dismissOnBlur', true),\n markers$1(['openClass']),\n option$3('initialData'),\n field('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n customField('previewing', () => Cell(true))\n ].concat(schema$k()).concat(sandboxFields()));\n const parts$b = constant$1([external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: detail => {\n return {\n fakeFocus: true,\n onHighlight: (menu, item) => {\n if (!detail.previewing.get()) {\n menu.getSystem().getByUid(detail.uid).each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n } else {\n menu.getSystem().getByUid(detail.uid).each(input => {\n attemptSelectOver(detail.model, input, item).fold(() => Highlighting.dehighlight(menu, item), fn => fn());\n });\n }\n detail.previewing.set(false);\n },\n onExecute: (menu, item) => {\n return menu.getSystem().getByUid(detail.uid).toOptional().map(typeahead => {\n emitWith(typeahead, itemExecute(), { item });\n return true;\n });\n },\n onHover: (menu, item) => {\n detail.previewing.set(false);\n menu.getSystem().getByUid(detail.uid).each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n\n const Typeahead = composite({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\n });\n\n const wrap = delegate => {\n const toCached = () => {\n return wrap(delegate.toCached());\n };\n const bindFuture = f => {\n return wrap(delegate.bind(resA => resA.fold(err => Future.pure(Result.error(err)), a => f(a))));\n };\n const bindResult = f => {\n return wrap(delegate.map(resA => resA.bind(f)));\n };\n const mapResult = f => {\n return wrap(delegate.map(resA => resA.map(f)));\n };\n const mapError = f => {\n return wrap(delegate.map(resA => resA.mapError(f)));\n };\n const foldResult = (whenError, whenValue) => {\n return delegate.map(res => res.fold(whenError, whenValue));\n };\n const withTimeout = (timeout, errorThunk) => {\n return wrap(Future.nu(callback => {\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(result => {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return {\n ...delegate,\n toCached,\n bindFuture,\n bindResult,\n mapResult,\n mapError,\n foldResult,\n withTimeout\n };\n };\n const nu$1 = worker => {\n return wrap(Future.nu(worker));\n };\n const value = value => {\n return wrap(Future.pure(Result.value(value)));\n };\n const error = error => {\n return wrap(Future.pure(Result.error(error)));\n };\n const fromResult = result => {\n return wrap(Future.pure(result));\n };\n const fromFuture = future => {\n return wrap(future.map(Result.value));\n };\n const fromPromise = promise => {\n return nu$1(completer => {\n promise.then(value => {\n completer(Result.value(value));\n }, error => {\n completer(Result.error(error));\n });\n });\n };\n const FutureResult = {\n nu: nu$1,\n wrap,\n pure: value,\n value,\n error,\n fromResult,\n fromFuture,\n fromPromise\n };\n\n const getMenuButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setActive: state => {\n const elm = component.element;\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$9(elm, 'aria-pressed', true);\n } else {\n remove$2(elm, 'tox-tbtn--enabled');\n remove$7(elm, 'aria-pressed');\n }\n },\n isActive: () => has(component.element, 'tox-tbtn--enabled')\n });\n const renderMenuButton = (spec, prefix, backstage, role) => renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role,\n fetch: (_comp, callback) => {\n spec.fetch(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 const getFetch = (items, getButton, backstage) => {\n const getMenuItemAction = item => api => {\n const newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(sink => {\n getButton().getOpt(sink).each(orig => {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n const getMenuItemSetup = item => api => {\n api.setActive(item.storage.get());\n };\n return success => {\n success(map$2(items, item => {\n const text = item.text.fold(() => ({}), text => ({ text }));\n return {\n type: item.type,\n active: false,\n ...text,\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n };\n }));\n };\n };\n\n const renderCommonSpec = (spec, actionOpt, extraBehaviours = [], dom, components, providersBackstage) => {\n const action = actionOpt.fold(() => ({}), action => ({ action }));\n const common = {\n buttonBehaviours: derive$1([\n DisablingConfigs.button(() => !spec.enabled || providersBackstage.isDisabled()),\n receivingConfig(),\n Tabstopping.config({}),\n config('button press', [\n preventDefault('click'),\n preventDefault('mousedown')\n ])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n },\n ...action\n };\n const domFinal = deepMerge(common, { dom });\n return deepMerge(domFinal, { components });\n };\n const renderIconButtonSpec = (spec, action, providersBackstage, extraBehaviours = []) => {\n const tooltipAttributes = spec.tooltip.map(tooltip => ({\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n })).getOr({});\n const dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: tooltipAttributes\n };\n const icon = spec.icon.map(iconName => renderIconFromPack(iconName, providersBackstage.icons));\n const components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n const calculateClassesFromButtonType = buttonType => {\n switch (buttonType) {\n case 'primary':\n return ['tox-button'];\n case 'toolbar':\n return ['tox-tbtn'];\n case 'secondary':\n default:\n return [\n 'tox-button',\n 'tox-button--secondary'\n ];\n }\n };\n const renderButtonSpec = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const translatedText = providersBackstage.translate(spec.text);\n const icon = spec.icon.map(iconName => renderIconFromPack(iconName, providersBackstage.icons));\n const components = [icon.getOrThunk(() => text$1(translatedText))];\n const buttonType = spec.buttonType.getOr(!spec.primary && !spec.borderless ? 'secondary' : 'primary');\n const baseClasses = calculateClassesFromButtonType(buttonType);\n const classes = [\n ...baseClasses,\n ...icon.isSome() ? ['tox-button--icon'] : [],\n ...spec.borderless ? ['tox-button--naked'] : [],\n ...extraClasses\n ];\n const dom = {\n tag: 'button',\n classes,\n attributes: { title: translatedText }\n };\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n const renderButton = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n const getAction = (name, buttonType) => comp => {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n 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 const isMenuFooterButtonSpec = (spec, buttonType) => buttonType === 'menu';\n const isNormalFooterButtonSpec = (spec, buttonType) => buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n const renderFooterButton = (spec, buttonType, backstage) => {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n const getButton = () => memButton;\n const menuButtonSpec = spec;\n const fixedSpec = {\n ...spec,\n onSetup: api => {\n api.setEnabled(spec.enabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n };\n const memButton = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none()));\n return memButton.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n const action = getAction(spec.name, buttonType);\n const buttonSpec = {\n ...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 const renderDialogButton = (spec, providersBackstage) => {\n const action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field({\n factory: Button,\n ...renderButtonSpec(spec, Optional.some(action), providersBackstage, [\n RepresentingConfigs.memory(''),\n ComposingConfigs.self()\n ])\n }));\n };\n\n const separator$1 = { type: 'separator' };\n const toMenuItem = target => ({\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: noop\n });\n const staticMenuItem = (title, url) => ({\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: noop\n });\n const toMenuItems = targets => map$2(targets, toMenuItem);\n const filterLinkTargets = (type, targets) => filter$2(targets, target => target.type === type);\n const filteredTargets = (type, targets) => toMenuItems(filterLinkTargets(type, targets));\n const headerTargets = linkInfo => filteredTargets('header', linkInfo.targets);\n const anchorTargets = linkInfo => filteredTargets('anchor', linkInfo.targets);\n const anchorTargetTop = linkInfo => Optional.from(linkInfo.anchorTop).map(url => staticMenuItem('<top>', url)).toArray();\n const anchorTargetBottom = linkInfo => Optional.from(linkInfo.anchorBottom).map(url => staticMenuItem('<bottom>', url)).toArray();\n const historyTargets = history => map$2(history, url => staticMenuItem(url, url));\n const joinMenuLists = items => {\n return foldl(items, (a, b) => {\n const bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$1, b);\n }, []);\n };\n const filterByQuery = (term, menuItems) => {\n const lowerCaseTerm = term.toLowerCase();\n return filter$2(menuItems, item => {\n const 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\n const getItems = (fileType, input, urlBackstage) => {\n const urlInputValue = Representing.getValue(input);\n const term = urlInputValue.meta.text !== undefined ? urlInputValue.meta.text : urlInputValue.value;\n const info = urlBackstage.getLinkInformation();\n return info.fold(() => [], linkInfo => {\n const history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n const errorId = generate$6('aria-invalid');\n const renderUrlInput = (spec, backstage, urlBackstage, initialData) => {\n const providersBackstage = backstage.shared.providers;\n const updateHistory = component => {\n const urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n const pField = FormField.parts.field({\n factory: Typeahead,\n ...initialData.map(initialData => ({ initialData })).getOr({}),\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: input => {\n const items = getItems(spec.filetype, input, urlBackstage);\n const tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\n return Future.pure(tdata);\n },\n getHotspot: comp => memUrlBox.getOpt(comp),\n onSetValue: (comp, _newValue) => {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([\n urlBackstage.getValidationHandler().map(handler => Invalidating.config({\n getRoot: comp => parentElement(comp.element),\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: (comp, err) => {\n memInvalidIcon.getOpt(comp).each(invalidComp => {\n set$9(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: input => {\n const urlEntry = Representing.getValue(input);\n return FutureResult.nu(completer => {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, validation => {\n if (validation.status === 'invalid') {\n const err = Result.error(validation.message);\n completer(err);\n } else {\n const val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n })).toArray(),\n [\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.isDisabled() }),\n Tabstopping.config({}),\n config('urlinput-events', flatten([\n spec.filetype === 'file' ? [run$1(input(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n })] : [],\n [\n run$1(change(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run$1(postPaste(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ]\n ]))\n ]\n ])),\n eventOrder: {\n [input()]: [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ]\n },\n model: {\n getDisplayText: itemData => itemData.value,\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: (_menu, component, _entry) => {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: (typeahead, _sandbox, _item, _value) => {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n });\n const pLabel = spec.label.map(label => renderLabel$2(label, providersBackstage));\n const makeIcon = (name, errId, icon = name, label = name) => render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: {\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite',\n ...errId.fold(() => ({}), id => ({ id }))\n }\n }, providersBackstage.icons);\n const memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n const memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n const optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n const browseUrlEvent = generate$6('browser.url.event');\n const memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ],\n behaviours: derive$1([Disabling.config({ disabled: () => !spec.enabled || providersBackstage.isDisabled() })])\n });\n const memUrlPickerButton = record(renderButton({\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.label.getOr(''),\n enabled: spec.enabled,\n primary: false,\n buttonType: Optional.none(),\n borderless: true\n }, component => emit(component, browseUrlEvent), providersBackstage, [], ['tox-browse-url']));\n const controlHWrapper = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(() => memUrlPickerButton.asSpec()).toArray()\n ])\n });\n const openUrlPicker = comp => {\n Composing.getCurrent(comp).each(field => {\n const componentData = Representing.getValue(field);\n const urlData = {\n fieldname: spec.name,\n ...componentData\n };\n optUrlPicker.each(picker => {\n picker(urlData).get(chosenData => {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.isDisabled(),\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n receivingConfig(),\n config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\n\n const renderAlertBanner = (spec, providersBackstage) => Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ spec.level }`\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: get$2(spec.icon, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: comp => {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n },\n buttonBehaviours: derive$1([addFocusableBehaviour()])\n })]\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n\n const set$1 = (element, status) => {\n element.dom.checked = status;\n };\n const get$1 = element => element.dom.checked;\n\n const renderCheckbox = (spec, providerBackstage, initialData) => {\n const toggleCheckboxHandler = comp => {\n comp.element.dom.click();\n return Optional.some(true);\n };\n const pField = FormField.parts.field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({ disabled: () => !spec.enabled || providerBackstage.isDisabled() }),\n Tabstopping.config({}),\n Focusing.config({}),\n RepresentingConfigs.withElement(initialData, get$1, set$1),\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const pLabel = FormField.parts.label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label']\n },\n components: [text$1(providerBackstage.translate(spec.label))],\n behaviours: derive$1([Unselecting.config({})])\n });\n const makeIcon = className => {\n const iconName = className === 'checked' ? 'selected' : 'unselected';\n return render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ]\n }, providerBackstage.icons);\n };\n const memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ],\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providerBackstage.isDisabled(),\n disableClass: 'tox-checkbox--disabled',\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ])\n });\n };\n\n const renderHtmlPanel = 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: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n });\n }\n };\n\n const make$2 = render => {\n return (parts, spec, dialogData, backstage) => get$g(spec, 'name').fold(() => render(spec, backstage, Optional.none()), fieldName => parts.field(fieldName, render(spec, backstage, get$g(dialogData, fieldName))));\n };\n const makeIframe = render => (parts, spec, dialogData, backstage) => {\n const iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$2(render)(parts, iframeSpec, dialogData, backstage);\n };\n const factories = {\n bar: make$2((spec, backstage) => renderBar(spec, backstage.shared)),\n collection: make$2((spec, backstage, data) => renderCollection(spec, backstage.shared.providers, data)),\n alertbanner: make$2((spec, backstage) => renderAlertBanner(spec, backstage.shared.providers)),\n input: make$2((spec, backstage, data) => renderInput(spec, backstage.shared.providers, data)),\n textarea: make$2((spec, backstage, data) => renderTextarea(spec, backstage.shared.providers, data)),\n label: make$2((spec, backstage) => renderLabel$1(spec, backstage.shared)),\n iframe: makeIframe((spec, backstage, data) => renderIFrame(spec, backstage.shared.providers, data)),\n button: make$2((spec, backstage) => renderDialogButton(spec, backstage.shared.providers)),\n checkbox: make$2((spec, backstage, data) => renderCheckbox(spec, backstage.shared.providers, data)),\n colorinput: make$2((spec, backstage, data) => renderColorInput(spec, backstage.shared, backstage.colorinput, data)),\n colorpicker: make$2((spec, backstage, data) => renderColorPicker(spec, backstage.shared.providers, data)),\n dropzone: make$2((spec, backstage, data) => renderDropZone(spec, backstage.shared.providers, data)),\n grid: make$2((spec, backstage) => renderGrid(spec, backstage.shared)),\n listbox: make$2((spec, backstage, data) => renderListBox(spec, backstage, data)),\n selectbox: make$2((spec, backstage, data) => renderSelectBox(spec, backstage.shared.providers, data)),\n sizeinput: make$2((spec, backstage) => renderSizeInput(spec, backstage.shared.providers)),\n slider: make$2((spec, backstage, data) => renderSlider(spec, backstage.shared.providers, data)),\n urlinput: make$2((spec, backstage, data) => renderUrlInput(spec, backstage, backstage.urlinput, data)),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2(renderHtmlPanel),\n imagepreview: make$2((spec, _, data) => renderImagePreview(spec, data)),\n table: make$2((spec, backstage) => renderTable(spec, backstage.shared.providers)),\n panel: make$2((spec, backstage) => renderPanel(spec, backstage))\n };\n const noFormParts = {\n field: (_name, spec) => spec,\n record: constant$1([])\n };\n const interpretInForm = (parts, spec, dialogData, oldBackstage) => {\n const newBackstage = deepMerge(oldBackstage, { shared: { interpreter: childSpec => interpretParts(parts, childSpec, dialogData, newBackstage) } });\n return interpretParts(parts, spec, dialogData, newBackstage);\n };\n const interpretParts = (parts, spec, dialogData, backstage) => get$g(factories, spec.type).fold(() => {\n console.error(`Unknown factory type \"${ spec.type }\", defaulting to container: `, spec);\n return spec;\n }, factory => factory(parts, spec, dialogData, backstage));\n const interpretWithoutForm = (spec, dialogData, backstage) => interpretParts(noFormParts, spec, dialogData, backstage);\n\n const labelPrefix = 'layout-inset';\n const westEdgeX = anchor => anchor.x;\n const middleX = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const eastEdgeX = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY = anchor => anchor.y;\n const southY = (anchor, element) => anchor.y + anchor.height - element.height;\n const centreY = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const southwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), southY(anchor, element), bubbles.insetSouthwest(), northwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), labelPrefix);\n const southeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), southY(anchor, element), bubbles.insetSoutheast(), northeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), labelPrefix);\n const northwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), northY(anchor), bubbles.insetNorthwest(), southwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), labelPrefix);\n const northeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), northY(anchor), bubbles.insetNortheast(), southeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), labelPrefix);\n const north = (anchor, element, bubbles) => nu$6(middleX(anchor, element), northY(anchor), bubbles.insetNorth(), south$3(), 'north', boundsRestriction(anchor, { top: 2 }), labelPrefix);\n const south = (anchor, element, bubbles) => nu$6(middleX(anchor, element), southY(anchor, element), bubbles.insetSouth(), north$3(), 'south', boundsRestriction(anchor, { bottom: 3 }), labelPrefix);\n const east = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), centreY(anchor, element), bubbles.insetEast(), west$3(), 'east', boundsRestriction(anchor, { right: 0 }), labelPrefix);\n const west = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), centreY(anchor, element), bubbles.insetWest(), east$3(), 'west', boundsRestriction(anchor, { left: 1 }), labelPrefix);\n const lookupPreserveLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return north;\n case 'northeast':\n return northeast;\n case 'northwest':\n return northwest;\n case 'south':\n return south;\n case 'southeast':\n return southeast;\n case 'southwest':\n return southwest;\n case 'east':\n return east;\n case 'west':\n return west;\n }\n };\n const preserve = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupPreserveLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n const lookupFlippedLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return south;\n case 'northeast':\n return southeast;\n case 'northwest':\n return southwest;\n case 'south':\n return north;\n case 'southeast':\n return northeast;\n case 'southwest':\n return northwest;\n case 'east':\n return west;\n case 'west':\n return east;\n }\n };\n const flip = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupFlippedLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n const bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n const getInlineDialogAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const bubbleSize = 12;\n const overrides = { maxHeightFunction: expandable$1() };\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [northeast],\n onLtr: () => [northwest]\n },\n overrides\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [southeast$2],\n onLtr: () => [southwest$2]\n },\n overrides\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getBannerAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: () => [north],\n onLtr: () => [north]\n }\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: () => [south$2],\n onLtr: () => [south$2]\n }\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getCursorAnchor = (editor, bodyElement) => () => ({\n type: 'selection',\n root: bodyElement(),\n getSelection: () => {\n const 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 const getNodeAnchor$1 = bodyElement => element => ({\n type: 'node',\n root: bodyElement(),\n node: element\n });\n const getAnchors = (editor, lazyAnchorbar, isToolbarTop) => {\n const useFixedToolbarContainer = useFixedContainer(editor);\n const bodyElement = () => SugarElement.fromDom(editor.getBody());\n const contentAreaElement = () => SugarElement.fromDom(editor.getContentAreaContainer());\n const lazyUseEditableAreaAnchor = () => useFixedToolbarContainer || !isToolbarTop();\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\n const colorPicker = editor => (callback, value) => {\n const dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n const hasCustomColors = editor => () => hasCustomColors$1(editor);\n const getColors = editor => () => getColors$2(editor);\n const getColorCols = editor => () => getColorCols$1(editor);\n const ColorInputBackstage = editor => ({\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n });\n\n const isDraggableModal = editor => () => isDraggableModal$1(editor);\n const DialogBackstage = editor => ({ isDraggableModal: isDraggableModal(editor) });\n\n const HeaderBackstage = editor => {\n const mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: () => mode.get() === 'top',\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n\n const defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n const isNestedFormat = format => has$2(format, 'items');\n const isBlockFormat = format => has$2(format, 'block');\n const isInlineFormat = format => has$2(format, 'inline');\n const isSelectorFormat = format => has$2(format, 'selector');\n const mapFormats = userFormats => foldl(userFormats, (acc, fmt) => {\n if (isNestedFormat(fmt)) {\n const 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 const formatName = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n const 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 {\n ...acc,\n formats: acc.formats.concat(fmt)\n };\n }\n }, {\n customFormats: [],\n formats: []\n });\n const registerCustomFormats = (editor, userFormats) => {\n const result = mapFormats(userFormats);\n const registerFormats = customFormats => {\n each$1(customFormats, 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', () => {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n const getStyleFormats = editor => getUserStyleFormats(editor).map(userFormats => {\n const registeredUserFormats = registerCustomFormats(editor, userFormats);\n return shouldMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n\n const processBasic = (item, isSelectedFor, getPreviewFor) => {\n const formatterSpec = {\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n };\n return deepMerge(item, formatterSpec);\n };\n const register$a = (editor, formats, isSelectedFor, getPreviewFor) => {\n const enrichSupported = item => processBasic(item, isSelectedFor, getPreviewFor);\n const enrichMenu = item => {\n const submenuSpec = { type: 'submenu' };\n return deepMerge(item, submenuSpec);\n };\n const enrichCustom = item => {\n const formatName = isString(item.name) ? item.name : generate$6(item.title);\n const formatNameWithPrefix = `custom-${ formatName }`;\n const customSpec = {\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\n };\n const newItem = deepMerge(item, customSpec);\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n const doEnrich = items => map$2(items, item => {\n const keys$1 = keys(item);\n if (hasNonNullableKey(item, 'items')) {\n const newItems = doEnrich(item.items);\n return deepMerge(enrichMenu(item), { getStyleItems: constant$1(newItems) });\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, { type: 'separator' });\n } else {\n return enrichCustom(item);\n }\n });\n return doEnrich(formats);\n };\n\n const init$8 = editor => {\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const 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 const flatten = fmt => {\n const subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, flatten) : [fmt.format];\n };\n const settingsFormats = Cell([]);\n const settingsFlattenedFormats = Cell([]);\n const eventsFormats = Cell([]);\n const eventsFlattenedFormats = Cell([]);\n const replaceSettings = Cell(false);\n editor.on('PreInit', _e => {\n const formats = getStyleFormats(editor);\n const enriched = register$a(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind$3(enriched, flatten));\n });\n editor.on('addStyleModifications', e => {\n const modifications = register$a(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind$3(modifications, flatten));\n });\n const getData = () => {\n const fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n const fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n const getFlattenedKeys = () => {\n const fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n const fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return {\n getData,\n getFlattenedKeys\n };\n };\n\n const isElement = node => isNonNullable(node) && node.nodeType === 1;\n const trim = global$1.trim;\n const hasContentEditableState = value => {\n return 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 const isContentEditableTrue = hasContentEditableState('true');\n const isContentEditableFalse = hasContentEditableState('false');\n const create = (type, title, url, level, attach) => {\n return {\n type,\n title,\n url,\n level,\n attach\n };\n };\n const isChildOfContentEditableTrue = node => {\n while (node = node.parentNode) {\n const value = node.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n return false;\n };\n const select = (selector, root) => {\n return map$2(descendants(SugarElement.fromDom(root), selector), element => {\n return element.dom;\n });\n };\n const getElementText = elm => {\n return elm.innerText || elm.textContent;\n };\n const getOrGenerateId = elm => {\n return elm.id ? elm.id : generate$6('h');\n };\n const isAnchor = elm => {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n const isValidAnchor = elm => {\n return isAnchor(elm) && isEditable(elm);\n };\n const isHeader = elm => {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n const isEditable = elm => {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n const isValidHeader = elm => {\n return isHeader(elm) && isEditable(elm);\n };\n const getLevel = elm => {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n const headerTarget = elm => {\n const headerId = getOrGenerateId(elm);\n const attach = () => {\n elm.id = headerId;\n };\n return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n const anchorTarget = elm => {\n const anchorId = elm.id || elm.name;\n const anchorText = getElementText(elm);\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n const getHeaderTargets = elms => {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n const getAnchorTargets = elms => {\n return map$2(filter$2(elms, isValidAnchor), anchorTarget);\n };\n const getTargetElements = elm => {\n const elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n const hasTitle = target => {\n return trim(target.title).length > 0;\n };\n const find = elm => {\n const elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n const LinkTargets = { find };\n\n const STORAGE_KEY = 'tinymce-url-history';\n const HISTORY_LENGTH = 5;\n const isHttpUrl = url => isString(url) && /^https?/.test(url);\n const isArrayOfUrl = a => isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n const isRecordOfUrlArray = r => isObject(r) && find$4(r, value => !isArrayOfUrl(value)).isNone();\n const getAllHistory = () => {\n const unparsedHistory = global$4.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n let 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 const setAllHistory = history => {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n global$4.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n const getHistory = fileType => {\n const history = getAllHistory();\n return get$g(history, fileType).getOr([]);\n };\n const addToHistory = (url, fileType) => {\n if (!isHttpUrl(url)) {\n return;\n }\n const history = getAllHistory();\n const items = get$g(history, fileType).getOr([]);\n const itemsWithoutUrl = filter$2(items, item => item !== url);\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n const isTruthy = value => !!value;\n const makeMap = value => map$1(global$1.makeMap(value, /[, ]/), isTruthy);\n const getPicker = editor => Optional.from(getFilePickerCallback(editor));\n const getPickerTypes = editor => {\n const optFileTypes = Optional.from(getFilePickerTypes(editor)).filter(isTruthy).map(makeMap);\n return getPicker(editor).fold(never, _picker => optFileTypes.fold(always, types => keys(types).length > 0 ? types : false));\n };\n const getPickerSetting = (editor, filetype) => {\n const 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 const getUrlPicker = (editor, filetype) => getPickerSetting(editor, filetype).map(picker => entry => Future.nu(completer => {\n const handler = (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 const r = {\n value,\n meta\n };\n completer(r);\n };\n const meta = {\n filetype,\n fieldname: entry.fieldname,\n ...Optional.from(entry.meta).getOr({})\n };\n picker.call(editor, handler, entry.value, meta);\n }));\n const getTextSetting = value => Optional.from(value).filter(isString).getOrUndefined();\n const getLinkInformation = editor => {\n if (!useTypeaheadUrls(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 const getValidationHandler = editor => Optional.from(getFilePickerValidatorHandler(editor));\n const UrlInputBackstage = editor => ({\n getHistory,\n addToHistory,\n getLinkInformation: () => getLinkInformation(editor),\n getValidationHandler: () => getValidationHandler(editor),\n getUrlPicker: filetype => getUrlPicker(editor, filetype)\n });\n\n const init$7 = (lazySink, editor, lazyAnchorbar) => {\n const contextMenuState = Cell(false);\n const toolbar = HeaderBackstage(editor);\n const backstage = {\n shared: {\n providers: {\n icons: () => editor.ui.registry.getAll().icons,\n menuItems: () => editor.ui.registry.getAll().menuItems,\n translate: global$8.translate,\n isDisabled: () => editor.mode.isReadOnly() || !editor.ui.isEnabled(),\n getOption: editor.options.get\n },\n interpreter: s => interpretWithoutForm(s, {}, backstage),\n anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),\n header: toolbar,\n getSink: lazySink\n },\n urlinput: UrlInputBackstage(editor),\n styles: init$8(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: () => contextMenuState.get(),\n setContextMenuState: state => contextMenuState.set(state)\n };\n return backstage;\n };\n\n const setup$b = (editor, mothership, uiMothership) => {\n const broadcastEvent = (name, evt) => {\n each$1([\n mothership,\n uiMothership\n ], ship => {\n ship.broadcastEvent(name, evt);\n });\n };\n const broadcastOn = (channel, message) => {\n each$1([\n mothership,\n uiMothership\n ], ship => {\n ship.broadcastOn([channel], message);\n });\n };\n const fireDismissPopups = evt => broadcastOn(dismissPopups(), { target: evt.target });\n const doc = getDocument();\n const onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n const onTouchmove = bind(doc, 'touchmove', evt => broadcastEvent(documentTouchmove(), evt));\n const onTouchend = bind(doc, 'touchend', evt => broadcastEvent(documentTouchend(), evt));\n const onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n const onMouseup = bind(doc, 'mouseup', evt => {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target });\n }\n });\n const onContentClick = raw => broadcastOn(dismissPopups(), { target: SugarElement.fromDom(raw.target) });\n const onContentMouseup = raw => {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: SugarElement.fromDom(raw.target) });\n }\n };\n const onContentMousedown = () => {\n each$1(editor.editorManager.get(), loopEditor => {\n if (editor !== loopEditor) {\n loopEditor.dispatch('DismissPopups', { relatedTarget: editor });\n }\n });\n };\n const onWindowScroll = evt => broadcastEvent(windowScroll(), fromRawEvent(evt));\n const onWindowResize = evt => {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n const onEditorResize = () => broadcastOn(repositionPopups(), {});\n const onEditorProgress = evt => {\n if (evt.state) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(editor.getContainer()) });\n }\n };\n const onDismissPopups = event => {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(event.relatedTarget.getContainer()) });\n };\n editor.on('PostRender', () => {\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', () => {\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', () => {\n detachSystem(mothership);\n detachSystem(uiMothership);\n mothership.destroy();\n uiMothership.destroy();\n });\n };\n\n const parts$a = AlloyParts;\n const partType = PartType;\n\n const schema$f = constant$1([\n defaulted('shell', false),\n required$1('makeItem'),\n defaulted('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n const customListDetail = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n const parts$9 = constant$1([itemsPart]);\n const name = constant$1('CustomList');\n\n const factory$d = (detail, components, _spec, _external) => {\n const setItems = (list, items) => {\n getListContainer(list).fold(() => {\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 }, container => {\n const itemComps = Replacing.contents(container);\n const numListsRequired = items.length;\n const numListsToAdd = numListsRequired - itemComps.length;\n const itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, () => detail.makeItem()) : [];\n const itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, item => Replacing.remove(container, item));\n each$1(itemsToAdd, item => Replacing.append(container, item));\n const builtLists = Replacing.contents(container);\n each$1(builtLists, (item, i) => {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components\n };\n const getListContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems }\n };\n };\n const CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$d,\n apis: {\n setItems: (apis, list, items) => {\n apis.setItems(list, items);\n }\n }\n });\n\n const schema$e = constant$1([\n required$1('dom'),\n defaulted('shell', true),\n field('toolbarBehaviours', [Replacing])\n ]);\n const enhanceGroups = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n const factory$c = (detail, components, _spec, _externals) => {\n const setGroups = (toolbar, groups) => {\n getGroupContainer(toolbar).fold(() => {\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 }, container => {\n Replacing.set(container, groups);\n });\n };\n const getGroupContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n 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: { setGroups },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const Toolbar = composite({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$c,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n const setup$a = noop;\n const isDocked$2 = never;\n const getBehaviours$1 = constant$1([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$1\n });\n\n const getOffsetParent = element => {\n const isFixed = is$1(getRaw(element, 'position'), 'fixed');\n const offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(() => {\n const marker = SugarElement.fromTag('span');\n return parent(element).bind(parent => {\n append$2(parent, marker);\n const offsetParent$1 = offsetParent(marker);\n remove$5(marker);\n return offsetParent$1;\n });\n });\n };\n const getOrigin = element => getOffsetParent(element).map(absolute$3).getOrThunk(() => SugarPosition(0, 0));\n\n const morphAdt = Adt.generate([\n { static: [] },\n { absolute: ['positionCss'] },\n { fixed: ['positionCss'] }\n ]);\n const appear = (component, contextualInfo) => {\n const 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 const disappear = (component, contextualInfo) => {\n const 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 const isPartiallyVisible = (box, viewport) => box.y < viewport.bottom && box.bottom > viewport.y;\n const isTopCompletelyVisible = (box, viewport) => box.y >= viewport.y;\n const isBottomCompletelyVisible = (box, viewport) => box.bottom <= viewport.bottom;\n const isVisibleForModes = (modes, box, viewport) => forall(modes, mode => {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n const getPrior = (elem, state) => state.getInitialPos().map(pos => bounds(pos.bounds.x, pos.bounds.y, get$c(elem), get$d(elem)));\n const storePrior = (elem, box, state) => {\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$e(elem, 'position') || 'static',\n bounds: box\n });\n };\n const revertToOriginal = (elem, box, state) => state.getInitialPos().bind(position => {\n state.clearInitialPos();\n switch (position.position) {\n case 'static':\n return Optional.some(morphAdt.static());\n case 'absolute':\n const offsetBox = getOffsetParent(elem).map(box$1).getOrThunk(() => box$1(body()));\n return Optional.some(morphAdt.absolute(NuPositionCss('absolute', get$g(position.style, 'left').map(_left => box.x - offsetBox.x), get$g(position.style, 'top').map(_top => box.y - offsetBox.y), get$g(position.style, 'right').map(_right => offsetBox.right - box.right), get$g(position.style, 'bottom').map(_bottom => offsetBox.bottom - box.bottom))));\n default:\n return Optional.none();\n }\n });\n const morphToOriginal = (elem, viewport, state) => getPrior(elem, state).filter(box => isVisibleForModes(state.getModes(), box, viewport)).bind(box => revertToOriginal(elem, box, state));\n const morphToFixed = (elem, viewport, state) => {\n const box = box$1(elem);\n if (!isVisibleForModes(state.getModes(), box, viewport)) {\n storePrior(elem, box, state);\n const winBox = win();\n const left = box.x - winBox.x;\n const top = viewport.y - winBox.y;\n const bottom = winBox.bottom - viewport.bottom;\n const isTop = box.y <= viewport.y;\n return Optional.some(morphAdt.fixed(NuPositionCss('fixed', Optional.some(left), isTop ? Optional.some(top) : Optional.none(), Optional.none(), !isTop ? Optional.some(bottom) : Optional.none())));\n } else {\n return Optional.none();\n }\n };\n const getMorph = (component, viewport, state) => {\n const elem = component.element;\n const isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? morphToOriginal(elem, viewport, state) : morphToFixed(elem, viewport, state);\n };\n const getMorphToOriginal = (component, state) => {\n const elem = component.element;\n return getPrior(elem, state).bind(box => revertToOriginal(elem, box, state));\n };\n\n const morphToStatic = (component, config, state) => {\n state.setDocked(false);\n each$1([\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'position'\n ], prop => remove$6(component.element, prop));\n config.onUndocked(component);\n };\n const morphToCoord = (component, config, state, position) => {\n const isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n const method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n const updateVisibility = (component, config, state, viewport, morphToDocked = false) => {\n config.contextual.each(contextInfo => {\n contextInfo.lazyContext(component).each(box => {\n const 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 const method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n const refreshInternal = (component, config, state) => {\n const viewport = config.lazyViewport(component);\n const isDocked = state.isDocked();\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n getMorph(component, viewport, state).each(morph => {\n morph.fold(() => morphToStatic(component, config, state), position => morphToCoord(component, config, state, position), position => {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, position);\n });\n });\n };\n const resetInternal = (component, config, state) => {\n const elem = component.element;\n state.setDocked(false);\n getMorphToOriginal(component, state).each(morph => {\n morph.fold(() => morphToStatic(component, config, state), position => morphToCoord(component, config, state, position), noop);\n });\n state.setVisible(true);\n config.contextual.each(contextInfo => {\n remove$1(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n const refresh$4 = (component, config, state) => {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n const reset = (component, config, state) => {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n const isDocked$1 = (component, config, state) => state.isDocked();\n const setModes = (component, config, state, modes) => state.setModes(modes);\n const getModes = (component, config, state) => 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\n const events$5 = (dockInfo, dockState) => derive$2([\n runOnSource(transitionend(), (component, simulatedEvent) => {\n dockInfo.contextual.each(contextInfo => {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$1(component.element, [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n const notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run$1(windowScroll(), (component, _) => {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(windowResize(), (component, _) => {\n reset(component, dockInfo, dockState);\n })\n ]);\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$5\n });\n\n var DockingSchema = [\n optionObjOf('contextual', [\n requiredString('fadeInClass'),\n requiredString('fadeOutClass'),\n requiredString('transitionClass'),\n requiredFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', win),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n const init$6 = spec => {\n const docked = Cell(false);\n const visible = Cell(true);\n const initialBounds = value$2();\n const modes = Cell(spec.modes);\n const readState = () => `docked: ${ docked.get() }, visible: ${ visible.get() }, modes: ${ modes.get().join(',') }`;\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\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$6\n });\n\n const Docking = create$3({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\n const toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n\n const visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n const editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n const editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n const scrollFromBehindHeader = (e, containerHeader) => {\n const doc = owner$4(containerHeader);\n const viewHeight = doc.dom.defaultView.innerHeight;\n const scrollPos = get$b(doc);\n const markerElement = SugarElement.fromDom(e.elm);\n const markerPos = absolute$2(markerElement);\n const markerHeight = get$d(markerElement);\n const markerTop = markerPos.y;\n const markerBottom = markerTop + markerHeight;\n const editorHeaderPos = absolute$3(containerHeader);\n const editorHeaderHeight = get$d(containerHeader);\n const editorHeaderTop = editorHeaderPos.top;\n const editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n const editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n const 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 const y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n const isDockedMode = (header, mode) => contains$2(Docking.getModes(header), mode);\n const updateIframeContentFlow = header => {\n const getOccupiedHeight = elm => getOuter$2(elm) + (parseInt(get$e(elm, 'margin-top'), 10) || 0) + (parseInt(get$e(elm, 'margin-bottom'), 10) || 0);\n const elm = header.element;\n parent(elm).each(parentElem => {\n const padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n const parentWidth = get$c(parentElem);\n set$8(elm, 'width', parentWidth + 'px');\n set$8(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, padding);\n }\n });\n };\n const updateSinkVisibility = (sinkElem, visible) => {\n if (visible) {\n remove$2(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$2(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n const updateEditorClasses = (editor, docked) => {\n const 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 const restoreFocus = (headerElem, focusedElem) => {\n const ownerDoc = owner$4(focusedElem);\n active$1(ownerDoc).filter(activeElm => !eq(focusedElem, activeElm)).filter(activeElm => eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm)).each(() => focus$3(focusedElem));\n };\n const findFocusedElem = (rootElm, lazySink) => search(rootElm).orThunk(() => lazySink().toOptional().bind(sink => search(sink.element)));\n const setup$9 = (editor, sharedBackstage, lazyHeader) => {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('ResizeWindow ResizeEditor', () => {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', () => {\n lazyHeader().each(comp => {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('AfterScrollIntoView', e => {\n lazyHeader().each(header => {\n Docking.refresh(header);\n const headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', () => {\n updateEditorClasses(editor, false);\n });\n };\n const isDocked = lazyHeader => lazyHeader().map(Docking.isDocked).getOr(false);\n const getIframeBehaviours = () => [Receiving.config({ channels: { [toolbarHeightChange()]: { onReceive: updateIframeContentFlow } } })];\n const getBehaviours = (editor, sharedBackstage) => {\n const focusedElm = value$2();\n const lazySink = sharedBackstage.getSink;\n const runOnSinkElement = f => {\n lazySink().each(sink => f(sink.element));\n };\n const onDockingSwitch = comp => {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(sink => sink.getSystem().broadcastOn([repositionPopups()], {}));\n };\n const additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return [\n Focusing.config({}),\n Docking.config({\n contextual: {\n lazyContext: comp => {\n const headerHeight = getOuter$2(comp.element);\n const container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n const box = box$1(SugarElement.fromDom(container));\n const boxHeight = box.height - headerHeight;\n const topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return Optional.some(bounds(box.x, topBound, box.width, boxHeight));\n },\n onShow: () => {\n runOnSinkElement(elem => updateSinkVisibility(elem, true));\n },\n onShown: comp => {\n runOnSinkElement(elem => remove$1(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]));\n focusedElm.get().each(elem => {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: comp => {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(elem => updateSinkVisibility(elem, false));\n },\n onHidden: () => {\n runOnSinkElement(elem => remove$1(elem, [visibility.transitionClass]));\n },\n ...visibility\n },\n lazyViewport: comp => {\n const win$1 = win();\n const offset = getStickyToolbarOffset(editor);\n const top = win$1.y + (isDockedMode(comp, 'top') ? offset : 0);\n const 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 }),\n ...additionalBehaviours\n ];\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n\n const renderHeader = spec => {\n const editor = spec.editor;\n const 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\n const groupToolbarButtonSchema = objOf([\n type,\n requiredOf('items', oneOf([\n arrOfObj([\n name$1,\n requiredArrayOf('items', string)\n ]),\n string\n ]))\n ].concat(baseToolbarButtonFields));\n const createGroupToolbarButton = spec => asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n\n const baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n requiredFunction('fetch'),\n defaultedFunction('onSetup', () => noop)\n ];\n\n const MenuButtonSchema = objOf([\n type,\n ...baseMenuButtonFields\n ]);\n const createMenuButton = spec => asRaw('menubutton', MenuButtonSchema, spec);\n\n const splitButtonSchema = objOf([\n type,\n optionalTooltip,\n optionalIcon,\n optionalText,\n optionalSelect,\n fetch$1,\n onSetup,\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaultedColumns(1),\n onAction,\n onItemAction\n ]);\n const createSplitButton = spec => asRaw('SplitButton', splitButtonSchema, spec);\n\n const factory$b = (detail, spec) => {\n const setMenus = (comp, menus) => {\n const newMenus = map$2(menus, m => {\n const buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: callback => {\n callback(m.getItems());\n }\n };\n const internal = createMenuButton(buttonSpec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Optional.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n const apis = {\n focus: Keying.focusIn,\n setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(component => {\n detail.onSetup(component);\n }),\n run$1(mouseover(), (comp, se) => {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(activeButton => {\n closest$1(se.event.target, '.' + 'tox-mbtn').each(hoveredButton => {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(activeComp => {\n comp.getSystem().getByDom(hoveredButton).each(hoveredComp => {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }),\n run$1(focusShifted(), (comp, se) => {\n se.event.prevFocus.bind(prev => comp.getSystem().getByDom(prev).toOptional()).each(prev => {\n se.event.newFocus.bind(nu => comp.getSystem().getByDom(nu).toOptional()).each(nu => {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: comp => {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single({\n factory: factory$b,\n name: 'silver.Menubar',\n configFields: [\n required$1('dom'),\n required$1('uid'),\n required$1('onEscape'),\n required$1('backstage'),\n defaulted('onSetup', noop)\n ],\n apis: {\n focus: (apis, comp) => {\n apis.focus(comp);\n },\n setMenus: (apis, comp, menus) => {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n const getAnimationRoot = (component, slideConfig) => slideConfig.getAnimationRoot.fold(() => component.element, get => get(component));\n\n const getDimensionProperty = slideConfig => slideConfig.dimension.property;\n const getDimension = (slideConfig, elem) => slideConfig.dimension.getDimension(elem);\n const disableTransitions = (component, slideConfig) => {\n const root = getAnimationRoot(component, slideConfig);\n remove$1(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n const setShrunk = (component, slideConfig) => {\n remove$2(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$8(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n const setGrown = (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 const doImmediateShrink = (component, slideConfig, slideState, _calculatedSize) => {\n slideState.setCollapsed();\n set$8(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 const doStartShrink = (component, slideConfig, slideState, calculatedSize) => {\n const size = calculatedSize.getOrThunk(() => getDimension(slideConfig, component.element));\n slideState.setCollapsed();\n set$8(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n const 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 const doStartSmartShrink = (component, slideConfig, slideState) => {\n const size = getDimension(slideConfig, component.element);\n const shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Optional.some(size));\n };\n const doStartGrow = (component, slideConfig, slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n const wasShrinking = has(root, slideConfig.shrinkingClass);\n const beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n const fullSize = getDimension(slideConfig, component.element);\n const startPartialGrow = () => {\n set$8(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n const startCompleteGrow = () => {\n setShrunk(component, slideConfig);\n };\n const setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$2(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n const refresh$3 = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n remove$6(component.element, getDimensionProperty(slideConfig));\n const fullSize = getDimension(slideConfig, component.element);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n const grow = (component, slideConfig, slideState) => {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n const shrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n const immediateShrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n const hasGrown = (component, slideConfig, slideState) => slideState.isExpanded();\n const hasShrunk = (component, slideConfig, slideState) => slideState.isCollapsed();\n const isGrowing = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.growingClass) === true;\n };\n const isShrinking = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n const isTransitioning = (component, slideConfig, slideState) => isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n const toggleGrow = (component, slideConfig, slideState) => {\n const f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\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\n const exhibit = (base, slideConfig, _slideState) => {\n const 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 const events$4 = (slideConfig, slideState) => derive$2([runOnSource(transitionend(), (component, simulatedEvent) => {\n const 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 const 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\n var SlidingSchema = [\n required$1('closedClass'),\n required$1('openClass'),\n required$1('shrinkingClass'),\n required$1('growingClass'),\n option$3('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted('expanded', false),\n requiredOf('dimension', choose$1('property', {\n width: [\n output$1('property', 'width'),\n output$1('getDimension', elem => get$c(elem) + 'px')\n ],\n height: [\n output$1('property', 'height'),\n output$1('getDimension', elem => get$d(elem) + 'px')\n ]\n }))\n ];\n\n const init$5 = spec => {\n const state = Cell(spec.expanded);\n const readState = () => 'expanded: ' + state.get();\n return nu$8({\n isExpanded: () => state.get() === true,\n isCollapsed: () => state.get() === false,\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$5\n });\n\n const Sliding = create$3({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n const owner = 'container';\n const schema$d = [field('slotBehaviours', [])];\n const getPartName = name => '<alloy.field.' + name + '>';\n const sketch = sSpec => {\n const parts = (() => {\n const record = [];\n const slot = (name, config) => {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n return {\n slot,\n record: constant$1(record)\n };\n })();\n const spec = sSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName(n)\n }));\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n const make$1 = (detail, components) => {\n const getSlotNames = _ => getAllPartNames(detail);\n const getSlot = (container, key) => getPart(container, detail, key);\n const onSlot = (f, def) => (container, key) => getPart(container, detail, key).map(slot => f(slot, key)).getOr(def);\n const onSlots = f => (container, keys) => {\n each$1(keys, key => f(container, key));\n };\n const doShowing = (comp, _key) => get$f(comp.element, 'aria-hidden') !== 'true';\n const doShow = (comp, key) => {\n if (!doShowing(comp)) {\n const 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 const doHide = (comp, key) => {\n if (doShowing(comp)) {\n const element = comp.element;\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n const isShowing = onSlot(doShowing, false);\n const hideSlot = onSlot(doHide);\n const hideSlots = onSlots(hideSlot);\n const hideAllSlots = container => hideSlots(container, getSlotNames());\n const showSlot = onSlot(doShow);\n const apis = {\n getSlotNames,\n getSlot,\n isShowing,\n hideSlot,\n hideAllSlots,\n showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$3(detail.slotBehaviours),\n apis\n };\n };\n const slotApis = map$1({\n getSlotNames: (apis, c) => apis.getSlotNames(c),\n getSlot: (apis, c, key) => apis.getSlot(c, key),\n isShowing: (apis, c, key) => apis.isShowing(c, key),\n hideSlot: (apis, c, key) => apis.hideSlot(c, key),\n hideAllSlots: (apis, c) => apis.hideAllSlots(c),\n showSlot: (apis, c, key) => apis.showSlot(c, key)\n }, value => makeApi(value));\n const SlotContainer = {\n ...slotApis,\n ...{ sketch }\n };\n\n const sidebarSchema = objOf([\n optionalIcon,\n optionalTooltip,\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n onSetup\n ]);\n const createSidebar = spec => asRaw('sidebar', sidebarSchema, spec);\n\n const setup$8 = editor => {\n const {sidebars} = editor.ui.registry.getAll();\n each$1(keys(sidebars), name => {\n const spec = sidebars[name];\n const isActive = () => is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), name);\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: buttonApi => {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: buttonApi => {\n const handleToggle = () => buttonApi.setActive(isActive());\n editor.on('ToggleSidebar', handleToggle);\n return () => {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n const getApi = comp => ({ element: () => comp.element.dom });\n const makePanels = (parts, panelConfigs) => {\n const specs = map$2(keys(panelConfigs), name => {\n const spec = panelConfigs[name];\n const bridged = getOrDie(createSidebar(spec));\n return {\n name,\n getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map$2(specs, spec => {\n const editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run$1(slotVisibility(), (sidepanel, se) => {\n const data = se.event;\n const optSidePanelSpec = find$5(specs, config => config.name === data.name);\n optSidePanelSpec.each(sidePanelSpec => {\n const handler = data.visible ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })\n ])\n });\n });\n };\n const makeSidebar = panelConfigs => SlotContainer.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(slotContainer => SlotContainer.hideAllSlots(slotContainer))])\n }));\n const setSidebar = (sidebar, panelConfigs) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => Replacing.set(slider, [makeSidebar(panelConfigs)]));\n };\n const toggleSidebar = (sidebar, name) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(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 const whichSidebar = sidebar => {\n const optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(slider => {\n const sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n const optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(slotContainer => find$5(SlotContainer.getSlotNames(slotContainer), name => SlotContainer.isShowing(slotContainer, name)));\n } else {\n return Optional.none();\n }\n });\n };\n const fixSize = generate$6('FixSizeEvent');\n const autoSize = generate$6('AutoSizeEvent');\n const renderSidebar = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'complementary' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\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: slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: slider => {\n emit(slider, autoSize);\n },\n onStartGrow: slider => {\n emitWith(slider, fixSize, { width: getRaw(slider.element, 'width').getOr('') });\n },\n onStartShrink: slider => {\n emitWith(slider, fixSize, { width: get$c(slider.element) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: comp => {\n const children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run$1(fixSize, (comp, se) => {\n set$8(comp.element, 'width', se.event.width);\n }),\n run$1(autoSize, (comp, _se) => {\n remove$6(comp.element, 'width');\n })\n ])\n ])\n });\n\n const block = (component, config, state, getBusySpec) => {\n set$9(component.element, 'aria-busy', true);\n const root = config.getRoot(component).getOr(component);\n const blockerBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: () => Optional.some(true),\n onShiftTab: () => Optional.some(true)\n }),\n Focusing.config({})\n ]);\n const blockSpec = getBusySpec(root, blockerBehaviours);\n const 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(() => Replacing.remove(root, blocker));\n };\n const unblock = (component, config, state) => {\n remove$7(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock\n });\n\n var BlockingSchema = [\n defaultedFunction('getRoot', Optional.none),\n defaultedBoolean('focus', true),\n onHandler('onBlock'),\n onHandler('onUnblock')\n ];\n\n const init$4 = () => {\n const blocker = destroyable();\n const blockWith = destroy => {\n blocker.set({ destroy });\n };\n return nu$8({\n readState: blocker.isSet,\n blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n\n const Blocking = create$3({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n\n const getAttrs = elem => {\n const attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];\n return foldl(attributes, (b, attr) => {\n if (attr.name === 'class') {\n return b;\n } else {\n return {\n ...b,\n [attr.name]: attr.value\n };\n }\n }, {});\n };\n const getClasses = elem => Array.prototype.slice.call(elem.dom.classList, 0);\n const fromHtml = html => {\n const elem = SugarElement.fromHtml(html);\n const children$1 = children(elem);\n const attrs = getAttrs(elem);\n const classes = getClasses(elem);\n const contents = children$1.length === 0 ? {} : { innerHtml: get$9(elem) };\n return {\n tag: name$3(elem),\n classes,\n attributes: attrs,\n ...contents\n };\n };\n\n const getBusySpec$1 = providerBackstage => (_root, _behaviours) => ({\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: [{ dom: fromHtml('<div class=\"tox-spinner\"><div></div><div></div><div></div></div>') }]\n });\n const focusBusyComponent = throbber => Composing.getCurrent(throbber).each(comp => focus$3(comp.element));\n const toggleEditorTabIndex = (editor, state) => {\n const tabIndexAttr = 'tabindex';\n const dataTabIndexAttr = `data-mce-${ tabIndexAttr }`;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(iframe => {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(tabIndex => set$9(iframe, dataTabIndexAttr, tabIndex));\n set$9(iframe, tabIndexAttr, -1);\n } else {\n remove$7(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(tabIndex => {\n set$9(iframe, tabIndexAttr, tabIndex);\n remove$7(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n const toggleThrobber = (editor, comp, state, providerBackstage) => {\n const 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 const throbberFocus = Composing.getCurrent(comp).exists(busyComp => hasFocus(busyComp.element));\n Blocking.unblock(comp);\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n if (throbberFocus) {\n editor.focus();\n }\n }\n };\n const renderThrobber = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([\n Replacing.config({}),\n Blocking.config({ focus: false }),\n Composing.config({ find: comp => head(comp.components()) })\n ]),\n components: []\n });\n const isFocusEvent = event => event.type === 'focusin';\n const isPasteBinTarget = event => {\n if (isFocusEvent(event)) {\n const node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$1).exists(targetElm => has(targetElm, 'mce-pastebin'));\n } else {\n return false;\n }\n };\n const setup$7 = (editor, lazyThrobber, sharedBackstage) => {\n const throbberState = Cell(false);\n const timer = value$2();\n const stealFocus = 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', () => {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', e => {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n const toggle = state => {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n editor.dispatch('AfterProgressState', { state });\n }\n };\n editor.on('ProgressState', e => {\n timer.on(clearTimeout);\n if (isNumber(e.time)) {\n const timerId = global$9.setEditorTimeout(editor, () => toggle(e.state), e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n\n const generate$1 = (xs, f) => {\n const init = {\n len: 0,\n list: []\n };\n const r = foldl(xs, (b, a) => {\n const value = f(a, b.len);\n return value.fold(constant$1(b), v => ({\n len: v.finish,\n list: b.list.concat([v])\n }));\n }, init);\n return r.list;\n };\n\n const output = (within, extra, withinWidth) => ({\n within,\n extra,\n withinWidth\n });\n const apportion = (units, total, len) => {\n const parray = generate$1(units, (unit, current) => {\n const width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width\n });\n });\n const within = filter$2(parray, unit => unit.finish <= total);\n const withinWidth = foldr(within, (acc, el) => acc + el.width, 0);\n const extra = parray.slice(within.length);\n return {\n within,\n extra,\n withinWidth\n };\n };\n const toUnit = parray => map$2(parray, unit => unit.element);\n const fitLast = (within, extra, withinWidth) => {\n const fits = toUnit(within.concat(extra));\n return output(fits, [], withinWidth);\n };\n const overflow = (within, extra, overflower, withinWidth) => {\n const fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n const fitAll = (within, extra, withinWidth) => output(toUnit(within), [], withinWidth);\n const tryFit = (total, units, len) => {\n const divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n const partition = (total, units, len, overflower) => {\n const divide = tryFit(total, units, len).getOrThunk(() => apportion(units, total - len(overflower), len));\n const within = divide.within;\n const extra = divide.extra;\n const 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\n const setGroups$1 = (toolbar, storedGroups) => {\n const bGroups = map$2(storedGroups, g => premade(g));\n Toolbar.setGroups(toolbar, bGroups);\n };\n const findFocusedComp = comps => findMap(comps, comp => search(comp.element).bind(focusedElm => comp.getSystem().getByDom(focusedElm).toOptional()));\n const refresh$2 = (toolbar, detail, setOverflow) => {\n const builtGroups = detail.builtGroups.get();\n if (builtGroups.length === 0) {\n return;\n }\n const primary = getPartOrDie(toolbar, detail, 'primary');\n const overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$8(primary.element, 'visibility', 'hidden');\n const groups = builtGroups.concat([overflowGroup]);\n const focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n const availableWidth = get$c(primary.element);\n const overflows = partition(availableWidth, detail.builtGroups.get(), comp => get$c(comp.element), 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\n const schema$c = constant$1([\n field('splitToolbarBehaviours', [Coupling]),\n customField('builtGroups', () => Cell([]))\n ]);\n\n const schema$b = constant$1([\n markers$1(['overflowToggledClass']),\n optionFunction('getOverflowBounds'),\n required$1('lazySink'),\n customField('overflowGroups', () => Cell([]))\n ].concat(schema$c()));\n const parts$7 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n external({\n schema: schema$e(),\n name: 'overflow'\n }),\n external({ name: 'overflow-button' }),\n external({ name: 'overflow-group' })\n ]);\n\n const expandable = constant$1((element, available) => {\n setMax(element, Math.floor(available));\n });\n\n const schema$a = constant$1([\n markers$1(['toggledClass']),\n required$1('lazySink'),\n requiredFunction('fetch'),\n optionFunction('getBounds'),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n schema$y()\n ]);\n const parts$6 = constant$1([\n external({\n name: 'button',\n overrides: detail => ({\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n })\n }),\n external({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: comp => {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })\n ]);\n\n const toggle = (button, externals) => {\n const 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 const position = (button, toolbar, detail, layouts) => {\n const bounds = detail.getBounds.map(bounder => bounder());\n const sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts,\n overrides: { maxWidthFunction: expandable() }\n }\n }, bounds);\n };\n const setGroups = (button, toolbar, detail, layouts, groups) => {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n const makeSandbox = (button, spec, detail) => {\n const ariaControls = manager();\n const onOpen = (sandbox, toolbar) => {\n detail.fetch().get(groups => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n ariaControls.link(button.element);\n Keying.focusIn(toolbar);\n });\n };\n const onClose = () => {\n Toggling.off(button);\n Focusing.focus(button);\n ariaControls.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaControls.id }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: comp => {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: () => {\n return detail.lazySink(button).getOrDie();\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: never,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n doReposition: () => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n })\n }\n })\n ])\n };\n };\n const factory$a = (detail, components, spec, externals) => ({\n ...Button.sketch({\n ...externals.button(),\n action: button => {\n toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({ dump: externals.button().buttonBehaviours }, [Coupling.config({\n others: {\n toolbarSandbox: button => {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }),\n apis: {\n setGroups: (button, groups) => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: button => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: button => {\n toggle(button, externals);\n },\n getToolbar: button => {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: button => {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n const FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$a,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: (apis, button, groups) => {\n apis.setGroups(button, groups);\n },\n reposition: (apis, button) => {\n apis.reposition(button);\n },\n toggle: (apis, button) => {\n apis.toggle(button);\n },\n getToolbar: (apis, button) => apis.getToolbar(button),\n isOpen: (apis, button) => apis.isOpen(button)\n }\n });\n\n const schema$9 = constant$1([\n required$1('items'),\n markers$1(['itemSelector']),\n field('tgroupBehaviours', [Keying])\n ]);\n const parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n\n const factory$9 = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: { attributes: { role: 'toolbar' } }\n });\n const ToolbarGroup = composite({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$9\n });\n\n const buildGroups = comps => map$2(comps, g => premade(g));\n const refresh$1 = (toolbar, memFloatingToolbarButton, detail) => {\n refresh$2(toolbar, detail, overflowGroups => {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n const factory$8 = (detail, components, spec, externals) => {\n const memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: () => Future.nu(resolve => {\n resolve(buildGroups(detail.overflowGroups.get()));\n }),\n layouts: {\n onLtr: () => [\n southwest$2,\n southeast$2\n ],\n onRtl: () => [\n southeast$2,\n southwest$2\n ],\n onBottomLtr: () => [\n northwest$2,\n northeast$2\n ],\n onBottomRtl: () => [\n northeast$2,\n northwest$2\n ]\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: { toggledClass: detail.markers.overflowToggledClass },\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,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: () => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [memFloatingToolbarButton.asSpec()]\n });\n }\n }\n })]),\n apis: {\n setGroups: (toolbar, groups) => {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: toolbar => refresh$1(toolbar, memFloatingToolbarButton, detail),\n toggle: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n isOpen: toolbar => memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false),\n reposition: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: toolbar => memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$8,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n reposition: (apis, toolbar) => {\n apis.reposition(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar),\n getOverflow: (apis, toolbar) => apis.getOverflow(toolbar)\n }\n });\n\n const schema$8 = constant$1([\n markers$1([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n const parts$4 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'overflow',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: comp => {\n getPart(comp, detail, 'overflow-button').each(button => {\n Toggling.off(button);\n Focusing.focus(button);\n });\n detail.onClosed(comp);\n },\n onGrown: comp => {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: comp => {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: comp => {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })\n ])\n };\n }\n }),\n external({\n name: 'overflow-button',\n overrides: detail => ({\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })])\n })\n }),\n external({ name: 'overflow-group' })\n ]);\n\n const isOpen = (toolbar, detail) => getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n const toggleToolbar = (toolbar, detail) => {\n getPart(toolbar, detail, 'overflow-button').bind(() => getPart(toolbar, detail, 'overflow')).each(overf => {\n refresh(toolbar, detail);\n Sliding.toggleGrow(overf);\n });\n };\n const refresh = (toolbar, detail) => {\n getPart(toolbar, detail, 'overflow').each(overflow => {\n refresh$2(toolbar, detail, groups => {\n const builtGroups = map$2(groups, g => premade(g));\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(button => {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n const factory$7 = (detail, components, spec, externals) => {\n const toolbarToggleEvent = 'alloy.toolbar.toggle';\n const doSetGroups = (toolbar, groups) => {\n const 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,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: {\n overflowGroup: toolbar => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [Button.sketch({\n ...externals['overflow-button'](),\n action: _button => {\n emit(toolbar, toolbarToggleEvent);\n }\n })]\n });\n }\n }\n }),\n config('toolbar-toggle-events', [run$1(toolbarToggleEvent, toolbar => {\n toggleToolbar(toolbar, detail);\n })])\n ]),\n apis: {\n setGroups: (toolbar, groups) => {\n doSetGroups(toolbar, groups);\n refresh(toolbar, detail);\n },\n refresh: toolbar => refresh(toolbar, detail),\n toggle: toolbar => toggleToolbar(toolbar, detail),\n isOpen: toolbar => isOpen(toolbar, detail)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$7,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar)\n }\n });\n\n const renderToolbarGroupCommon = toolbarGroup => {\n const attributes = toolbarGroup.title.fold(() => ({}), title => ({ attributes: { title } }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__group'],\n ...attributes\n },\n components: [ToolbarGroup.parts.items({})],\n items: toolbarGroup.items,\n markers: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-js:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n const renderToolbarGroup = toolbarGroup => ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n const getToolbarbehaviours = (toolbarSpec, modeName) => {\n const onAttached = runOnAttached(component => {\n const groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n DisablingConfigs.toolbarButton(toolbarSpec.providers.isDisabled),\n receivingConfig(),\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached])\n ]);\n };\n const renderMoreToolbarCommon = toolbarSpec => {\n const 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 enabled: true,\n tooltip: Optional.some('More...'),\n primary: false,\n buttonType: Optional.none(),\n borderless: false\n }, Optional.none(), toolbarSpec.providers)\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n };\n };\n const renderFloatingMoreToolbar = toolbarSpec => {\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n const overflowXOffset = 4;\n const primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch({\n ...baseSpec,\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: () => {\n const headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n const headerBounds = absolute$2(headerElem);\n const docElem = documentElement(headerElem);\n const docBounds = absolute$2(docElem);\n const height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: {\n ...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: { overflowToggledClass: 'tox-tbtn--enabled' }\n });\n };\n const renderSlidingMoreToolbar = toolbarSpec => {\n const primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n const overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch({\n ...baseSpec,\n components: [\n primary,\n overflow\n ],\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: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n },\n onClosed: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n }\n });\n };\n const renderToolbar = toolbarSpec => {\n const 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$1.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n });\n };\n\n const factory$6 = (detail, components, _spec) => {\n const apis = {\n getSocket: comp => {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: (comp, panelConfigs) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => setSidebar(sidebar, panelConfigs));\n },\n toggleSidebar: (comp, name) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => toggleSidebar(sidebar, name));\n },\n whichSidebar: comp => {\n return parts$a.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: comp => {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: comp => {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: (comp, groups) => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: (comp, toolbars) => {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(mToolbar => {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: comp => {\n const toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(toolbar => toolbar.getApis().refresh(toolbar));\n },\n toggleToolbarDrawer: comp => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n mapFrom(toolbar.getApis().toggle, toggle => toggle(toolbar));\n });\n },\n isToolbarDrawerToggled: comp => {\n return parts$a.getPart(comp, detail, 'toolbar').bind(toolbar => Optional.from(toolbar.getApis().isOpen).map(isOpen => isOpen(toolbar))).getOr(false);\n },\n getThrobber: comp => {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: comp => {\n const optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(() => parts$a.getPart(comp, detail, 'multiple-toolbar'));\n optToolbar.each(toolbar => {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: (comp, menus) => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: comp => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.focus(menubar);\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n behaviours: detail.behaviours\n };\n };\n const partMenubar = partType.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n const toolbarFactory = spec => {\n if (spec.type === ToolbarMode$1.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode$1.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n const partMultipleToolbar = partType.optional({\n factory: {\n sketch: spec => 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: () => renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: () => {\n spec.onEscape();\n return Optional.some(true);\n }\n }),\n setupItem: (_mToolbar, tc, data, _index) => {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n })\n },\n name: 'multiple-toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape')\n ]\n });\n const partToolbar = partType.optional({\n factory: {\n sketch: spec => {\n const renderer = toolbarFactory(spec);\n const toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: () => {\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: [\n required$1('dom'),\n required$1('onEscape'),\n required$1('getSink')\n ]\n });\n const partHeader = partType.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [required$1('dom')]\n });\n const partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n const partSidebar = partType.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n const partThrobber = partType.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [\n required$1('dom'),\n required$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\n partSocket,\n partSidebar,\n partThrobber\n ],\n apis: {\n getSocket: (apis, comp) => {\n return apis.getSocket(comp);\n },\n setSidebar: (apis, comp, panelConfigs) => {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: (apis, comp, name) => {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: (apis, comp) => {\n return apis.whichSidebar(comp);\n },\n getHeader: (apis, comp) => {\n return apis.getHeader(comp);\n },\n getToolbar: (apis, comp) => {\n return apis.getToolbar(comp);\n },\n setToolbar: (apis, comp, grps) => {\n const groups = map$2(grps, grp => {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: (apis, comp, ts) => {\n const renderedToolbars = map$2(ts, g => map$2(g, renderToolbarGroup));\n apis.setToolbars(comp, renderedToolbars);\n },\n refreshToolbar: (apis, comp) => {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: (apis, comp) => {\n apis.toggleToolbarDrawer(comp);\n },\n isToolbarDrawerToggled: (apis, comp) => {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: (apis, comp) => {\n return apis.getThrobber(comp);\n },\n setMenubar: (apis, comp, menus) => {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: (apis, comp) => {\n apis.focusMenubar(comp);\n },\n focusToolbar: (apis, comp) => {\n apis.focusToolbar(comp);\n }\n }\n });\n\n const defaultMenubar = 'file edit view insert format tools table help';\n const 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 tableofcontents | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | styles blocks fontfamily fontsize 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 const make = (menu, registry, editor) => {\n const removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: () => bind$3(menu.items, i => {\n const itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, removedMenuItem => removedMenuItem === itemName)) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n })\n };\n };\n const parseItemsString = items => {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n return items;\n };\n const identifyMenus = (editor, registry) => {\n const rawMenuData = {\n ...defaultMenus,\n ...registry.menus\n };\n const userDefinedMenus = keys(registry.menus).length > 0;\n const menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n const validMenus = filter$2(menubar, menuName => {\n const isDefaultMenu = has$2(defaultMenus, menuName);\n if (userDefinedMenus) {\n return isDefaultMenu || get$g(registry.menus, menuName).exists(menu => has$2(menu, 'items'));\n } else {\n return isDefaultMenu;\n }\n });\n const menus = map$2(validMenus, menuName => {\n const menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(menus, menu => {\n const isNotSeparator = item => item.type !== 'separator';\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n const fireSkinLoaded = editor => {\n const done = () => {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n return () => {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n const fireSkinLoadError = (editor, err) => () => fireSkinLoadError$1(editor, { message: err });\n\n const loadStylesheet = (editor, stylesheetUrl, styleSheetLoader) => {\n editor.on('remove', () => styleSheetLoader.unload(stylesheetUrl));\n return styleSheetLoader.load(stylesheetUrl);\n };\n const loadUiSkins = (editor, skinUrl) => {\n const skinUiCss = skinUrl + '/skin.min.css';\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n };\n const loadShadowDomUiSkins = (editor, skinUrl) => {\n const isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (isInShadowRoot$1) {\n const shadowDomSkinCss = skinUrl + '/skin.shadowdom.min.css';\n return loadStylesheet(editor, shadowDomSkinCss, global$7.DOM.styleSheetLoader);\n } else {\n return Promise.resolve();\n }\n };\n const loadSkin = (isInline, editor) => {\n const skinUrl = getSkinUrl(editor);\n if (skinUrl) {\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (!isSkinDisabled(editor) && isString(skinUrl)) {\n Promise.all([\n loadUiSkins(editor, skinUrl),\n loadShadowDomUiSkins(editor, skinUrl)\n ]).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n } else {\n fireSkinLoaded(editor)();\n }\n };\n const iframe = curry(loadSkin, false);\n const inline = curry(loadSkin, true);\n\n const onSetupFormatToggle = (editor, name) => api => {\n const boundCallback = unbindable();\n const init = () => {\n api.setActive(editor.formatter.match(name));\n const binding = editor.formatter.formatChanged(name, api.setActive);\n boundCallback.set(binding);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n boundCallback.clear();\n };\n };\n const onSetupEvent = (editor, event, f) => api => {\n const handleEvent = () => f(api);\n const init = () => {\n f(api);\n editor.on(event, handleEvent);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n const onActionToggleFormat$1 = editor => rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n const onActionExecCommand = (editor, command) => () => editor.execCommand(command);\n\n const generateSelectItems = (_editor, backstage, spec) => {\n const generateItem = (rawItem, response, invalid, value) => {\n const 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 const items = bind$3(rawItem.getStyleItems(), si => validate(si, response, value));\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n enabled: items.length > 0,\n getSubmenuItems: () => bind$3(rawItem.getStyleItems(), si => validate(si, response, value))\n });\n }\n } else {\n return Optional.some({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\n enabled: !invalid,\n onAction: spec.onAction(rawItem),\n ...rawItem.getStylePreview().fold(() => ({}), preview => ({ meta: { style: preview } }))\n });\n }\n };\n const validate = (item, response, value) => {\n const 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 const validateItems = preItems => {\n const value = spec.getCurrentValue();\n const response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, item => validate(item, response, value));\n };\n const getFetch = (backstage, getStyleItems) => (comp, callback) => {\n const preItems = getStyleItems();\n const items = validateItems(preItems);\n const menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n return {\n validateItems,\n getFetch\n };\n };\n const createMenuItems = (editor, backstage, spec) => {\n const dataset = spec.dataset;\n const getStyleItems = dataset.type === 'basic' ? () => map$2(dataset.data, d => processBasic(d, spec.isSelectedFor, spec.getPreviewFor)) : dataset.getData;\n return {\n items: generateSelectItems(editor, backstage, spec),\n getStyleItems\n };\n };\n const createSelectButton = (editor, backstage, spec) => {\n const {items, getStyleItems} = createMenuItems(editor, backstage, spec);\n const getApi = comp => ({ getComponent: constant$1(comp) });\n const onSetup = onSetupEvent(editor, 'NodeChange', api => {\n const 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,\n getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: []\n }, 'tox-tbtn', backstage.shared);\n };\n\n const process = rawFormats => map$2(rawFormats, item => {\n let title = item, format = item;\n const values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title,\n format\n };\n });\n const buildBasicStaticDataset = data => ({\n type: 'basic',\n data\n });\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n const split = (rawFormats, delimiter) => {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n const buildBasicSettingsDataset = (editor, settingName, delimiter) => {\n const rawFormats = editor.options.get(settingName);\n const data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data\n };\n };\n\n const alignMenuItems = [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }\n ];\n const getSpec$4 = editor => {\n const getMatchingValue = () => find$5(alignMenuItems, item => editor.formatter.match(item.format));\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = _format => Optional.none;\n const updateSelectMenuIcon = comp => {\n const match = getMatchingValue();\n const alignment = match.fold(constant$1('left'), item => item.title.toLowerCase());\n emitWith(comp, updateMenuIcon, { icon: `align-${ alignment }` });\n };\n const dataset = buildBasicStaticDataset(alignMenuItems);\n const onAction = rawItem => () => find$5(alignMenuItems, item => item.format === rawItem.format).each(item => editor.execCommand(item.command));\n return {\n tooltip: 'Align',\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuIcon,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createAlignButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$4(editor));\n const createAlignMenu = (editor, backstage) => {\n const menuItems = createMenuItems(editor, backstage, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const findNearest = (editor, getStyles) => {\n const styles = getStyles();\n const formats = map$2(styles, style => style.format);\n return Optional.from(editor.formatter.closest(formats)).bind(fmt => find$5(styles, data => data.format === fmt)).orThunk(() => someIf(editor.formatter.match('p'), {\n title: 'Paragraph',\n format: 'p'\n }));\n };\n\n const getSpec$3 = editor => {\n const fallbackFormat = 'Paragraph';\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const 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 const updateSelectMenuText = comp => {\n const detectedFormat = findNearest(editor, () => dataset.data);\n const text = detectedFormat.fold(constant$1(fallbackFormat), fmt => fmt.title);\n emitWith(comp, updateMenuText, { text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'block_formats', Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createBlocksButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$3(editor));\n const createBlocksMenu = (editor, backstage) => {\n const menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('blocks', {\n text: 'Blocks',\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const systemStackFonts = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n const splitFonts = fontFamily => {\n const fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, font => font.replace(/^['\"]+|['\"]+$/g, ''));\n };\n const isSystemFontStack = fontFamily => {\n const matchesSystemStack = () => {\n const fonts = splitFonts(fontFamily.toLowerCase());\n return forall(systemStackFonts, font => fonts.indexOf(font.toLowerCase()) > -1);\n };\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n const getSpec$2 = editor => {\n const systemFont = 'System Font';\n const getMatchingValue = () => {\n const getFirstFont = fontFamily => fontFamily ? splitFonts(fontFamily)[0] : '';\n const fontFamily = editor.queryCommandValue('FontName');\n const items = dataset.data;\n const font = fontFamily ? fontFamily.toLowerCase() : '';\n const matchOpt = find$5(items, item => {\n const format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(() => {\n return someIf(isSystemFontStack(font), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt,\n font: fontFamily\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = item => () => Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? { 'font-family': item } : {}\n });\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, font} = getMatchingValue();\n const text = matchOpt.fold(constant$1(font), item => item.title);\n emitWith(comp, updateMenuText, { text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_family_formats', Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontFamilyButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$2(editor));\n const createFontFamilyMenu = (editor, backstage) => {\n const menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontfamily', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n const 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 const round = (number, precision) => {\n const factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n const toPt = (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$g(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n const toLegacy = fontSize => get$g(legacyFontSizes, fontSize).getOr('');\n const getSpec$1 = editor => {\n const getMatchingValue = () => {\n let matchOpt = Optional.none();\n const items = dataset.data;\n const fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n for (let precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n const pt = toPt(fontSize, precision);\n const legacy = toLegacy(pt);\n matchOpt = find$5(items, item => item.format === fontSize || item.format === pt || item.format === legacy);\n }\n }\n return {\n matchOpt,\n size: fontSize\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = constant$1(Optional.none);\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, size} = getMatchingValue();\n const text = matchOpt.fold(constant$1(size), match => match.title);\n emitWith(comp, updateMenuText, { text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_size_formats', Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n text: Optional.some('12pt'),\n icon: Optional.none(),\n isSelectedFor,\n getPreviewFor,\n getCurrentValue,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontSizeButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$1(editor));\n const createFontSizeMenu = (editor, backstage) => {\n const menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('fontsize', {\n text: 'Font sizes',\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const getSpec = (editor, dataset) => {\n const fallbackFormat = 'Paragraph';\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const 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 const updateSelectMenuText = comp => {\n const getFormatItems = fmt => {\n const 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 const flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n const detectedFormat = findNearest(editor, constant$1(flattenedItems));\n const text = detectedFormat.fold(constant$1(fallbackFormat), fmt => fmt.title);\n emitWith(comp, updateMenuText, { text });\n };\n return {\n tooltip: 'Formats',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: shouldAutoHideStyleFormats(editor),\n isInvalid: item => !editor.formatter.canApply(item.format),\n dataset\n };\n };\n const createStylesButton = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n return createSelectButton(editor, backstage, getSpec(editor, dataset));\n };\n const createStylesMenu = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n const menuItems = createMenuItems(editor, backstage, getSpec(editor, dataset));\n editor.ui.registry.addNestedMenuItem('styles', {\n text: 'Formats',\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const events$3 = (reflectingConfig, reflectingState) => {\n const update = (component, data) => {\n reflectingConfig.updateState.each(updateState => {\n const newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(renderComponents => {\n const newComponents = renderComponents(data, reflectingState.get());\n const replacer = reflectingConfig.reuseDom ? withReuse : withoutReuse;\n replacer(component, newComponents);\n });\n };\n return derive$2([\n run$1(receive(), (component, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n const channel = reflectingConfig.channel;\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }),\n runOnAttached((comp, _se) => {\n reflectingConfig.initialData.each(rawData => {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$3\n });\n\n const getState = (component, replaceConfig, reflectState) => reflectState;\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n\n var ReflectingSchema = [\n required$1('channel'),\n option$3('renderComponents'),\n option$3('updateState'),\n option$3('initialData'),\n defaultedBoolean('reuseDom', true)\n ];\n\n const init$3 = () => {\n const cell = Cell(Optional.none());\n const clear = () => cell.set(Optional.none());\n const readState = () => cell.get().getOr('none');\n return {\n readState,\n get: cell.get,\n set: cell.set,\n clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$3\n });\n\n const Reflecting = create$3({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n const schema$7 = constant$1([\n required$1('toggleClass'),\n required$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n onStrictHandler('onItemExecute'),\n option$3('lazySink'),\n required$1('dom'),\n onHandler('onOpen'),\n field('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n defaulted('eventOrder', {}),\n option$3('role')\n ].concat(sandboxFields()));\n const arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: 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 const buttonPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'button',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: btn => {\n btn.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n const parts$3 = constant$1([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: detail => {\n return {\n onExecute: (tmenu, item) => {\n tmenu.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType$1()\n ]);\n\n const factory$5 = (detail, components, spec, externals) => {\n const switchToMenu = sandbox => {\n Composing.getCurrent(sandbox).each(current => {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup(detail, identity, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n const openMenu = comp => {\n action(comp);\n return Optional.some(true);\n };\n const executeOnButton = comp => {\n const button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n const buttonEvents = {\n ...derive$2([runOnAttached((component, _simulatedEvent) => {\n const ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(descriptor => {\n const descriptorId = generate$6('aria');\n set$9(descriptor.element, 'id', descriptorId);\n set$9(component.element, 'aria-describedby', descriptorId);\n });\n })]),\n ...events$a(Optional.some(action))\n };\n const apis = {\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: hotspot => {\n const arrow = getPartOrDie(hotspot, detail, 'arrow');\n const extras = {\n onOpen: () => {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: () => {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox$1(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n const SplitDropdown = composite({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: { repositionMenus: (apis, comp) => apis.repositionMenus(comp) }\n });\n\n const getButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const getToggleApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const getTooltipAttributes = (tooltip, providersBackstage) => tooltip.map(tooltip => ({\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n })).getOr({});\n const focusButtonEvent = generate$6('focus-button');\n const renderCommonStructure = (icon, text, tooltip, receiver, behaviours, providersBackstage) => {\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([\n icon.map(iconName => renderIconFromPack(iconName, providersBackstage.icons)),\n text.map(text => renderLabel(text, 'tox-tbtn', providersBackstage))\n ]),\n eventOrder: {\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n 'common-button-display-events'\n ]\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.toolbarButton(providersBackstage.isDisabled),\n receivingConfig(),\n config('common-button-display-events', [run$1(mousedown(), (button, se) => {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })])\n ].concat(receiver.map(r => Reflecting.config({\n channel: r,\n initialData: {\n icon,\n text\n },\n renderComponents: (data, _state) => componentRenderPipeline([\n data.icon.map(iconName => renderIconFromPack(iconName, providersBackstage.icons)),\n data.text.map(text => renderLabel(text, 'tox-tbtn', providersBackstage))\n ])\n })).toArray()).concat(behaviours.getOr([])))\n };\n };\n const renderFloatingToolbarButton = (spec, backstage, identifyButtons, attributes) => {\n const sharedBackstage = backstage.shared;\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: () => Future.nu(resolve => {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n }),\n markers: { toggledClass: 'tox-tbtn--enabled' },\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\n }\n }\n }\n });\n };\n const renderCommonToolbarButton = (spec, specialisation, providersBackstage) => {\n const editorOffCell = Cell(noop);\n const 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([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.toolbarButton(() => !spec.enabled || providersBackstage.isDisabled()),\n receivingConfig()\n ].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n const renderToolbarButton = (spec, providersBackstage) => renderToolbarButtonWith(spec, providersBackstage, []);\n const renderToolbarButtonWith = (spec, providersBackstage, bonusEvents) => renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [].concat(bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : []),\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage);\n const renderToolbarToggleButton = (spec, providersBackstage) => renderToolbarToggleButtonWith(spec, providersBackstage, []);\n const renderToolbarToggleButtonWith = (spec, providersBackstage, bonusEvents) => deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n const fetchChoices = (getApi, spec, providersBackstage) => comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, 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((comp, _se) => {\n detectSize(comp, 4, classForPreset(spec.presets)).each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n }))));\n const renderSplitButton = (spec, sharedBackstage) => {\n const displayChannel = generate$6('channel-update-split-dropdown-display');\n const getApi = comp => ({\n isEnabled: () => !Disabling.isDisabled(comp),\n setEnabled: state => Disabling.set(comp, !state),\n setIconFill: (id, value) => {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(underlinePath => {\n set$9(underlinePath, 'fill', value);\n });\n },\n setActive: state => {\n set$9(comp.element, 'aria-pressed', state);\n descendant(comp.element, 'span').each(button => {\n comp.getSystem().getByDom(button).each(buttonComp => Toggling.set(buttonComp, state));\n });\n },\n isActive: () => descendant(comp.element, 'span').exists(button => comp.getSystem().getByDom(button).exists(Toggling.isOn))\n });\n const editorOffCell = Cell(noop);\n const specialisation = {\n getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: {\n 'aria-pressed': false,\n ...getTooltipAttributes(spec.tooltip, sharedBackstage.providers)\n }\n },\n onExecute: button => {\n spec.onAction(getApi(button));\n },\n onItemExecute: (_a, _b, _c) => {\n },\n splitDropdownBehaviours: derive$1([\n DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n config('split-dropdown-events', [\n run$1(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n Unselecting.config({})\n ]),\n eventOrder: {\n [attachedToDom()]: [\n 'alloy.base.behaviour',\n 'split-dropdown-events'\n ]\n },\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n 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)),\n SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$2('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n addFocusableBehaviour()\n ])\n }),\n SplitDropdown.parts['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n\n const defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'styles',\n items: ['styles']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n const renderFromBridge = (bridgeBuilder, render) => (spec, extras, editor) => {\n const internal = bridgeBuilder(spec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return render(internal, extras, editor);\n };\n const types = {\n button: renderFromBridge(createToolbarButton, (s, extras) => renderToolbarButton(s, extras.backstage.shared.providers)),\n togglebutton: renderFromBridge(createToggleButton, (s, extras) => renderToolbarToggleButton(s, extras.backstage.shared.providers)),\n menubutton: renderFromBridge(createMenuButton, (s, extras) => renderMenuButton(s, 'tox-tbtn', extras.backstage, Optional.none())),\n splitbutton: renderFromBridge(createSplitButton, (s, extras) => renderSplitButton(s, extras.backstage.shared)),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, (s, extras, editor) => {\n const buttons = editor.ui.registry.getAll().buttons;\n const identify = toolbar => identifyButtons(editor, {\n buttons,\n toolbar,\n allowToolbarGroups: false\n }, extras, Optional.none());\n const attributes = { [Attribute]: extras.backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop };\n switch (getToolbarMode(editor)) {\n case ToolbarMode$1.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: (editor, extras) => createStylesButton(editor, extras.backstage),\n fontsizeSelectButton: (editor, extras) => createFontSizeButton(editor, extras.backstage),\n fontSelectButton: (editor, extras) => createFontFamilyButton(editor, extras.backstage),\n formatButton: (editor, extras) => createBlocksButton(editor, extras.backstage),\n alignMenuButton: (editor, extras) => createAlignButton(editor, extras.backstage)\n };\n const extractFrom = (spec, extras, editor) => get$g(types, spec.type).fold(() => {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, render => Optional.some(render(spec, extras, editor)));\n const bespokeButtons = {\n styles: types.styleSelectButton,\n fontsize: types.fontsizeSelectButton,\n fontfamily: types.fontSelectButton,\n blocks: types.formatButton,\n align: types.alignMenuButton\n };\n const removeUnusedDefaults = buttons => {\n const filteredItemGroups = map$2(defaultToolbar, group => {\n const items = filter$2(group.items, subItem => has$2(buttons, subItem) || has$2(bespokeButtons, subItem));\n return {\n name: group.name,\n items\n };\n });\n return filter$2(filteredItemGroups, group => group.items.length > 0);\n };\n const convertStringToolbar = strToolbar => {\n const groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, g => ({ items: g.trim().split(' ') }));\n };\n const isToolbarGroupSettingArray = toolbar => isArrayOf(toolbar, t => has$2(t, 'name') && has$2(t, 'items'));\n const createToolbar = toolbarConfig => {\n const toolbar = toolbarConfig.toolbar;\n const 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 const lookupButton = (editor, buttons, toolbarItem, allowToolbarGroups, extras, prefixes) => get$g(buttons, toolbarItem.toLowerCase()).orThunk(() => prefixes.bind(ps => findMap(ps, prefix => get$g(buttons, prefix + toolbarItem.toLowerCase())))).fold(() => get$g(bespokeButtons, toolbarItem.toLowerCase()).map(r => r(editor, extras)).orThunk(() => Optional.none()), 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 const identifyButtons = (editor, toolbarConfig, extras, prefixes) => {\n const toolbarGroups = createToolbar(toolbarConfig);\n const groups = map$2(toolbarGroups, group => {\n const items = bind$3(group.items, toolbarItem => toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, extras, prefixes).toArray());\n return {\n title: Optional.from(editor.translate(group.name)),\n items\n };\n });\n return filter$2(groups, group => group.items.length > 0);\n };\n\n const setToolbar = (editor, uiComponents, rawUiConfig, backstage) => {\n const comp = uiComponents.outerContainer;\n const toolbarConfig = rawUiConfig.toolbar;\n const toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n const toolbars = toolbarConfig.map(t => {\n const config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, { backstage }, Optional.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, { backstage }, Optional.none()));\n }\n };\n\n const detection = detect$1();\n const isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n const setupEvents$1 = (editor, uiComponents) => {\n const dom = editor.dom;\n let contentWindow = editor.getWin();\n const initialDocEle = editor.getDoc().documentElement;\n const lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n const lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n const resizeWindow = () => {\n const 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 const resizeDocument = () => {\n const docEle = editor.getDoc().documentElement;\n const 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 const scroll = e => fireScrollContent(editor, e);\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n const elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n const mothership = uiComponents.uiMothership.element;\n editor.on('hide', () => {\n set$8(mothership, 'display', 'none');\n });\n editor.on('show', () => {\n remove$6(mothership, 'display');\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', () => {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n const render$1 = (editor, uiComponents, rawUiConfig, backstage, args) => {\n const lastToolbarWidth = Cell(0);\n const outerContainer = uiComponents.outerContainer;\n iframe(editor);\n const eTargetNode = SugarElement.fromDom(args.targetNode);\n const uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, uiComponents.mothership);\n attachSystem(uiRoot, uiComponents.uiMothership);\n editor.on('PostRender', () => {\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 const 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 const limit = first(() => {\n editor.dispatch('ScrollContent');\n }, 20);\n const unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n setupReadonlyModeSwitch(editor, uiComponents);\n editor.addCommand('ToggleSidebar', (_ui, value) => {\n OuterContainer.toggleSidebar(outerContainer, value);\n editor.dispatch('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', () => OuterContainer.whichSidebar(outerContainer));\n const toolbarMode = getToolbarMode(editor);\n const refreshDrawer = () => {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n if (toolbarMode === ToolbarMode$1.sliding || toolbarMode === ToolbarMode$1.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', () => {\n const width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n const api = {\n setEnabled: state => {\n broadcastReadonly(uiComponents, !state);\n },\n isEnabled: () => !Disabling.isDisabled(outerContainer)\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api\n };\n };\n\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n\n const parseToInt = val => {\n const re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n const numToPx = val => isNumber(val) ? val + 'px' : val;\n const calcCappedSize = (size, minSize, maxSize) => {\n const minOverride = minSize.filter(min => size < min);\n const maxOverride = maxSize.filter(max => size > max);\n return minOverride.or(maxOverride).getOr(size);\n };\n\n const getHeight = editor => {\n const baseHeight = getHeightOption(editor);\n const minHeight = getMinHeightOption(editor);\n const maxHeight = getMaxHeightOption(editor);\n return parseToInt(baseHeight).map(height => calcCappedSize(height, minHeight, maxHeight));\n };\n const getHeightWithFallback = editor => {\n const height = getHeight(editor);\n return height.getOr(getHeightOption(editor));\n };\n const getWidth = editor => {\n const baseWidth = getWidthOption(editor);\n const minWidth = getMinWidthOption(editor);\n const maxWidth = getMaxWidthOption(editor);\n return parseToInt(baseWidth).map(width => calcCappedSize(width, minWidth, maxWidth));\n };\n const getWidthWithFallback = editor => {\n const width = getWidth(editor);\n return width.getOr(getWidthOption(editor));\n };\n\n const {ToolbarLocation, ToolbarMode} = Options;\n const InlineHeader = (editor, targetElm, uiComponents, backstage, floatContainer) => {\n const {uiMothership, outerContainer} = uiComponents;\n const DOM = global$7.DOM;\n const useFixedToolbarContainer = useFixedContainer(editor);\n const isSticky = isStickyToolbar(editor);\n const editorMaxWidthOpt = getMaxWidthOption(editor).or(getWidth(editor));\n const headerBackstage = backstage.shared.header;\n const isPositionedAtTop = headerBackstage.isPositionedAtTop;\n const toolbarMode = getToolbarMode(editor);\n const isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n const visible = Cell(false);\n const isVisible = () => visible.get() && !editor.removed;\n const calcToolbarOffset = toolbar => isSplitToolbar ? toolbar.fold(constant$1(0), tbar => tbar.components().length > 1 ? get$d(tbar.components()[1].element) : 0) : 0;\n const calcMode = container => {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n const toolbar = OuterContainer.getToolbar(outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const toolbarHeight = get$d(container.element) - offset;\n const targetBounds = box$1(targetElm);\n const roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n const doc = documentElement(targetElm);\n const docHeight = Math.max(doc.dom.scrollHeight, get$d(doc));\n const roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n if (roomAtBottom) {\n return 'bottom';\n } else {\n const winBounds = win();\n const 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 const setupMode = mode => {\n const container = floatContainer.get();\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n const verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$9(container.element, Attribute, verticalDir);\n };\n const updateChromeWidth = () => {\n const maxWidth = editorMaxWidthOpt.getOrThunk(() => {\n const bodyMargin = parseToInt(get$e(body(), 'margin-left')).getOr(0);\n return get$c(body()) - absolute$3(targetElm).left + bodyMargin;\n });\n set$8(floatContainer.get().element, 'max-width', maxWidth + 'px');\n };\n const updateChromePosition = () => {\n const toolbar = OuterContainer.getToolbar(outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const targetBounds = box$1(targetElm);\n const top = isPositionedAtTop() ? Math.max(targetBounds.y - get$d(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 const repositionPopups$1 = () => {\n uiMothership.broadcastOn([repositionPopups()], {});\n };\n const updateChromeUi = (resetDocking = false) => {\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 const floatContainerComp = floatContainer.get();\n resetDocking ? Docking.reset(floatContainerComp) : Docking.refresh(floatContainerComp);\n }\n repositionPopups$1();\n };\n const updateMode = (updateUi = true) => {\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return;\n }\n const currentMode = headerBackstage.getDockingMode();\n const newMode = calcMode(floatContainer.get());\n if (newMode !== currentMode) {\n setupMode(newMode);\n if (updateUi) {\n updateChromeUi(true);\n }\n }\n };\n const show = () => {\n visible.set(true);\n set$8(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 const hide = () => {\n visible.set(false);\n if (uiComponents.outerContainer) {\n set$8(outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n set$8(uiMothership.element, 'display', 'none');\n };\n return {\n isVisible,\n isPositionedAtTop,\n show,\n hide,\n update: updateChromeUi,\n updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n\n const getTargetPosAndBounds = (targetElm, isToolbarTop) => {\n const bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds\n };\n };\n const setupEvents = (editor, targetElm, ui, toolbarPersist) => {\n const prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n const resizeContent = e => {\n const {pos, bounds} = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop());\n const {\n pos: prevPos,\n bounds: prevBounds\n } = prevPosAndBounds.get();\n const hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos,\n 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', () => ui.update(true));\n editor.on('NodeChange keydown', e => {\n requestAnimationFrame(() => resizeContent(e));\n });\n editor.on('ScrollWindow', () => ui.updateMode());\n const elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', resizeContent));\n editor.on('remove', () => {\n elementLoad.clear();\n });\n };\n const render = (editor, uiComponents, rawUiConfig, backstage, args) => {\n const {mothership, uiMothership, outerContainer} = uiComponents;\n const floatContainer = Cell(null);\n const targetElm = SugarElement.fromDom(args.targetNode);\n const ui = InlineHeader(editor, targetElm, uiComponents, backstage, floatContainer);\n const toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n const render = () => {\n if (floatContainer.get()) {\n ui.show();\n return;\n }\n floatContainer.set(OuterContainer.getHeader(outerContainer).getOrDie());\n const 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', () => {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n const api = {\n show: () => {\n render();\n },\n hide: () => {\n ui.hide();\n },\n setEnabled: state => {\n broadcastReadonly(uiComponents, !state);\n },\n isEnabled: () => !Disabling.isDisabled(outerContainer)\n };\n return {\n editorContainer: outerContainer.element.dom,\n api\n };\n };\n\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n\n const showContextToolbarEvent = 'contexttoolbar-show';\n const hideContextToolbarEvent = 'contexttoolbar-hide';\n\n const getFormApi = input => ({\n hide: () => emit(input, sandboxClose()),\n getValue: () => Representing.getValue(input)\n });\n const runOnExecute = (memInput, original) => run$1(internalToolbarButtonExecute, (comp, se) => {\n const input = memInput.get(comp);\n const formApi = getFormApi(input);\n original.onAction(formApi, se.event.buttonApi);\n });\n const renderContextButton = (memInput, button, extras) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToolbarButton({\n ...rest,\n type: 'button',\n onAction: noop\n }));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n const renderContextToggleButton = (memInput, button, extras) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToggleButton({\n ...rest,\n type: 'togglebutton',\n onAction: noop\n }));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n const generateOne = (memInput, button, providersBackstage) => {\n const extras = { backstage: { shared: { providers: providersBackstage } } };\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n const generate = (memInput, buttons, providersBackstage) => {\n const mementos = map$2(buttons, button => record(generateOne(memInput, button, providersBackstage)));\n const asSpecs = () => map$2(mementos, mem => mem.asSpec());\n const findPrimary = compInSystem => findMap(buttons, (button, i) => {\n if (button.primary) {\n return Optional.from(mementos[i]).bind(mem => mem.getOpt(compInSystem)).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n return {\n asSpecs,\n findPrimary\n };\n };\n\n const buildInitGroups = (ctx, providers) => {\n const inputAttributes = ctx.label.fold(() => ({}), label => ({ 'aria-label': label }));\n const memInput = record(Input.sketch({\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-js'\n ],\n data: ctx.initValue(),\n inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: input => commands.findPrimary(input).map(primary => {\n emitExecute(primary);\n return true;\n }),\n onLeft: (comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (comp, se) => {\n se.cut();\n return Optional.none();\n }\n })])\n }));\n const commands = generate(memInput, ctx.commands, providers);\n return [\n {\n title: Optional.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Optional.none(),\n items: commands.asSpecs()\n }\n ];\n };\n const renderContextForm = (toolbarType, ctx, providers) => renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers\n });\n const ContextForm = {\n renderContextForm,\n buildInitGroups\n };\n\n const isVerticalOverlap = (a, b, threshold = 0.01) => b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n const getRangeRect = rng => {\n const rect = rng.getBoundingClientRect();\n if (rect.height <= 0 && rect.width <= 0) {\n const leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n const elm = isText(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$1).map(e => e.dom.getBoundingClientRect()).getOr(rect);\n } else {\n return rect;\n }\n };\n const getSelectionBounds = editor => {\n const rng = editor.selection.getRng();\n const rect = getRangeRect(rng);\n if (editor.inline) {\n const scroll = get$b();\n return bounds(scroll.left + rect.left, scroll.top + rect.top, rect.width, rect.height);\n } else {\n const 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 const getAnchorElementBounds = (editor, lastElement) => lastElement.filter(inBody).map(absolute$2).getOrThunk(() => getSelectionBounds(editor));\n const getHorizontalBounds = (contentAreaBox, viewportBounds, margin) => {\n const x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n const right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x,\n width: right - x\n };\n };\n const getVerticalBounds = (editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const header = descendant(container, '.tox-editor-header').getOr(container);\n const headerBox = box$1(header);\n const isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n const 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 const 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 const getContextToolbarBounds = (editor, sharedBackstage, toolbarType, margin = 0) => {\n const viewportBounds = getBounds$3(window);\n const contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n const {x, width} = getHorizontalBounds(contentAreaBox, viewportBounds, margin);\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n const isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n const {y, bottom} = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin);\n return bounds(x, y, width, bottom - y);\n }\n };\n\n const bubbleSize$1 = 12;\n const 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 const anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n const isEntireElementSelected = (editor, elem) => {\n const rng = editor.selection.getRng();\n const 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 const preservePosition = (elem, position, f) => {\n const currentPosition = getRaw(elem, 'position');\n set$8(elem, 'position', position);\n const result = f(elem);\n currentPosition.each(pos => set$8(elem, 'position', pos));\n return result;\n };\n const shouldUseInsetLayouts = position => position === 'node';\n const determineInsetLayout = (editor, contextbar, elem, data, bounds) => {\n const selectionBounds = getSelectionBounds(editor);\n const isSameAnchorElement = data.lastElement().exists(prev => eq(elem, prev));\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), () => {\n const isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar));\n return isOverlapping && !data.isReposition() ? flip : preserve;\n });\n } else {\n const yBounds = data.getMode() === 'fixed' ? bounds.y + get$b().top : bounds.y;\n const contextbarHeight = get$d(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n const getAnchorSpec$2 = (editor, mobile, data, position) => {\n const smartInsetLayout = elem => (anchor, element, bubbles, placee, bounds) => {\n const layout = determineInsetLayout(editor, placee, elem, data, bounds);\n const newAnchor = {\n ...anchor,\n y: bounds.y,\n height: bounds.height\n };\n return {\n ...layout(newAnchor, element, bubbles, placee, bounds),\n alwaysFit: true\n };\n };\n const getInsetLayouts = elem => shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n const desktopAnchorSpecLayouts = {\n onLtr: elem => [\n north$2,\n south$2,\n northeast$2,\n southeast$2,\n northwest$2,\n southwest$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n north$2,\n south$2,\n northwest$2,\n southwest$2,\n northeast$2,\n southeast$2\n ].concat(getInsetLayouts(elem))\n };\n const mobileAnchorSpecLayouts = {\n onLtr: elem => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2\n ].concat(getInsetLayouts(elem))\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n const getAnchorLayout = (editor, position, isTouch, data) => {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: () => [east$2],\n onRtl: () => [west$2]\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\n const matchTargetWith = (elem, candidates) => {\n const ctxs = filter$2(candidates, toolbarApi => toolbarApi.predicate(elem.dom));\n const {pass, fail} = partition$3(ctxs, t => t.type === 'contexttoolbar');\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n const filterByPositionForStartNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const doesPositionExist = value => exists(toolbars, t => t.position === value);\n const filterToolbarsByPosition = value => filter$2(toolbars, t => t.position === value);\n const hasSelectionToolbars = doesPositionExist('selection');\n const hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n const nodeToolbars = filterToolbarsByPosition('node');\n const selectionToolbars = map$2(filterToolbarsByPosition('selection'), t => ({\n ...t,\n position: 'node'\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 const filterByPositionForAncestorNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const findPosition = value => find$5(toolbars, t => t.position === value);\n const basePosition = findPosition('selection').orThunk(() => findPosition('node')).orThunk(() => findPosition('line')).map(t => t.position);\n return basePosition.fold(() => [], pos => filter$2(toolbars, t => t.position === pos));\n }\n };\n const matchStartNode = (elem, nodeCandidates, editorCandidates) => {\n const nodeMatches = matchTargetWith(elem, nodeCandidates);\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n const editorMatches = matchTargetWith(elem, editorCandidates);\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n const toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem,\n toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n const matchAncestor = (isRoot, startNode, scopes) => {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, ancestorElem => {\n if (isElement$1(ancestorElem)) {\n const {contextToolbars, contextForms} = matchTargetWith(ancestorElem, scopes.inNodeScope);\n const toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n const lookup$1 = (scopes, editor) => {\n const rootElem = SugarElement.fromDom(editor.getBody());\n const isRoot = elem => eq(elem, rootElem);\n const isOutsideRoot = startNode => !isRoot(startNode) && !contains(rootElem, startNode);\n const startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(() => matchAncestor(isRoot, startNode, scopes));\n };\n\n const categorise = (contextToolbars, navigate) => {\n const forms = {};\n const inNodeScope = [];\n const inEditorScope = [];\n const formNavigators = {};\n const lookupTable = {};\n const registerForm = (key, toolbarSpec) => {\n const contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(launch => {\n formNavigators['form:' + key + ''] = {\n ...toolbarSpec.launch,\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: () => {\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 const registerToolbar = (key, toolbarSpec) => {\n createContextToolbar(toolbarSpec).each(contextToolbar => {\n if (toolbarSpec.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n const keys$1 = keys(contextToolbars);\n each$1(keys$1, key => {\n const 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,\n inNodeScope,\n inEditorScope,\n lookupTable,\n formNavigators\n };\n };\n\n const forwardSlideEvent = generate$6('forward-slide');\n const backSlideEvent = generate$6('backward-slide');\n const changeSlideEvent = generate$6('change-slide-event');\n const resizingClass = 'tox-pop--resizing';\n const renderContextToolbar = spec => {\n const stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: comp => {\n stack.set([]);\n InlineView.getContent(comp).each(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([\n config('context-toolbar-events', [\n runOnSource(transitionend(), (comp, se) => {\n if (se.event.raw.propertyName === 'width') {\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n }\n }),\n run$1(changeSlideEvent, (comp, se) => {\n const elem = comp.element;\n remove$6(elem, 'width');\n const currentWidth = get$c(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n const newWidth = get$c(elem);\n set$8(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(newContents => {\n se.event.focus.bind(f => {\n focus$3(f);\n return search(elem);\n }).orThunk(() => {\n Keying.focusIn(newContents);\n return active$1(getRootNode(elem));\n });\n });\n setTimeout(() => {\n set$8(comp.element, 'width', newWidth + 'px');\n }, 0);\n }),\n run$1(forwardSlideEvent, (comp, se) => {\n InlineView.getContent(comp).each(oldContents => {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active$1(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }),\n run$1(backSlideEvent, (comp, _se) => {\n last$1(stack.get()).each(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 })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: comp => last$1(stack.get()).fold(() => spec.onEscape(), _ => {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n })\n })\n ]),\n lazySink: () => Result.value(spec.sink)\n });\n };\n\n const transitionClass = 'tox-pop--transition';\n const register$9 = (editor, registryContextToolbars, sink, extras) => {\n const backstage = extras.backstage;\n const sharedBackstage = backstage.shared;\n const isTouch = detect$1().deviceType.isTouch;\n const lastElement = value$2();\n const lastTrigger = value$2();\n const lastContextPosition = value$2();\n const contextbar = build$1(renderContextToolbar({\n sink,\n onEscape: () => {\n editor.focus();\n return Optional.some(true);\n }\n }));\n const getBounds = () => {\n const position = lastContextPosition.get().getOr('node');\n const margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n const canLaunchToolbar = () => {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n const isSameLaunchElement = elem => is$1(lift2(elem, lastElement.get(), eq), true);\n const shouldContextToolbarHide = () => {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n const contextToolbarBounds = getBounds();\n const anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds);\n }\n };\n const close = () => {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n const hideOrRepositionIfNecessary = () => {\n if (InlineView.isOpen(contextbar)) {\n const contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\n const wrapInPopDialog = toolbarSpec => ({\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(comp => {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', () => Keying.focusIn(comp));\n }),\n runOnDetached(_comp => {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n });\n const getScopes = cached(() => categorise(registryContextToolbars, toolbarApi => {\n const alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n }));\n const buildContextToolbarGroups = (allButtons, ctx) => identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras, Optional.some(['form:']));\n const buildContextFormGroups = (ctx, providers) => ContextForm.buildInitGroups(ctx, providers);\n const buildToolbar = toolbars => {\n const {buttons} = editor.ui.registry.getAll();\n const scopes = getScopes();\n const allButtons = {\n ...buttons,\n ...scopes.formNavigators\n };\n const toolbarType = getToolbarMode(editor) === ToolbarMode$1.scrolling ? ToolbarMode$1.scrolling : ToolbarMode$1.default;\n const initGroups = flatten(map$2(toolbars, ctx => ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextFormGroups(ctx, sharedBackstage.providers)));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n const getAnchor = (position, element) => {\n const anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n const anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: () => is$1(lastTrigger.get(), 0),\n getMode: () => Positioning.getMode(sink)\n });\n return deepMerge(anchorage, anchorLayout);\n };\n const launchContext = (toolbarApi, elem) => {\n launchContextToolbar.cancel();\n if (!canLaunchToolbar()) {\n return;\n }\n const toolbarSpec = buildToolbar(toolbarApi);\n const position = toolbarApi[0].position;\n const anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n const 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,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, () => Optional.some(getBounds()));\n elem.fold(lastElement.clear, lastElement.set);\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n }\n };\n const launchContextToolbar = last(() => {\n if (!editor.hasFocus() || editor.removed) {\n return;\n }\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n const scopes = getScopes();\n lookup$1(scopes, editor).fold(close, info => {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', () => {\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, e => {\n const scopes = getScopes();\n get$g(scopes.lookupTable, e.toolbarKey).each(ctx => {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n editor.on('focusout', _e => {\n global$9.setEditorTimeout(editor, () => {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', () => {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('AfterProgressState', event => {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('NodeChange', _e => {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n\n const register$8 = editor => {\n const alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n each$1(alignToolbarButtons, 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\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n const normalise = (input, accepted) => parse(input, accepted).map(({value, unit}) => value + unit);\n\n const registerController = (editor, spec) => {\n const getMenuItems = () => {\n const options = spec.getOptions(editor);\n const initial = spec.getCurrent(editor).map(spec.hash);\n const current = value$2();\n return map$2(options, value => ({\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: api => {\n const setActive = active => {\n if (active) {\n current.on(oldApi => oldApi.setActive(false));\n current.set(api);\n }\n api.setActive(active);\n };\n setActive(is$1(initial, spec.hash(value)));\n const unbindWatcher = spec.watcher(editor, value, setActive);\n return () => {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: () => spec.setCurrent(editor, value)\n }));\n };\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: callback => callback(getMenuItems()),\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 const lineHeightSpec = {\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: input => normalise(input, [\n 'fixed',\n 'relative',\n 'empty'\n ]).getOr(input),\n display: identity,\n watcher: (editor, value, callback) => editor.formatter.formatChanged('lineheight', callback, false, { value }).unbind,\n getCurrent: editor => Optional.from(editor.queryCommandValue('LineHeight')),\n setCurrent: (editor, value) => editor.execCommand('LineHeight', false, value)\n };\n const languageSpec = editor => {\n const settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(settings => ({\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: input => isUndefined(input.customCode) ? input.code : `${ input.code }/${ input.customCode }`,\n display: input => input.title,\n watcher: (editor, value, callback) => editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: value.customCode\n }).unbind,\n getCurrent: editor => {\n const node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, n => Optional.some(n).filter(isElement$1).bind(ele => {\n const codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(code => {\n const customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code,\n customCode,\n title: ''\n };\n });\n }));\n },\n setCurrent: (editor, lang) => editor.execCommand('Lang', false, lang),\n onToolbarSetup: api => {\n const 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 const register$7 = editor => {\n registerController(editor, lineHeightSpec);\n languageSpec(editor).each(spec => registerController(editor, spec));\n };\n\n const register$6 = (editor, backstage) => {\n createAlignMenu(editor, backstage);\n createFontFamilyMenu(editor, backstage);\n createStylesMenu(editor, backstage);\n createBlocksMenu(editor, backstage);\n createFontSizeMenu(editor, backstage);\n };\n\n const onSetupOutdentState = editor => onSetupEvent(editor, 'NodeChange', api => {\n api.setEnabled(editor.queryCommandState('outdent'));\n });\n const registerButtons$2 = 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 const register$5 = editor => {\n registerButtons$2(editor);\n };\n\n const makeSetupHandler = (editor, pasteAsText) => api => {\n api.setActive(pasteAsText.get());\n const pastePlainTextToggleHandler = e => {\n pasteAsText.set(e.state);\n api.setActive(e.state);\n };\n editor.on('PastePlainTextToggle', pastePlainTextToggleHandler);\n return () => editor.off('PastePlainTextToggle', pastePlainTextToggleHandler);\n };\n const register$4 = editor => {\n const pasteAsText = Cell(getPasteAsText(editor));\n const onAction = () => editor.execCommand('mceTogglePlainTextPaste');\n editor.ui.registry.addToggleButton('pastetext', {\n active: false,\n icon: 'paste-text',\n tooltip: 'Paste as text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n editor.ui.registry.addToggleMenuItem('pastetext', {\n text: 'Paste as text',\n icon: 'paste-text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n };\n\n const onActionToggleFormat = (editor, fmt) => () => {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n const registerFormatButtons = editor => {\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\n ], (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 (let i = 1; i <= 6; i++) {\n const name = 'h' + i;\n editor.ui.registry.addToggleButton(name, {\n text: name.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name),\n onAction: onActionToggleFormat(editor, name)\n });\n }\n };\n const registerCommandButtons = editor => {\n global$1.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n },\n {\n name: 'print',\n text: 'Print',\n action: 'mcePrint',\n icon: 'print'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], 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 const registerCommandToggleButtons = editor => {\n global$1.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], 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 const registerButtons$1 = editor => {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n const registerMenuItems$2 = editor => {\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n },\n {\n name: 'print',\n text: 'Print...',\n action: 'mcePrint',\n icon: 'print',\n shortcut: 'Meta+P'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], menuitem => {\n editor.ui.registry.addMenuItem(menuitem.name, {\n text: menuitem.text,\n icon: menuitem.icon,\n shortcut: menuitem.shortcut,\n onAction: onActionExecCommand(editor, menuitem.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n const register$3 = editor => {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n\n const onSetupUndoRedoState = (editor, type) => onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', api => {\n api.setEnabled(!editor.mode.isReadOnly() && editor.undoManager[type]());\n });\n const registerMenuItems$1 = 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 const registerButtons = editor => {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n const register$2 = editor => {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n\n const onSetupVisualAidState = editor => onSetupEvent(editor, 'VisualAid', api => {\n api.setActive(editor.hasVisual);\n });\n const registerMenuItems = editor => {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n const registerToolbarButton = editor => {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n const register$1 = editor => {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n\n const setup$6 = (editor, backstage) => {\n register$8(editor);\n register$3(editor);\n register$6(editor, backstage);\n register$2(editor);\n register$c(editor);\n register$1(editor);\n register$5(editor);\n register$7(editor);\n register$4(editor);\n };\n\n const patchPipeConfig = config => isString(config) ? config.split(/[ ,]/) : config;\n const option = name => editor => editor.options.get(name);\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('contextmenu_avoid_overlap', {\n processor: 'string',\n default: ''\n });\n registerOption('contextmenu_never_use_native', {\n processor: 'boolean',\n default: false\n });\n registerOption('contextmenu', {\n processor: value => {\n if (value === false) {\n return {\n value: [],\n valid: true\n };\n } else if (isString(value) || isArrayOf(value, isString)) {\n return {\n value: patchPipeConfig(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be false or a string.'\n };\n }\n },\n default: 'link linkchecker image editimage table spellchecker configurepermanentpen'\n });\n };\n const shouldNeverUseNative = option('contextmenu_never_use_native');\n const getAvoidOverlapSelector = option('contextmenu_avoid_overlap');\n const isContextMenuDisabled = editor => getContextMenu(editor).length === 0;\n const getContextMenu = editor => {\n const contextMenus = editor.ui.registry.getAll().contextMenus;\n const contextMenu = editor.options.get('contextmenu');\n if (editor.options.isSet('contextmenu')) {\n return contextMenu;\n } else {\n return filter$2(contextMenu, item => has$2(contextMenus, item));\n }\n };\n\n const nu = (x, y) => ({\n type: 'makeshift',\n x,\n y\n });\n const transpose = (pos, dx, dy) => {\n return nu(pos.x + dx, pos.y + dy);\n };\n const isTouchEvent = e => e.type === 'longpress' || e.type.indexOf('touch') === 0;\n const fromPageXY = e => {\n if (isTouchEvent(e)) {\n const touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n const fromClientXY = e => {\n if (isTouchEvent(e)) {\n const touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n const transposeContentAreaContainer = (element, pos) => {\n const containerPos = global$7.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n const getPointAnchor = (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 const getSelectionAnchor = editor => {\n return {\n type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n const getNodeAnchor = editor => ({\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n });\n const getAnchorSpec$1 = (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\n const initAndShow$1 = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const items = buildMenu();\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(menuData => {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, { anchor: anchorSpec }, {\n menu: { markers: markers('normal') },\n data: menuData\n });\n });\n };\n\n const layouts = {\n onLtr: () => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2,\n north,\n south,\n northeast,\n southeast,\n northwest,\n southwest\n ],\n onRtl: () => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2,\n north,\n south,\n northwest,\n southwest,\n northeast,\n southeast\n ]\n };\n const bubbleSize = 12;\n const 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 const isTouchWithinSelection = (editor, e) => {\n const selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n const touch = e.touches[0];\n const rng = selection.getRng();\n const rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(rngRect => rngRect.left <= touch.clientX && rngRect.right >= touch.clientX && rngRect.top <= touch.clientY && rngRect.bottom >= touch.clientY);\n }\n };\n const setupiOSOverrides = editor => {\n const originalSelection = editor.selection.getRng();\n const selectionReset = () => {\n global$9.setEditorTimeout(editor, () => {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n const preventMousedown = e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n const clearSelectionReset = () => unbindEventListeners();\n editor.once('longpresscancel', clearSelectionReset);\n const unbindEventListeners = () => {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n const getAnchorSpec = (editor, e, anchorType) => {\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n const bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return {\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n },\n ...anchorSpec\n };\n };\n const show = (editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) => {\n const anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(menuData => {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, { anchor: anchorSpec }, {\n menu: {\n markers: markers('normal'),\n highlightImmediately\n },\n data: menuData,\n type: 'horizontal'\n }, () => Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection')));\n editor.dispatch(hideContextToolbarEvent);\n });\n };\n const initAndShow = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const detection = detect$1();\n const isiOS = detection.os.isiOS();\n const isMacOS = detection.os.isMacOS();\n const isAndroid = detection.os.isAndroid();\n const isTouch = detection.deviceType.isTouch();\n const shouldHighlightImmediately = () => !(isAndroid || isiOS || isMacOS && isTouch);\n const open = () => {\n const items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n if ((isMacOS || isiOS) && anchorType !== 'node') {\n const openiOS = () => {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS();\n } else {\n editor.once('selectionchange', openiOS);\n editor.once('touchend', () => editor.off('selectionchange', openiOS));\n }\n } else {\n open();\n }\n };\n\n const isSeparator = item => isString(item) ? item === '|' : item.type === 'separator';\n const separator = { type: 'separator' };\n const makeContextItem = item => {\n const commonMenuItem = item => ({\n text: item.text,\n icon: item.icon,\n enabled: item.enabled,\n shortcut: item.shortcut\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 {\n type: 'nestedmenuitem',\n ...commonMenuItem(item),\n getSubmenuItems: () => {\n const 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 {\n type: 'menuitem',\n ...commonMenuItem(item),\n onAction: noarg(item.onAction)\n };\n }\n }\n };\n const addContextMenuGroup = (xs, groupItems) => {\n if (groupItems.length === 0) {\n return xs;\n }\n const lastMenuItem = last$1(xs).filter(item => !isSeparator(item));\n const before = lastMenuItem.fold(() => [], _ => [separator]);\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n const generateContextMenu = (contextMenus, menuConfig, selectedElement) => {\n const sections = foldl(menuConfig, (acc, name) => {\n return get$g(contextMenus, name.toLowerCase()).map(menu => {\n const items = menu.update(selectedElement);\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n const allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(() => acc.concat([name]));\n }, []);\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n const isNativeOverrideKeyEvent = (editor, e) => e.ctrlKey && !shouldNeverUseNative(editor);\n const isTriggeredByKeyboard = (editor, e) => e.type !== 'longpress' && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n const getSelectedElement = (editor, e) => isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n const getAnchorType = (editor, e) => {\n const selector = getAvoidOverlapSelector(editor);\n const anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n if (isNotEmpty(selector)) {\n const target = getSelectedElement(editor, e);\n const selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n const setup$5 = (editor, lazySink, backstage) => {\n const detection = detect$1();\n const isTouch = detection.deviceType.isTouch;\n const contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink,\n onEscape: () => editor.focus(),\n onShow: () => backstage.setContextMenuState(true),\n onHide: () => backstage.setContextMenuState(false),\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), (comp, _se) => {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n const hideContextMenu = _e => InlineView.hide(contextmenu);\n const showContextMenu = e => {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n const anchorType = getAnchorType(editor, e);\n const buildMenu = () => {\n const selectedElement = getSelectedElement(editor, e);\n const registry = editor.ui.registry.getAll();\n const menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n const initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n editor.on('init', () => {\n const hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n\n const adt = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n const subtract = change => point => point.translate(-change.left, -change.top);\n const add = change => point => point.translate(change.left, change.top);\n const transform = changes => (x, y) => foldl(changes, (rest, f) => f(rest), SugarPosition(x, y));\n const asFixed = (coord, scroll, origin) => coord.fold(transform([\n add(origin),\n subtract(scroll)\n ]), transform([subtract(scroll)]), transform([]));\n const asAbsolute = (coord, scroll, origin) => coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n const asOffset = (coord, scroll, origin) => coord.fold(transform([]), transform([subtract(origin)]), transform([\n add(scroll),\n subtract(origin)\n ]));\n const withinRange = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left - a2.left) <= xRange && Math.abs(a1.top - a2.top) <= yRange;\n };\n const getDeltas = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n const left = Math.abs(a1.left - a2.left);\n const top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n const toStyles = (coord, scroll, origin) => {\n const stylesOpt = coord.fold((x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }), (x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n }), (x, y) => ({\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }));\n return {\n right: Optional.none(),\n bottom: Optional.none(),\n ...stylesOpt\n };\n };\n const translate = (coord, deltaX, deltaY) => coord.fold((x, y) => offset(x + deltaX, y + deltaY), (x, y) => absolute(x + deltaX, y + deltaY), (x, y) => fixed(x + deltaX, y + deltaY));\n const absorb = (partialCoord, originalCoord, scroll, origin) => {\n const absorbOne = (stencil, nu) => (optX, optY) => {\n const original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left), optY.getOr(original.top));\n };\n return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n const offset = adt.offset;\n const absolute = adt.absolute;\n const fixed = adt.fixed;\n\n const parseAttrToInt = (element, name) => {\n const value = get$f(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n const get = (component, snapsInfo) => {\n const element = component.element;\n const x = parseAttrToInt(element, snapsInfo.leftAttr);\n const y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n const set = (component, snapsInfo, pt) => {\n const element = component.element;\n set$9(element, snapsInfo.leftAttr, pt.left + 'px');\n set$9(element, snapsInfo.topAttr, pt.top + 'px');\n };\n const clear = (component, snapsInfo) => {\n const element = component.element;\n remove$7(element, snapsInfo.leftAttr);\n remove$7(element, snapsInfo.topAttr);\n };\n\n const getCoords = (component, snapInfo, coord, delta) => get(component, snapInfo).fold(() => coord, fixed$1 => fixed(fixed$1.left + delta.left, fixed$1.top + delta.top));\n const moveOrSnap = (component, snapInfo, coord, delta, scroll, origin) => {\n const newCoord = getCoords(component, snapInfo, coord, delta);\n const snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n const fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(() => ({\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.none()\n }), spanned => ({\n coord: spanned.output,\n extra: spanned.extra\n }));\n };\n const stopDrag = (component, snapInfo) => {\n clear(component, snapInfo);\n };\n const findMatchingSnap = (snaps, newCoord, scroll, origin) => findMap(snaps, snap => {\n const sensor = snap.sensor;\n const 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 const findClosestSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n const matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(() => {\n const bestSnap = foldl(snaps, (acc, snap) => {\n const sensor = snap.sensor;\n const deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(() => ({\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n }), bestDeltas => {\n const currAvg = (deltas.left + deltas.top) / 2;\n const 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(snap => ({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }));\n });\n };\n const findSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n const snapTo$1 = (snap, scroll, origin) => ({\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n });\n\n const snapTo = (component, dragConfig, _state, snap) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$b(doc);\n const origin = getOrigin(target);\n const snapPin = snapTo$1(snap, scroll, origin);\n const styles = toStyles(snapPin.coord, scroll, origin);\n setOptions(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n\n const initialAttribute = 'data-initial-z-index';\n const resetZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getOpt(root, initialAttribute).fold(() => remove$6(root, 'z-index'), zIndex => set$8(root, 'z-index', zIndex));\n remove$7(root, initialAttribute);\n });\n };\n const changeZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getRaw(root, 'z-index').each(zindex => {\n set$9(root, initialAttribute, zindex);\n });\n set$8(root, 'z-index', get$e(blocker.element, 'z-index'));\n });\n };\n const instigate = (anyComponent, blocker) => {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n const discard = blocker => {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n const createComponent = (component, blockerClass, blockerEvents) => 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', [\n required$1('getSnapPoints'),\n onHandler('onSensor'),\n required$1('leftAttr'),\n required$1('topAttr'),\n defaulted('lazyViewport', win),\n defaulted('mustSnap', false)\n ]);\n\n const schema$6 = [\n defaulted('useFixed', never),\n required$1('blockerClass'),\n defaulted('getTarget', identity),\n defaulted('onDrag', noop),\n defaulted('repositionTarget', true),\n defaulted('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema\n ];\n\n const getCurrentCoord = target => lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), (left, top, position) => {\n const nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(() => {\n const location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n const clampCoords = (component, coords, scroll, origin, startData) => {\n const bounds = startData.bounds;\n const absoluteCoord = asAbsolute(coords, scroll, origin);\n const newX = clamp(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n const newY = clamp(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n const newCoords = absolute(newX, newY);\n return coords.fold(() => {\n const offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), () => {\n const fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n const calcNewCoord = (component, optSnaps, currentCoord, scroll, origin, delta, startData) => {\n const newCoord = optSnaps.fold(() => {\n const translated = translate(currentCoord, delta.left, delta.top);\n const fixedCoord = asFixed(translated, scroll, origin);\n return fixed(fixedCoord.left, fixedCoord.top);\n }, snapInfo => {\n const snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(extra => {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n const dragBy = (component, dragConfig, startData, delta) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$b(doc);\n const origin = getOrigin(target);\n const currentCoord = getCurrentCoord(target);\n const newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll, origin, delta, startData);\n const styles = toStyles(newCoord, scroll, origin);\n setOptions(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n const calcStartData = (dragConfig, comp) => ({\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n });\n const move = (component, dragConfig, dragState, dragMode, event) => {\n const delta = dragState.update(dragMode, event);\n const dragStartData = dragState.getStartData().getOrThunk(() => calcStartData(dragConfig, component));\n delta.each(dlt => {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n const stop = (component, blocker, dragConfig, dragState) => {\n blocker.each(discard);\n dragConfig.snaps.each(snapInfo => {\n stopDrag(component, snapInfo);\n });\n const target = dragConfig.getTarget(component.element);\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n const handlers = events => (dragConfig, dragState) => {\n const updateStartState = comp => {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive$2([\n run$1(windowScroll(), comp => {\n dragState.getStartData().each(() => updateStartState(comp));\n }),\n ...events(dragConfig, dragState, updateStartState)\n ]);\n };\n\n const init$2 = dragApi => derive$2([\n run$1(mousedown(), dragApi.forceDrop),\n run$1(mouseup(), dragApi.drop),\n run$1(mousemove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n }),\n run$1(mouseout(), dragApi.delayDrop)\n ]);\n\n const getData$1 = event => Optional.from(SugarPosition(event.x, event.y));\n const getDelta$1 = (old, nu) => 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\n const events$2 = (dragConfig, dragState, updateStartState) => [run$1(mousedown(), (component, simulatedEvent) => {\n const raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n const stop$1 = () => stop(component, Optional.some(blocker), dragConfig, dragState);\n const delayDrop = DelayedFunction(stop$1, 200);\n const dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: event => {\n delayDrop.cancel();\n move(component, dragConfig, dragState, MouseData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n const schema$5 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$2) })\n ];\n\n const init$1 = dragApi => derive$2([\n run$1(touchstart(), dragApi.forceDrop),\n run$1(touchend(), dragApi.drop),\n run$1(touchcancel(), dragApi.drop),\n run$1(touchmove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n })\n ]);\n\n const getDataFrom = touches => {\n const touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n const getData = event => {\n const raw = event.raw;\n const touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n const getDelta = (old, nu) => 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\n const events$1 = (dragConfig, dragState, updateStartState) => {\n const blockerSingleton = value$2();\n const stopBlocking = component => {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n return [\n run$1(touchstart(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n const stop = () => stopBlocking(component);\n const dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: event => {\n move(component, dragConfig, dragState, TouchData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$1(dragApi));\n blockerSingleton.set(blocker);\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run$1(touchmove(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }),\n run$1(touchend(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n stopBlocking(component);\n }),\n run$1(touchcancel(), stopBlocking)\n ];\n };\n const schema$4 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$1) })\n ];\n\n const events = (dragConfig, dragState, updateStartState) => [\n ...events$2(dragConfig, dragState, updateStartState),\n ...events$1(dragConfig, dragState, updateStartState)\n ];\n const schema$3 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events) })\n ];\n\n const mouse = schema$5;\n const touch = schema$4;\n const mouseOrTouch = schema$3;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n const init = () => {\n let previous = Optional.none();\n let startData = Optional.none();\n const reset = () => {\n previous = Optional.none();\n startData = Optional.none();\n };\n const calculateDelta = (mode, nu) => {\n const result = previous.map(old => mode.getDelta(old, nu));\n previous = Optional.some(nu);\n return result;\n };\n const update = (mode, dragEvent) => mode.getData(dragEvent).bind(nuData => calculateDelta(mode, nuData));\n const setStartData = data => {\n startData = Optional.some(data);\n };\n const getStartData = () => startData;\n const readState = constant$1({});\n return nu$8({\n readState,\n reset,\n update,\n getStartData,\n setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n\n const Dragging = createModes({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: (dragConfig, dragState) => {\n const dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: sConfig => ({\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n })\n },\n state: DragState,\n apis: DraggingApis\n });\n\n const snapWidth = 40;\n const snapOffset = snapWidth / 2;\n const calcSnap = (selectorOpt, td, x, y, width, height) => selectorOpt.fold(() => 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: { td }\n }), selectorHandle => {\n const sensorLeft = x - snapOffset;\n const sensorTop = y - snapOffset;\n const sensorWidth = snapWidth;\n const sensorHeight = snapWidth;\n const 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: { td }\n });\n });\n const getSnapsConfig = (getSnapPoints, cell, onChange) => {\n const isSameCell = (cellOpt, td) => cellOpt.exists(currentTd => eq(currentTd, td));\n return {\n getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: (component, extra) => {\n const td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n const createSelector = snaps => record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n const setup$4 = (editor, sink) => {\n const tlTds = Cell([]);\n const brTds = Cell([]);\n const isVisible = Cell(false);\n const startCell = value$2();\n const finishCell = value$2();\n const getTopLeftSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n const getTopLeftSnaps = () => map$2(tlTds.get(), td => getTopLeftSnap(td));\n const getBottomRightSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n const getBottomRightSnaps = () => map$2(brTds.get(), td => getBottomRightSnap(td));\n const topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, start => {\n finishCell.get().each(finish => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, finish => {\n startCell.get().each(start => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const memTopLeft = createSelector(topLeftSnaps);\n const memBottomRight = createSelector(bottomRightSnaps);\n const topLeft = build$1(memTopLeft.asSpec());\n const bottomRight = build$1(memBottomRight.asSpec());\n const showOrHideHandle = (selector, cell, isAbove, isBelow) => {\n const cellRect = cell.dom.getBoundingClientRect();\n remove$6(selector.element, 'display');\n const viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n const aboveViewport = isAbove(cellRect);\n const belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$8(selector.element, 'display', 'none');\n }\n };\n const snapTo = (selector, cell, getSnapConfig, pos) => {\n const snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n const isAbove = rect => rect[pos] < 0;\n const isBelow = (rect, viewportHeight) => rect[pos] > viewportHeight;\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n const snapTopLeft = cell => snapTo(topLeft, cell, getTopLeftSnap, 'top');\n const snapLastTopLeft = () => startCell.get().each(snapTopLeft);\n const snapBottomRight = cell => snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n const snapLastBottomRight = () => finishCell.get().each(snapBottomRight);\n if (detect$1().deviceType.isTouch()) {\n editor.on('TableSelectionChange', 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(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', () => {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', () => {\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\n var Logo = \"<svg width=\\\"50px\\\" height=\\\"16px\\\" viewBox=\\\"0 0 50 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M10.143 0c2.608.015 5.186 2.178 5.186 5.331 0 0 .077 3.812-.084 4.87-.361 2.41-2.164 4.074-4.65 4.496-1.453.284-2.523.49-3.212.623-.373.071-.634.122-.785.152-.184.038-.997.145-1.35.145-2.732 0-5.21-2.04-5.248-5.33 0 0 0-3.514.03-4.442.093-2.4 1.758-4.342 4.926-4.963 0 0 3.875-.752 4.036-.782.368-.07.775-.1 1.15-.1Zm1.826 2.8L5.83 3.989v2.393l-2.455.475v5.968l6.137-1.189V9.243l2.456-.476V2.8ZM5.83 6.382l3.682-.713v3.574l-3.682.713V6.382Zm27.173-1.64-.084-1.066h-2.226v9.132h2.456V7.743c-.008-1.151.998-2.064 2.149-2.072 1.15-.008 1.987.92 1.995 2.072v5.065h2.455V7.359c-.015-2.18-1.657-3.929-3.837-3.913a3.993 3.993 0 0 0-2.908 1.296Zm-6.3-4.266L29.16 0v2.387l-2.456.475V.476Zm0 3.2v9.132h2.456V3.676h-2.456Zm18.179 11.787L49.11 3.676H46.58l-1.612 4.527-.46 1.382-.384-1.382-1.611-4.527H39.98l3.3 9.132L42.15 16l2.732-.537ZM22.867 9.738c0 .752.568 1.075.921 1.075.353 0 .668-.047.998-.154l.537 1.765c-.23.154-.92.537-2.225.537-1.305 0-2.655-.997-2.686-2.686a136.877 136.877 0 0 1 0-4.374H18.8V3.676h1.612v-1.98l2.455-.476v2.456h2.302V5.9h-2.302v3.837Z\\\"/>\\n</svg>\\n\";\n\n const isHidden = elm => elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus') || elm.getAttribute('data-mce-type') === 'bookmark';\n const renderElementPath = (editor, settings, providersBackstage) => {\n var _a;\n const delimiter = (_a = settings.delimiter) !== null && _a !== void 0 ? _a : '\\u203A';\n const renderElement = (name, element, index) => Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: {\n 'data-index': index,\n 'aria-level': index + 1\n }\n },\n components: [text$1(name)],\n action: _btn => {\n editor.focus();\n editor.selection.select(element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\n ])\n });\n const renderDivider = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true }\n },\n components: [text$1(` ${ delimiter } `)]\n });\n const renderPathData = data => foldl(data, (acc, path, index) => {\n const element = renderElement(path.name, path.element, index);\n if (index === 0) {\n return acc.concat([element]);\n } else {\n return acc.concat([\n renderDivider(),\n element\n ]);\n }\n }, []);\n const updatePath = parents => {\n const newPath = [];\n let i = parents.length;\n while (i-- > 0) {\n const parent = parents[i];\n if (parent.nodeType === 1 && !isHidden(parent)) {\n const args = editor.dispatch('ResolveName', {\n name: parent.nodeName.toLowerCase(),\n target: parent\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent\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: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Disabling.config({ disabled: providersBackstage.isDisabled }),\n receivingConfig(),\n Tabstopping.config({}),\n Replacing.config({}),\n config('elementPathEvents', [runOnAttached((comp, _e) => {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', () => Keying.focusIn(comp));\n editor.on('NodeChange', e => {\n const newPath = updatePath(e.parents);\n const newChildren = newPath.length > 0 ? renderPathData(newPath) : [];\n Replacing.set(comp, newChildren);\n });\n })])\n ]),\n components: []\n };\n };\n\n var ResizeTypes;\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n }(ResizeTypes || (ResizeTypes = {})));\n const getDimensions = (editor, deltas, resizeType, originalHeight, originalWidth) => {\n const dimensions = {};\n dimensions.height = calcCappedSize(originalHeight + deltas.top, getMinHeightOption(editor), getMaxHeightOption(editor));\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthOption(editor), getMaxWidthOption(editor));\n }\n return dimensions;\n };\n const resize = (editor, deltas, resizeType) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const dimensions = getDimensions(editor, deltas, resizeType, get$d(container), get$c(container));\n each(dimensions, (val, dim) => set$8(container, dim, numToPx(val)));\n fireResizeEditor(editor);\n };\n\n const getResizeType = editor => {\n const resize = getResize(editor);\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 const keyboardHandler = (editor, resizeType, x, y) => {\n const scale = 20;\n const delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n const renderResizeHandler = (editor, providersBackstage) => {\n const 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: { title: providersBackstage.translate('Resize') },\n behaviours: [\n Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: (_comp, _target, delta) => resize(editor, delta, resizeType),\n blockerClass: 'tox-blocker'\n }),\n Keying.config({\n mode: 'special',\n onLeft: () => keyboardHandler(editor, resizeType, -1, 0),\n onRight: () => keyboardHandler(editor, resizeType, 1, 0),\n onUp: () => keyboardHandler(editor, resizeType, 0, -1),\n onDown: () => keyboardHandler(editor, resizeType, 0, 1)\n }),\n Tabstopping.config({}),\n Focusing.config({})\n ]\n }, providersBackstage.icons));\n };\n\n const renderWordCount = (editor, providersBackstage) => {\n const replaceCountText = (comp, count, mode) => Replacing.set(comp, [text$1(providersBackstage.translate([\n '{0} ' + mode,\n count[mode]\n ]))]);\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig(),\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n runOnExecute$1(comp => {\n const currentVal = Representing.getValue(comp);\n const 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 }),\n runOnAttached(comp => {\n editor.on('wordCountUpdate', e => {\n const {mode} = Representing.getValue(comp);\n Representing.setValue(comp, {\n mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })\n ])\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'wordcount-events'\n ]\n }\n });\n };\n\n const renderStatusbar = (editor, providersBackstage) => {\n const renderBranding = () => {\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding']\n },\n components: [{\n dom: {\n tag: 'a',\n attributes: {\n 'href': 'https://www.tiny.cloud/powered-by-tiny?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v6',\n 'rel': 'noopener',\n 'target': '_blank',\n 'aria-label': global$8.translate([\n 'Powered by {0}',\n 'Tiny'\n ])\n },\n innerHtml: Logo.trim()\n },\n behaviours: derive$1([Focusing.config({})])\n }]\n };\n };\n const getTextComponents = () => {\n const components = [];\n if (useElementPath(editor)) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (useBranding(editor)) {\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\n }];\n }\n return [];\n };\n const getComponents = () => {\n const components = getTextComponents();\n const 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\n const getLazyMothership = singleton => singleton.get().getOrDie('UI has not been rendered');\n const setup$3 = editor => {\n const isInline = editor.inline;\n const mode = isInline ? Inline : Iframe;\n const header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n const lazySink = value$2();\n const lazyOuterContainer = value$2();\n const lazyMothership = value$2();\n const lazyUiMothership = value$2();\n const platform = detect$1();\n const isTouch = platform.deviceType.isTouch();\n const touchPlatformClass = 'tox-platform-touch';\n const deviceClasses = isTouch ? [touchPlatformClass] : [];\n const isToolbarBottom = isToolbarLocationBottom(editor);\n const toolbarMode = getToolbarMode(editor);\n const memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n const lazyHeader = () => lazyOuterContainer.get().bind(OuterContainer.getHeader);\n const lazySinkResult = () => Result.fromOption(lazySink.get(), 'UI has not been rendered');\n const lazyAnchorBar = () => lazyOuterContainer.get().bind(container => memAnchorBar.getOpt(container)).getOrDie('Could not find a anchor bar element');\n const lazyToolbar = () => lazyOuterContainer.get().bind(container => OuterContainer.getToolbar(container)).getOrDie('Could not find more toolbar element');\n const lazyThrobber = () => lazyOuterContainer.get().bind(container => OuterContainer.getThrobber(container)).getOrDie('Could not find throbber element');\n const backstage = init$7(lazySinkResult, editor, lazyAnchorBar);\n const makeHeaderPart = () => {\n const verticalDirAttributes = { attributes: { [Attribute]: isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom } };\n const partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage,\n onEscape: () => {\n editor.focus();\n }\n });\n const partToolbar = OuterContainer.parts.toolbar({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySinkResult,\n providers: backstage.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n type: toolbarMode,\n lazyToolbar,\n lazyHeader: () => lazyHeader().getOrDie('Could not find header element'),\n ...verticalDirAttributes\n });\n const partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstage.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n type: toolbarMode\n });\n const hasMultipleToolbar = isMultipleToolbars(editor);\n const hasToolbar = isToolbarEnabled(editor);\n const hasMenubar = isMenubarEnabled(editor);\n const getPartToolbar = () => {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n return OuterContainer.parts.header({\n dom: {\n tag: 'div',\n classes: ['tox-editor-header'],\n ...verticalDirAttributes\n },\n components: flatten([\n hasMenubar ? [partMenubar] : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor,\n sharedBackstage: backstage.shared\n });\n };\n const makeSidebarDefinition = () => {\n const partSocket = OuterContainer.parts.socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n const partSidebar = OuterContainer.parts.sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [\n partSocket,\n partSidebar\n ]\n };\n };\n const renderSink = () => {\n const uiContainer = getUiContainer(editor);\n const isGridUiContainer = eq(body(), uiContainer) && get$e(uiContainer, 'display') === 'grid';\n const sinkSpec = {\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(deviceClasses),\n attributes: { ...global$8.isRtl() ? { dir: 'rtl' } : {} }\n },\n behaviours: derive$1([Positioning.config({ useFixed: () => header.isDocked(lazyHeader) })])\n };\n const reactiveWidthSpec = {\n dom: { styles: { width: document.body.clientWidth + 'px' } },\n events: derive$2([run$1(windowResize(), comp => {\n set$8(comp.element, 'width', document.body.clientWidth + 'px');\n })])\n };\n const sink = build$1(deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {}));\n const uiMothership = takeover(sink);\n lazySink.set(sink);\n lazyUiMothership.set(uiMothership);\n return {\n sink,\n uiMothership\n };\n };\n const renderContainer = () => {\n const partHeader = makeHeaderPart();\n const sidebarContainer = makeSidebarDefinition();\n const partThrobber = OuterContainer.parts.throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage\n });\n const statusbar = useStatusBar(editor) && !isInline ? Optional.some(renderStatusbar(editor, backstage.shared.providers)) : Optional.none();\n const editorComponents = flatten([\n isToolbarBottom ? [] : [partHeader],\n isInline ? [] : [sidebarContainer],\n isToolbarBottom ? [partHeader] : []\n ]);\n const editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n const containerComponents = flatten([\n [editorContainer],\n isInline ? [] : statusbar.toArray(),\n [partThrobber]\n ]);\n const isHidden = isDistractionFree(editor);\n const attributes = {\n role: 'application',\n ...global$8.isRtl() ? { dir: 'rtl' } : {},\n ...isHidden ? { 'aria-hidden': 'true' } : {}\n };\n const outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses),\n styles: {\n visibility: 'hidden',\n ...isHidden ? {\n opacity: '0',\n border: '0'\n } : {}\n },\n attributes\n },\n components: containerComponents,\n behaviours: derive$1([\n receivingConfig(),\n Disabling.config({ 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 }));\n const mothership = takeover(outerContainer);\n lazyOuterContainer.set(outerContainer);\n lazyMothership.set(mothership);\n return {\n mothership,\n outerContainer\n };\n };\n const setEditorSize = outerContainer => {\n const parsedHeight = numToPx(getHeightWithFallback(editor));\n const parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$8(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue('div', 'height', parsedHeight)) {\n set$8(outerContainer.element, 'height', parsedHeight);\n } else {\n set$8(outerContainer.element, 'height', '400px');\n }\n }\n return parsedHeight;\n };\n const setupShortcutsAndCommands = outerContainer => {\n editor.addShortcut('alt+F9', 'focus menubar', () => {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.addShortcut('alt+F10', 'focus toolbar', () => {\n OuterContainer.focusToolbar(outerContainer);\n });\n editor.addCommand('ToggleToolbarDrawer', () => {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', () => OuterContainer.isToolbarDrawerToggled(outerContainer));\n };\n const renderUI = () => {\n const {mothership, outerContainer} = renderContainer();\n const {uiMothership, sink} = renderSink();\n map$1(getToolbarGroups(editor), (toolbarGroupButtonConfig, name) => {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n const {buttons, menuItems, contextToolbars, sidebars} = editor.ui.registry.getAll();\n const toolbarOpt = getMultipleToolbarsOption(editor);\n const rawUiConfig = {\n menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(() => getToolbar(editor)),\n allowToolbarGroups: toolbarMode === ToolbarMode$1.floating,\n buttons,\n sidebar: sidebars\n };\n setupShortcutsAndCommands(outerContainer);\n setup$b(editor, mothership, uiMothership);\n header.setup(editor, backstage.shared, lazyHeader);\n setup$6(editor, backstage);\n setup$5(editor, lazySinkResult, backstage);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstage.shared);\n register$9(editor, contextToolbars, sink, { backstage });\n setup$4(editor, sink);\n const elm = editor.getElement();\n const height = setEditorSize(outerContainer);\n const uiComponents = {\n mothership,\n uiMothership,\n outerContainer,\n sink\n };\n const args = {\n targetNode: elm,\n height\n };\n return mode.render(editor, uiComponents, rawUiConfig, backstage, args);\n };\n const getMothership = () => getLazyMothership(lazyMothership);\n const getUiMothership = () => getLazyMothership(lazyUiMothership);\n return {\n getMothership,\n getUiMothership,\n backstage,\n renderUI\n };\n };\n\n const describedBy = (describedElement, describeElement) => {\n const describeId = Optional.from(get$f(describedElement, 'id')).fold(() => {\n const id = generate$6('dialog-describe');\n set$9(describeElement, 'id', id);\n return id;\n }, identity);\n set$9(describedElement, 'aria-describedby', describeId);\n };\n\n const labelledBy = (labelledElement, labelElement) => {\n const labelId = getOpt(labelledElement, 'id').fold(() => {\n const id = generate$6('dialog-label');\n set$9(labelElement, 'id', id);\n return id;\n }, identity);\n set$9(labelledElement, 'aria-labelledby', labelId);\n };\n\n const schema$2 = constant$1([\n required$1('lazySink'),\n option$3('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted('useTabstopAt', always),\n defaulted('eventOrder', {}),\n field('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n const basic = { sketch: identity };\n const parts$2 = constant$1([\n optional({\n name: 'draghandle',\n overrides: (detail, spec) => {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: 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 }),\n required({\n schema: [required$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }),\n external({\n factory: {\n sketch: (spec, detail) => ({\n ...spec,\n dom: detail.dom,\n components: detail.components\n })\n },\n schema: [\n defaulted('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n const factory$4 = (detail, components, spec, externals) => {\n const dialogComp = value$2();\n const showDialog = dialog => {\n dialogComp.set(dialog);\n const sink = detail.lazySink(dialog).getOrDie();\n const externalBlocker = externals.blocker();\n const blocker = sink.getSystem().build({\n ...externalBlocker,\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [runOnSource(focusin(), () => {\n Keying.focusIn(dialog);\n })])\n ])\n });\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n const hideDialog = dialog => {\n dialogComp.clear();\n parent(dialog.element).each(blockerDom => {\n dialog.getSystem().getByDom(blockerDom).each(blocker => {\n detach(blocker);\n });\n });\n };\n const getDialogBody = dialog => getPartOrDie(dialog, detail, 'body');\n const getDialogFooter = dialog => getPartOrDie(dialog, detail, 'footer');\n const setBusy = (dialog, getBusySpec) => {\n Blocking.block(dialog, getBusySpec);\n };\n const setIdle = dialog => {\n Blocking.unblock(dialog);\n };\n const modalEventsId = generate$6('modal-events');\n const eventOrder = {\n ...detail.eventOrder,\n [attachedToDom()]: [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || [])\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle,\n setBusy\n },\n eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }),\n Blocking.config({ getRoot: dialogComp.get }),\n config(modalEventsId, [runOnAttached(c => {\n labelledBy(c.element, getPartOrDie(c, detail, 'title').element);\n describedBy(c.element, getPartOrDie(c, detail, 'body').element);\n })])\n ])\n };\n };\n const ModalDialog = composite({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\n apis: {\n show: (apis, dialog) => {\n apis.show(dialog);\n },\n hide: (apis, dialog) => {\n apis.hide(dialog);\n },\n getBody: (apis, dialog) => apis.getBody(dialog),\n getFooter: (apis, dialog) => apis.getFooter(dialog),\n setBusy: (apis, dialog, getBusySpec) => {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: (apis, dialog) => {\n apis.setIdle(dialog);\n }\n }\n });\n\n const dialogToggleMenuItemSchema = objOf([\n type,\n name$1\n ].concat(commonMenuItemFields));\n const dialogToggleMenuItemDataProcessor = boolean;\n\n const baseFooterButtonFields = [\n generatedName('button'),\n optionalIcon,\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n primary,\n enabled,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary'\n ])\n ];\n const dialogFooterButtonFields = [\n ...baseFooterButtonFields,\n text\n ];\n const normalFooterButtonFields = [\n requiredStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ]),\n ...dialogFooterButtonFields\n ];\n const menuFooterButtonFields = [\n requiredStringEnum('type', ['menu']),\n optionalText,\n optionalTooltip,\n optionalIcon,\n requiredArrayOf('items', dialogToggleMenuItemSchema),\n ...baseFooterButtonFields\n ];\n const dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields\n });\n\n const alertBannerFields = [\n type,\n text,\n requiredStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n icon,\n defaulted('url', '')\n ];\n const alertBannerSchema = objOf(alertBannerFields);\n\n const createBarFields = itemsField => [\n type,\n itemsField\n ];\n\n const buttonFields = [\n type,\n text,\n enabled,\n generatedName('button'),\n optionalIcon,\n borderless,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary',\n 'toolbar'\n ]),\n primary\n ];\n const buttonSchema = objOf(buttonFields);\n\n const formComponentFields = [\n type,\n name$1\n ];\n const formComponentWithLabelFields = formComponentFields.concat([optionalLabel]);\n\n const checkboxFields = formComponentFields.concat([\n label,\n enabled\n ]);\n const checkboxSchema = objOf(checkboxFields);\n const checkboxDataProcessor = boolean;\n\n const collectionFields = formComponentWithLabelFields.concat([defaultedColumns('auto')]);\n const collectionSchema = objOf(collectionFields);\n const collectionDataProcessor = arrOfObj([\n value$1,\n text,\n icon\n ]);\n\n const colorInputFields = formComponentWithLabelFields;\n const colorInputSchema = objOf(colorInputFields);\n const colorInputDataProcessor = string;\n\n const colorPickerFields = formComponentWithLabelFields;\n const colorPickerSchema = objOf(colorPickerFields);\n const colorPickerDataProcessor = string;\n\n const customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredString('scriptId'),\n requiredString('scriptUrl'),\n defaultedPostMsg('settings', undefined)\n ]);\n const customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredFunction('init')\n ]);\n const customEditorSchema = valueOf(v => asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(() => asRaw('customeditor.new', objOfOnly(customEditorFields), v)));\n const customEditorDataProcessor = string;\n\n const dropZoneFields = formComponentWithLabelFields;\n const dropZoneSchema = objOf(dropZoneFields);\n const dropZoneDataProcessor = arrOfVal();\n\n const createGridFields = itemsField => [\n type,\n requiredNumber('columns'),\n itemsField\n ];\n\n const htmlPanelFields = [\n type,\n requiredString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ])\n ];\n const htmlPanelSchema = objOf(htmlPanelFields);\n\n const iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n const iframeSchema = objOf(iframeFields);\n const iframeDataProcessor = string;\n\n const imagePreviewSchema = objOf(formComponentFields.concat([optionString('height')]));\n const imagePreviewDataProcessor = objOf([\n requiredString('url'),\n optionNumber('zoom'),\n optionNumber('cachedWidth'),\n optionNumber('cachedHeight')\n ]);\n\n const inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled\n ]);\n const inputSchema = objOf(inputFields);\n const inputDataProcessor = string;\n\n const createLabelFields = itemsField => [\n type,\n label,\n itemsField\n ];\n\n const listBoxSingleItemFields = [\n text,\n value$1\n ];\n const listBoxNestedItemFields = [\n text,\n requiredArrayOf('items', thunkOf('items', () => listBoxItemSchema))\n ];\n const listBoxItemSchema = oneOf([\n objOf(listBoxSingleItemFields),\n objOf(listBoxNestedItemFields)\n ]);\n const listBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOf('items', listBoxItemSchema),\n enabled\n ]);\n const listBoxSchema = objOf(listBoxFields);\n const listBoxDataProcessor = string;\n\n const selectBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOfObj('items', [\n text,\n value$1\n ]),\n defaultedNumber('size', 1),\n enabled\n ]);\n const selectBoxSchema = objOf(selectBoxFields);\n const selectBoxDataProcessor = string;\n\n const sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n enabled\n ]);\n const sizeInputSchema = objOf(sizeInputFields);\n const sizeInputDataProcessor = objOf([\n requiredString('width'),\n requiredString('height')\n ]);\n\n const sliderFields = formComponentFields.concat([\n label,\n defaultedNumber('min', 0),\n defaultedNumber('max', 0)\n ]);\n const sliderSchema = objOf(sliderFields);\n const sliderInputDataProcessor = number;\n\n const tableFields = [\n type,\n requiredArrayOf('header', string),\n requiredArrayOf('cells', arrOf(string))\n ];\n const tableSchema = objOf(tableFields);\n\n const textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled\n ]);\n const textAreaSchema = objOf(textAreaFields);\n const textAreaDataProcessor = string;\n\n const urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n enabled\n ]);\n const urlInputSchema = objOf(urlInputFields);\n const urlInputDataProcessor = objOf([\n value$1,\n defaultedMeta\n ]);\n\n const createItemsField = name => field$1('items', 'items', required$2(), arrOf(valueOf(v => asRaw(`Checking item of ${ name }`, itemSchema, v).fold(sErr => Result.error(formatError(sErr)), passValue => Result.value(passValue)))));\n const itemSchema = valueThunk(() => 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 slider: sliderSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagepreview: imagePreviewSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n panel: panelSchema\n }));\n const panelFields = [\n type,\n defaulted('classes', []),\n requiredArrayOf('items', itemSchema)\n ];\n const panelSchema = objOf(panelFields);\n\n const tabFields = [\n generatedName('tab'),\n title,\n requiredArrayOf('items', itemSchema)\n ];\n const tabPanelFields = [\n type,\n requiredArrayOfObj('tabs', tabFields)\n ];\n const tabPanelSchema = objOf(tabPanelFields);\n\n const dialogButtonFields = dialogFooterButtonFields;\n const dialogButtonSchema = dialogFooterButtonSchema;\n const dialogSchema = objOf([\n requiredString('title'),\n requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n requiredArrayOf('buttons', dialogButtonSchema),\n defaulted('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onTabChange', noop)\n ]);\n const createDialog = spec => asRaw('dialog', dialogSchema, spec);\n\n const urlDialogButtonSchema = objOf([\n requiredStringEnum('type', [\n 'cancel',\n 'custom'\n ]),\n ...dialogButtonFields\n ]);\n const urlDialogSchema = objOf([\n requiredString('title'),\n requiredString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n const createUrlDialog = spec => asRaw('dialog', urlDialogSchema, spec);\n\n const getAllObjects = 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\n const isNamedItem = obj => isString(obj.type) && isString(obj.name);\n const dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n imagepreview: imagePreviewDataProcessor,\n selectbox: selectBoxDataProcessor,\n sizeinput: sizeInputDataProcessor,\n slider: sliderInputDataProcessor,\n listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n const getDataProcessor = item => Optional.from(dataProcessors[item.type]);\n const getNamedItems = structure => filter$2(getAllObjects(structure), isNamedItem);\n\n const createDataValidator = structure => {\n const namedItems = getNamedItems(structure);\n const fields = bind$3(namedItems, item => getDataProcessor(item).fold(() => [], schema => [requiredOf(item.name, schema)]));\n return objOf(fields);\n };\n\n const extract = structure => {\n const internalDialog = getOrDie(createDialog(structure));\n const dataValidator = createDataValidator(structure);\n const initialData = structure.initialData;\n return {\n internalDialog,\n dataValidator,\n initialData\n };\n };\n const DialogManager = {\n open: (factory, structure) => {\n const extraction = extract(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: (factory, structure) => {\n const internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: structure => extract(structure)\n };\n\n const toValidValues = values => {\n const errors = [];\n const result = {};\n each(values, (value, name) => {\n value.fold(() => {\n errors.push(name);\n }, v => {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n const renderBodyPanel = (spec, dialogData, backstage) => {\n const memForm = record(Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map$2(spec.items, item => interpretInForm(parts, item, dialogData, backstage))\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([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n RepresentingConfigs.memento(memForm, {\n postprocess: formValue => toValidValues(formValue).fold(err => {\n console.error(err);\n return {};\n }, identity)\n })\n ])\n };\n };\n\n const factory$3 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$a(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n });\n const TabButton = single({\n name: 'TabButton',\n configFields: [\n defaulted('uid', undefined),\n required$1('value'),\n field$1('dom', 'dom', mergeWithThunk(() => ({\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n })), anyValue()),\n option$3('action'),\n defaulted('domModification', {}),\n field('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n required$1('view')\n ],\n factory: factory$3\n });\n\n const schema$1 = constant$1([\n required$1('tabs'),\n required$1('dom'),\n defaulted('clickToDismiss', false),\n field('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers$1([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n const tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: barDetail => {\n const dismissTab$1 = (tabbar, button) => {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar,\n button\n });\n };\n const changeTab$1 = (tabbar, button) => {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar,\n button\n });\n };\n return {\n action: button => {\n const tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n const activeButton = Highlighting.isHighlighted(tabbar, button);\n const response = (() => {\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: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n const parts$1 = constant$1([tabsPart]);\n\n const factory$2 = (detail, components, _spec, _externals) => ({\n 'uid': detail.uid,\n 'dom': detail.dom,\n components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: tabbar => {\n return Highlighting.getHighlighted(tabbar).map(tab => tab.element);\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })\n ])\n });\n const Tabbar = composite({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n\n const factory$1 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n });\n const Tabview = single({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n\n const schema = constant$1([\n defaulted('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted('tabs', []),\n field('tabSectionBehaviours', [])\n ]);\n const barPart = required({\n factory: Tabbar,\n schema: [\n required$1('dom'),\n requiredObjOf('markers', [\n required$1('tabClass'),\n required$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: detail => {\n return { tabs: detail.tabs };\n }\n });\n const viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n const parts = constant$1([\n barPart,\n viewPart\n ]);\n\n const factory = (detail, components, _spec, _externals) => {\n const changeTab$1 = button => {\n const tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(tabview => {\n const tabWithValue = find$5(detail.tabs, t => t.value === tabValue);\n tabWithValue.each(tabData => {\n const panel = tabData.view();\n getOpt(button.element, 'id').each(id => {\n set$9(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n const changeTabBy = (section, byPred) => {\n getPart(section, detail, 'tabbar').each(tabbar => {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$3(detail.tabSectionBehaviours),\n events: derive$2(flatten([\n detail.selectFirst ? [runOnAttached((section, _simulatedEvent) => {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run$1(changeTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n changeTab$1(button);\n }),\n run$1(dismissTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: section => {\n return getPart(section, detail, 'tabview').map(tabview => Replacing.contents(tabview)).getOr([]);\n },\n showTab: (section, tabKey) => {\n const getTabIfNotActive = tabbar => {\n const candidates = Highlighting.getCandidates(tabbar);\n const optTab = find$5(candidates, c => Representing.getValue(c) === tabKey);\n return optTab.filter(tab => !Highlighting.isHighlighted(tabbar, tab));\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n const TabSection = composite({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory,\n apis: {\n getViewItems: (apis, component) => apis.getViewItems(component),\n showTab: (apis, component, tabKey) => {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n const measureHeights = (allTabs, tabview, tabviewComp) => map$2(allTabs, (_tab, i) => {\n Replacing.set(tabviewComp, allTabs[i].view());\n const rect = tabview.dom.getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n const getMaxHeight = heights => head(sort(heights, (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 const getMaxTabviewHeight = (dialog, tabview, tablist) => {\n const documentElement$1 = documentElement(dialog).dom;\n const rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n const isFixed = get$e(rootElm, 'position') === 'fixed';\n let 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 const tabviewHeight = get$d(tabview);\n const isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$c(tablist);\n const currentTabHeight = isTabListBeside ? Math.max(get$d(tablist), tabviewHeight) : tabviewHeight;\n const dialogTopMargin = parseInt(get$e(dialog, 'margin-top'), 10) || 0;\n const dialogBottomMargin = parseInt(get$e(dialog, 'margin-bottom'), 10) || 0;\n const dialogHeight = get$d(dialog) + dialogTopMargin + dialogBottomMargin;\n const chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n const showTab = (allTabs, comp) => {\n head(allTabs).each(tab => TabSection.showTab(comp, tab.value));\n };\n const setTabviewHeight = (tabview, height) => {\n set$8(tabview, 'height', height + 'px');\n set$8(tabview, 'flex-basis', height + 'px');\n };\n const updateTabviewHeight = (dialogBody, tabview, maxTabHeight) => {\n ancestor(dialogBody, '[role=\"dialog\"]').each(dialog => {\n descendant(dialog, '[role=\"tablist\"]').each(tablist => {\n maxTabHeight.get().map(height => {\n set$8(tabview, 'height', '0');\n set$8(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(height => {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n const getTabview = dialog => descendant(dialog, '[role=\"tabpanel\"]');\n const setMode = allTabs => {\n const smartTabHeight = (() => {\n const maxTabHeight = value$2();\n const extraEvents = [\n runOnAttached(comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n set$8(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(tabviewComp => {\n const heights = measureHeights(allTabs, tabview, tabviewComp);\n const 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 requestAnimationFrame(() => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run$1(windowResize(), comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run$1(formResizeEvent, (comp, _se) => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n const oldFocus = active$1(getRootNode(tabview));\n set$8(tabview, 'visibility', 'hidden');\n const oldHeight = getRaw(tabview, 'height').map(h => parseInt(h, 10));\n remove$6(tabview, 'height');\n remove$6(tabview, 'flex-basis');\n const newHeight = tabview.dom.getBoundingClientRect().height;\n const hasGrown = oldHeight.forall(h => newHeight > h);\n if (hasGrown) {\n maxTabHeight.set(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(h => {\n setTabviewHeight(tabview, h);\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$3);\n });\n })\n ];\n const selectFirst = false;\n return {\n extraEvents,\n selectFirst\n };\n })();\n const naiveTabHeight = (() => {\n const extraEvents = [];\n const selectFirst = true;\n return {\n extraEvents,\n selectFirst\n };\n })();\n return {\n smartTabHeight,\n naiveTabHeight\n };\n };\n\n const SendDataToSectionChannel = 'send-data-to-section';\n const SendDataToViewChannel = 'send-data-to-view';\n const renderTabPanel = (spec, dialogData, backstage) => {\n const storedValue = Cell({});\n const updateDataWithForm = form => {\n const formData = Representing.getValue(form);\n const validData = toValidValues(formData).getOr({});\n const currentData = storedValue.get();\n const newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n const setDataOnForm = form => {\n const tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n const oldTab = Cell(null);\n const allTabs = map$2(spec.tabs, tab => {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item']\n },\n components: [text$1(backstage.shared.providers.translate(tab.title))],\n view: () => {\n return [Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map$2(tab.items, item => interpretInForm(parts, item, dialogData, backstage)),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\n ])\n })\n ])\n }))];\n }\n };\n });\n const tabMode = setMode(allTabs).smartTabHeight;\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: (section, button, _viewItems) => {\n const name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [\n 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 }),\n TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({ find: comp => head(TabSection.getViewItems(comp)) }),\n RepresentingConfigs.withComp(Optional.none(), tsection => {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n }, (tsection, value) => {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n })\n ])\n });\n };\n\n const dialogChannel = generate$6('update-dialog');\n const titleChannel = generate$6('update-title');\n const bodyChannel = generate$6('update-body');\n const footerChannel = generate$6('update-footer');\n const bodySendMessageChannel = generate$6('body-send-message');\n\n const renderBody = (spec, dialogId, contentId, backstage, ariaAttrs) => {\n const renderComponents = incoming => {\n const body = incoming.body;\n switch (body.type) {\n case 'tabpanel': {\n return [renderTabPanel(body, incoming.initialData, backstage)];\n }\n default: {\n return [renderBodyPanel(body, incoming.initialData, backstage)];\n }\n }\n };\n const updateState = (_comp, incoming) => Optional.some({ isTabPanel: () => incoming.body.type === 'tabpanel' });\n const ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: {\n ...contentId.map(x => ({ id: x })).getOr({}),\n ...ariaAttrs ? ariaAttributes : {}\n }\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: `${ bodyChannel }-${ dialogId }`,\n updateState,\n renderComponents,\n initialData: spec\n })\n ])\n };\n };\n const renderInlineBody = (spec, dialogId, contentId, backstage, ariaAttrs) => renderBody(spec, dialogId, Optional.some(contentId), backstage, ariaAttrs);\n const renderModalBody = (spec, dialogId, backstage) => {\n const bodySpec = renderBody(spec, dialogId, Optional.none(), backstage, false);\n return ModalDialog.parts.body(bodySpec);\n };\n const renderIframeBody = spec => {\n const 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: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\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\n const isTouch = global$5.deviceType.isTouch();\n const hiddenHeader = (title, close) => ({\n dom: {\n tag: 'div',\n styles: { display: 'none' },\n classes: ['tox-dialog__header']\n },\n components: [\n title,\n close\n ]\n });\n const pClose = (onClose, providersBackstage) => ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n const pUntitled = () => ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n const pBodyMessage = (message, providersBackstage) => 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: [{ dom: fromHtml(`<p>${ providersBackstage.translate(message) }</p>`) }]\n }]\n });\n const pFooter = buttons => ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n const pFooterGroup = (startButtons, endButtons) => [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n const renderDialog$1 = spec => {\n const dialogClass = 'tox-dialog';\n const blockerClass = dialogClass + '-wrap';\n const blockerBackdropClass = blockerClass + '__backdrop';\n const scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: comp => {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem),\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: {\n position: 'relative',\n ...spec.extraStyles\n }\n },\n components: [\n spec.header,\n spec.body,\n ...spec.footer.toArray()\n ],\n parts: {\n blocker: {\n dom: fromHtml(`<div class=\"${ blockerClass }\"></div>`),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [\n blockerBackdropClass,\n blockerBackdropClass + '--opaque'\n ] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1([\n Focusing.config({}),\n config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), (comp, _se) => {\n Keying.focusIn(comp);\n })])),\n config('scroll-lock', [\n runOnAttached(() => {\n add$2(body(), scrollLockClass);\n }),\n runOnDetached(() => {\n remove$2(body(), scrollLockClass);\n })\n ]),\n ...spec.extraBehaviours\n ]),\n eventOrder: {\n [execute$5()]: ['dialog-events'],\n [attachedToDom()]: [\n 'scroll-lock',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'scroll-lock'\n ],\n ...spec.eventOrder\n }\n });\n };\n\n const renderClose = providersBackstage => Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\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: comp => {\n emit(comp, formCancelEvent);\n }\n });\n const renderTitle = (spec, dialogId, titleId, providersBackstage) => {\n const renderComponents = data => [text$1(providersBackstage.translate(data.title))];\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: { ...titleId.map(x => ({ id: x })).getOr({}) }\n },\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ titleChannel }-${ dialogId }`,\n initialData: spec,\n renderComponents\n })])\n };\n };\n const renderDragHandle = () => ({ dom: fromHtml('<div class=\"tox-dialog__draghandle\"></div>') });\n const renderInlineHeader = (spec, dialogId, titleId, providersBackstage) => Container.sketch({\n dom: fromHtml('<div class=\"tox-dialog__header\"></div>'),\n components: [\n renderTitle(spec, dialogId, Optional.some(titleId), providersBackstage),\n renderDragHandle(),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: handle => {\n return closest$1(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: () => [],\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n const renderModalHeader = (spec, dialogId, providersBackstage) => {\n const pTitle = ModalDialog.parts.title(renderTitle(spec, dialogId, Optional.none(), providersBackstage));\n const pHandle = ModalDialog.parts.draghandle(renderDragHandle());\n const pClose = ModalDialog.parts.close(renderClose(providersBackstage));\n const components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml('<div class=\"tox-dialog__header\"></div>'),\n components\n });\n };\n\n const getHeader = (title, dialogId, backstage) => renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, dialogId, backstage.shared.providers);\n const getBusySpec = (message, bs, providers) => ({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': providers.translate(message) },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml('<div class=\"tox-spinner\"><div></div><div></div><div></div></div>') }]\n });\n const getEventExtras = (lazyDialog, providers, extra) => ({\n onClose: () => extra.closeWindow(),\n onBlock: blockEvent => {\n ModalDialog.setBusy(lazyDialog(), (_comp, bs) => getBusySpec(blockEvent.message, bs, providers));\n },\n onUnblock: () => {\n ModalDialog.setIdle(lazyDialog());\n }\n });\n const renderModalDialog = (spec, initialData, dialogEvents, backstage) => {\n const updateState = (_comp, incoming) => Optional.some(incoming);\n return build$1(renderDialog$1({\n ...spec,\n lazySink: backstage.shared.getSink,\n extraBehaviours: [\n Reflecting.config({\n channel: `${ dialogChannel }-${ spec.id }`,\n updateState,\n initialData\n }),\n RepresentingConfigs.memory({}),\n ...spec.extraBehaviours\n ],\n onEscape: comp => {\n emit(comp, formCancelEvent);\n },\n dialogEvents,\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [attachedToDom()]: [\n 'scroll-lock',\n Reflecting.name(),\n 'messages',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'messages',\n Reflecting.name(),\n 'scroll-lock'\n ]\n }\n }));\n };\n const mapMenuButtons = buttons => {\n const mapItems = button => {\n const items = map$2(button.items, item => {\n const cell = Cell(false);\n return {\n ...item,\n storage: cell\n };\n });\n return {\n ...button,\n items\n };\n };\n return map$2(buttons, button => {\n if (button.type === 'menu') {\n return mapItems(button);\n }\n return button;\n });\n };\n const extractCellsToObject = buttons => foldl(buttons, (acc, button) => {\n if (button.type === 'menu') {\n const menuButton = button;\n return foldl(menuButton.items, (innerAcc, item) => {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n return acc;\n }, {});\n\n const initCommonEvents = (fireApiEvent, extras) => [\n runWithTarget(focusin(), onFocus),\n fireApiEvent(formCloseEvent, (_api, spec) => {\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, (api, spec, _event, self) => {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run$1(formUnblockEvent, (_c, _se) => extras.onUnblock()),\n run$1(formBlockEvent, (_c, se) => extras.onBlock(se.event))\n ];\n const initUrlDialog = (getInstanceApi, extras) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialog => {\n f(currentDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formActionEvent, (api, spec, event) => {\n spec.onAction(api, { name: event.name });\n })\n ];\n };\n const initDialog = (getInstanceApi, extras, getSink) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialogInit => {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formSubmitEvent, (api, spec) => spec.onSubmit(api)),\n fireApiEvent(formChangeEvent, (api, spec, event) => {\n spec.onChange(api, { name: event.name });\n }),\n fireApiEvent(formActionEvent, (api, spec, event, component) => {\n const focusIn = () => Keying.focusIn(component);\n const isDisabled = focused => has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(val => val === 'true');\n const rootNode = getRootNode(component.element);\n const current = active$1(rootNode);\n spec.onAction(api, {\n name: event.name,\n value: event.value\n });\n active$1(rootNode).fold(focusIn, focused => {\n if (isDisabled(focused)) {\n focusIn();\n } else if (current.exists(cur => contains(focused, cur) && isDisabled(cur))) {\n focusIn();\n } else {\n getSink().toOptional().filter(sink => !contains(sink.element, focused)).each(focusIn);\n }\n });\n }),\n fireApiEvent(formTabChangeEvent, (api, spec, event) => {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }),\n runOnDetached(component => {\n const api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ];\n };\n const SilverDialogEvents = {\n initUrlDialog,\n initDialog\n };\n\n const makeButton = (button, backstage) => renderFooterButton(button, button.type, backstage);\n const lookup = (compInSystem, footerButtons, buttonName) => find$5(footerButtons, button => button.name === buttonName).bind(memButton => memButton.memento.getOpt(compInSystem));\n const renderComponents = (_data, state) => {\n const footerButtons = state.map(s => s.footerButtons).getOr([]);\n const buttonGroups = partition$3(footerButtons, button => button.align === 'start');\n const makeGroup = (edge, buttons) => Container.sketch({\n dom: {\n tag: 'div',\n classes: [`tox-dialog__footer-${ edge }`]\n },\n components: map$2(buttons, button => button.memento.asSpec())\n });\n const startButtons = makeGroup('start', buttonGroups.pass);\n const endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n const renderFooter = (initSpec, dialogId, backstage) => {\n const updateState = (comp, data) => {\n const footerButtons = map$2(data.buttons, button => {\n const memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n const lookupByName = buttonName => lookup(comp, footerButtons, buttonName);\n return Optional.some({\n lookupByName,\n footerButtons\n });\n };\n return {\n dom: fromHtml('<div class=\"tox-dialog__footer\"></div>'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ footerChannel }-${ dialogId }`,\n initialData: initSpec,\n updateState,\n renderComponents\n })])\n };\n };\n const renderInlineFooter = (initSpec, dialogId, backstage) => renderFooter(initSpec, dialogId, backstage);\n const renderModalFooter = (initSpec, dialogId, backstage) => ModalDialog.parts.footer(renderFooter(initSpec, dialogId, backstage));\n\n const getCompByName = (access, name) => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n const form = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form, name).orThunk(() => {\n const footer = access.getFooter();\n const footerState = Reflecting.getState(footer).get();\n return footerState.bind(f => f.lookupByName(name));\n });\n } else {\n return Optional.none();\n }\n };\n const validateData$1 = (access, data) => {\n const root = access.getRoot();\n return Reflecting.getState(root).get().map(dialogState => getOrDie(asRaw('data', dialogState.dataValidator, data))).getOr(data);\n };\n const getDialogApi = (access, doRedial, menuItemStates) => {\n const withRoot = f => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const getData = () => {\n const root = access.getRoot();\n const valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n const representedValues = Representing.getValue(valueComp);\n const menuItemCurrentState = map$1(menuItemStates, cell => cell.get());\n return {\n ...representedValues,\n ...menuItemCurrentState\n };\n };\n const setData = newData => {\n withRoot(_ => {\n const prevData = instanceApi.getData();\n const mergedData = deepMerge(prevData, newData);\n const newInternalData = validateData$1(access, mergedData);\n const form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each(menuItemStates, (v, k) => {\n if (has$2(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n const setEnabled = (name, state) => {\n getCompByName(access, name).each(state ? Disabling.enable : Disabling.disable);\n };\n const focus = name => {\n getCompByName(access, name).each(Focusing.focus);\n };\n const block = 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(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const showTab = name => {\n withRoot(_ => {\n const body = access.getBody();\n const bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(b => b.isTabPanel())) {\n Composing.getCurrent(body).each(tabSection => {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n const redial = d => {\n withRoot(root => {\n const id = access.getId();\n const dialogInit = doRedial(d);\n root.getSystem().broadcastOn([`${ dialogChannel }-${ id }`], dialogInit);\n root.getSystem().broadcastOn([`${ titleChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ bodyChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ footerChannel }-${ id }`], dialogInit.internalDialog);\n instanceApi.setData(dialogInit.initialData);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const instanceApi = {\n getData,\n setData,\n setEnabled,\n focus,\n block,\n unblock,\n showTab,\n redial,\n close\n };\n return instanceApi;\n };\n\n const getDialogSizeClasses = 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 const renderDialog = (dialogInit, extra, backstage) => {\n const dialogId = generate$6('dialog');\n const internalDialog = dialogInit.internalDialog;\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const body = renderModalBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, backstage);\n const storagedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storagedMenuButtons);\n const footer = renderModalFooter({ buttons: storagedMenuButtons }, dialogId, backstage);\n const dialogEvents = SilverDialogEvents.initDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra), backstage.shared.getSink);\n const dialogSize = getDialogSizeClasses(internalDialog.size);\n const spec = {\n id: dialogId,\n header,\n body,\n footer: Optional.some(footer),\n extraClasses: dialogSize,\n extraBehaviours: [],\n extraStyles: {}\n };\n const dialog = renderModalDialog(spec, dialogInit, dialogEvents, backstage);\n const modalAccess = (() => {\n const getForm = () => {\n const outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n return {\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getBody: () => ModalDialog.getBody(dialog),\n getFooter: () => ModalDialog.getFooter(dialog),\n getFormWrapper: getForm\n };\n })();\n const instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n const renderInlineDialog = (dialogInit, extra, backstage, ariaAttrs) => {\n const dialogId = generate$6('dialog');\n const dialogLabelId = generate$6('dialog-label');\n const dialogContentId = generate$6('dialog-content');\n const internalDialog = dialogInit.internalDialog;\n const updateState = (_comp, incoming) => Optional.some(incoming);\n const memHeader = record(renderInlineHeader({\n title: internalDialog.title,\n draggable: true\n }, dialogId, dialogLabelId, backstage.shared.providers));\n const memBody = record(renderInlineBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, dialogContentId, backstage, ariaAttrs));\n const storagedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storagedMenuButtons);\n const memFooter = record(renderInlineFooter({ buttons: storagedMenuButtons }, dialogId, backstage));\n const dialogEvents = SilverDialogEvents.initDialog(() => instanceApi, {\n onBlock: event => {\n Blocking.block(dialog, (_comp, bs) => getBusySpec(event.message, bs, backstage.shared.providers));\n },\n onUnblock: () => {\n Blocking.unblock(dialog);\n },\n onClose: () => extra.closeWindow()\n }, backstage.shared.getSink);\n const dialog = build$1({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog',\n 'tox-dialog-inline'\n ],\n attributes: {\n role: 'dialog',\n ['aria-labelledby']: dialogLabelId,\n ['aria-describedby']: dialogContentId\n }\n },\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [execute$5()]: ['execute-on-form'],\n [attachedToDom()]: [\n 'reflecting',\n 'execute-on-form'\n ]\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: c => {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem) && (name$3(elem) !== 'button' || get$f(elem, 'disabled') !== 'disabled')\n }),\n Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: dialogInit\n }),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), (comp, _se) => {\n Keying.focusIn(comp);\n })])),\n Blocking.config({ getRoot: () => Optional.some(dialog) }),\n Replacing.config({}),\n RepresentingConfigs.memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n memFooter.asSpec()\n ]\n });\n const instanceApi = getDialogApi({\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getFooter: () => memFooter.get(dialog),\n getBody: () => memBody.get(dialog),\n getFormWrapper: () => {\n const body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n }\n }, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const getUrlDialogApi = root => {\n const withRoot = f => {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const block = 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(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const sendMessage = data => {\n withRoot(root => {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block,\n unblock,\n close,\n sendMessage\n };\n };\n\n const SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n const isSupportedMessage = data => isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n const isCustomMessage = data => !isSupportedMessage(data) && isObject(data) && has$2(data, 'mceAction');\n const handleMessage = (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 const 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 const renderUrlDialog = (internalDialog, extra, editor, backstage) => {\n const dialogId = generate$6('dialog');\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const body = renderIframeBody(internalDialog);\n const footer = internalDialog.buttons.bind(buttons => {\n if (buttons.length === 0) {\n return Optional.none();\n } else {\n return Optional.some(renderModalFooter({ buttons }, dialogId, backstage));\n }\n });\n const dialogEvents = SilverDialogEvents.initUrlDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra));\n const styles = {\n ...internalDialog.height.fold(() => ({}), height => ({\n 'height': height + 'px',\n 'max-height': height + 'px'\n })),\n ...internalDialog.width.fold(() => ({}), width => ({\n 'width': width + 'px',\n 'max-width': width + 'px'\n }))\n };\n const classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n const iframeUri = new global(internalDialog.url, { base_uri: new global(window.location.href) });\n const iframeDomain = `${ iframeUri.protocol }://${ iframeUri.host }${ iframeUri.port ? ':' + iframeUri.port : '' }`;\n const messageHandlerUnbinder = unbindable();\n const extraBehaviours = [\n config('messages', [\n runOnAttached(() => {\n const unbind = bind(SugarElement.fromDom(window), 'message', e => {\n if (iframeUri.isSameOrigin(new global(e.raw.origin))) {\n const 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 }),\n runOnDetached(messageHandlerUnbinder.clear)\n ]),\n Receiving.config({\n channels: {\n [bodySendMessageChannel]: {\n onReceive: (comp, data) => {\n descendant(comp.element, 'iframe').each(iframeEle => {\n const iframeWin = iframeEle.dom.contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }\n }\n })\n ];\n const spec = {\n id: dialogId,\n header,\n body,\n footer,\n extraClasses: classes,\n extraBehaviours,\n extraStyles: styles\n };\n const dialog = renderModalDialog(spec, internalDialog, dialogEvents, backstage);\n const instanceApi = getUrlDialogApi(dialog);\n return {\n dialog,\n instanceApi\n };\n };\n\n const setup$2 = extras => {\n const sharedBackstage = extras.backstage.shared;\n const open = (message, callback) => {\n const closeDialog = () => {\n ModalDialog.hide(alertDialog);\n callback();\n };\n const memFooterClose = record(renderFooterButton({\n name: 'close-alert',\n text: 'OK',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', extras.backstage));\n const titleSpec = pUntitled();\n const closeSpec = pClose(closeDialog, sharedBackstage.providers);\n const alertDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\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 const footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open };\n };\n\n const setup$1 = extras => {\n const sharedBackstage = extras.backstage.shared;\n const open = (message, callback) => {\n const closeDialog = state => {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n const memFooterYes = record(renderFooterButton({\n name: 'yes',\n text: 'Yes',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'submit', extras.backstage));\n const footerNo = renderFooterButton({\n name: 'no',\n text: 'No',\n primary: false,\n buttonType: Optional.some('secondary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', extras.backstage);\n const titleSpec = pUntitled();\n const closeSpec = pClose(() => closeDialog(false), sharedBackstage.providers);\n const confirmDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))),\n onEscape: () => closeDialog(false),\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [\n run$1(formCancelEvent, () => closeDialog(false)),\n run$1(formSubmitEvent, () => closeDialog(true))\n ],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n const footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open };\n };\n\n const validateData = (data, validator) => getOrDie(asRaw('data', validator, data));\n const isAlertOrConfirmDialog = target => closest(target, '.tox-alert-dialog') || closest(target, '.tox-confirm-dialog');\n const inlineAdditionalBehaviours = (editor, isStickyToolbar, isToolbarLocationTop) => {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),\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 const setup = extras => {\n const backstage = extras.backstage;\n const editor = extras.editor;\n const isStickyToolbar$1 = isStickyToolbar(editor);\n const alertDialog = setup$2(extras);\n const confirmDialog = setup$1(extras);\n const open = (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 const openUrl = (config, closeWindow) => openModalUrlDialog(config, closeWindow);\n const openModalUrlDialog = (config, closeWindow) => {\n const factory = contents => {\n const dialog = renderUrlDialog(contents, {\n closeWindow: () => {\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 const openModalDialog = (config, closeWindow) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = internalInitialData;\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\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 const openInlineDialog = (config$1, anchor, closeWindow, ariaAttrs) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = validateData(internalInitialData, dataValidator);\n const inlineDialog = value$2();\n const isToolbarLocationTop = backstage.shared.header.isPositionedAtTop();\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const refreshDocking = () => inlineDialog.on(dialog => {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n const dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, backstage, ariaAttrs);\n const inlineDialogComp = build$1(InlineView.sketch({\n lazySink: backstage.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: {},\n ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {\n emit(dialogUi.dialog, formCancelEvent);\n })]),\n ...inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop)\n ]),\n isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)\n }));\n inlineDialog.set(inlineDialogComp);\n InlineView.showWithin(inlineDialogComp, premade(dialogUi.dialog), { anchor }, 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 const confirm = (message, callback) => {\n confirmDialog.open(message, state => {\n callback(state);\n });\n };\n const alert = (message, callback) => {\n alertDialog.open(message, () => {\n callback();\n });\n };\n const close = instanceApi => {\n instanceApi.close();\n };\n return {\n open,\n openUrl,\n alert,\n close,\n confirm\n };\n };\n\n const registerOptions = editor => {\n register$e(editor);\n register$d(editor);\n register(editor);\n };\n var Theme = () => {\n global$a.add('silver', editor => {\n registerOptions(editor);\n const {getUiMothership, backstage, renderUI} = setup$3(editor);\n Autocompleter.register(editor, backstage.shared);\n const windowMgr = setup({\n editor,\n backstage\n });\n return {\n renderUI,\n getWindowManagerImpl: constant$1(windowMgr),\n getNotificationManagerImpl: () => NotificationManagerImpl(editor, { backstage }, getUiMothership())\n };\n });\n };\n\n Theme();\n\n})();\n","// 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');"],"names":[],"mappings":"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"}