1 line
221 KiB
Plaintext
1 line
221 KiB
Plaintext
{"version":3,"sources":["../src/constants.js","../src/options.js","../src/component.js","../src/diff/props.js","../src/create-context.js","../src/util.js","../src/create-element.js","../src/diff/children.js","../src/diff/index.js","../src/render.js","../src/clone-element.js","../control/src/announce.ts","../control/src/dictionary.ts","../control/src/util.ts","../control/src/abstract-select.tsx","../control/src/dropdown.tsx","../control/src/icons.tsx","../control/src/style.ts","../control/src/result-list.tsx","../control/src/multi-select.tsx","../control/src/single-select.tsx","../bridge/src/ajax.ts","../bridge/src/store.ts","../bridge/src/select25.tsx","../node_modules/parcel-bundler/src/builtins/bundle-url.js","../node_modules/parcel-bundler/src/builtins/css-loader.js","../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"],"names":["const","options","q","defer","CAMEL_REG","XLINK_NS","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","let","removeNode","node","parentNode","removeChild","createElement","type","children","ref","key","arguments","length","push","defaultProps","undefined","createVNode","vnode","_children","_parent","_depth","_dom","_lastDomChild","_component","constructor","createRef","Fragment","coerceToVNode","possibleVNode","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","_dirty","debounceRendering","process","p","sort","a","b","_vnode","pop","forceUpdate","diffChildren","parentDom","newParentVNode","oldParentVNode","isSvg","excessDomChildren","mounts","oldDom","childVNode","j","oldVNode","newDom","sibDom","firstChildDom","refs","newChildren","toChildArray","oldChildren","oldChildrenLength","diff","outer","appendChild","nextSibling","insertBefore","unmount","applyRef","flattened","map","keepHoles","Array","isArray","diffProps","dom","newProps","oldProps","k","keys","Object","setProperty","name","value","oldValue","set","useCapture","nameLower","style","replace","test","toLowerCase","slice","addEventListener","eventProxy","_listeners","removeEventListener","selected","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","e","this","event","newVNode","force","tmp","isNew","oldState","snapshot","clearProcessingException","provider","cctx","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","prototype","render","doRender","sub","state","_context","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","_render","_parentDom","_catchRender","getChildContext","getSnapshotBeforeUpdate","call","componentDidUpdate","diffElementNodes","diffed","catchErrorInComponent","commitRoot","root","_commit","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","data","childNodes","dangerouslySetInnerHTML","__html","innerHTML","multiple","parentVNode","current","skipRemove","r","componentWillUnmount","error","component","_catchError","getDerivedStateFromError","setState","componentDidCatch","replaceNode","_root","ownerSVGElement","hydrate","cloneElement","createContext","defaultValue","ctx","Consumer","Provider","subs","some","old","splice","update","callback","s","Promise","then","bind","resolve","setTimeout","bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","cssTimeout","reloadCSS","links","querySelectorAll","module","OVERLAY_ID","OldModule","Module","moduleName","hot","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","JSON","parse","handled","assets","forEach","asset","didAccept","hmrAcceptCheck","global","parcelRequire","id","every","generated","js","console","clear","hmrApply","v","hmrAcceptRun","window","reload","close","onclose","log","removeErrorOverlay","message","overlay","createErrorOverlay","body","getElementById","stackTrace","innerText","getParents","modules","parents","d","dep","concat","Function","deps","cached","cache","cb"],"mappings":"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","file":"select25.63904fcd.js","sourceRoot":"..","sourcesContent":["export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|^--/i;\n","/** @type {import('./internal').Options} */\nconst options = {};\n\nexport default options;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n\t// this.constructor // When component is functional component, this is reset to functional component\n\t// if (this.state==null) this.state = {};\n\t// this.state = {};\n\t// this._dirty = true;\n\t// this._renderCallbacks = []; // Only class components\n\n\t// Other properties that Component will have set later,\n\t// shown here as commented out for quick reference\n\t// this.base = null;\n\t// this._context = null;\n\t// this._vnode = null;\n\t// this._nextState = null; // Only class components\n\t// this._processingException = null; // Always read, set only when handling error\n\t// this._pendingError = null; // Always read, set only when handling error. This is used to indicate at diffTime to set _processingException\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s = (this._nextState!==this.state && this._nextState) || (this._nextState = assign({}, this.state));\n\n\t// if update() mutates state in-place, skip the copy:\n\tif (typeof update!=='function' || (update = update(s, this.props))) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update==null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-renderd\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tlet vnode = this._vnode, oldDom = this._vnode._dom, parentDom = this._parentDom;\n\tif (parentDom) {\n\t\t// Set render mode so that we can differantiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tconst force = callback!==false;\n\n\t\tlet mounts = [];\n\t\tlet newDom = diff(parentDom, vnode, assign({}, vnode), this._context, parentDom.ownerSVGElement!==undefined, null, mounts, force, oldDom == null ? getDomSibling(vnode) : oldDom);\n\t\tcommitRoot(mounts, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n\tif (callback) callback();\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null) {\n\t\t\treturn typeof sibling.type !== 'function'\n\t\t\t\t? sibling._dom\n\t\t\t\t: getDomSibling(sibling, 0);\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type === 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet q = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb) => void}\n */\nconst defer = typeof Promise=='function' ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistenly reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (!c._dirty && (c._dirty = true) && q.push(c) === 1) {\n\t\t(options.debounceRendering || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet p;\n\tq.sort((a, b) => b._vnode._depth - a._vnode._depth);\n\twhile ((p=q.pop())) {\n\t\t// forceUpdate's callback argument is reused here to indicate a non-forced update.\n\t\tif (p._dirty) p.forceUpdate(false);\n\t}\n}\n","import { IS_NON_DIMENSIONAL, EMPTY_OBJ } from '../constants';\nimport options from '../options';\nimport { assign } from '../util';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n */\nexport function diffProps(dom, newProps, oldProps, isSvg) {\n\tlet i;\n\n\tconst keys = Object.keys(newProps).sort();\n\tfor (i = 0; i < keys.length; i++) {\n\t\tconst k = keys[i];\n\t\tif (k!=='children' && k!=='key' && (!oldProps || ((k==='value' || k==='checked') ? dom : oldProps)[k]!==newProps[k])) {\n\t\t\tsetProperty(dom, k, newProps[k], oldProps[k], isSvg);\n\t\t}\n\t}\n\n\tfor (i in oldProps) {\n\t\tif (i!=='children' && i!=='key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nconst CAMEL_REG = /[A-Z]/g;\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tname = isSvg ? (name==='className' ? 'class' : name) : (name==='class' ? 'className' : name);\n\n\tif (name==='style') {\n\t\tconst set = assign(assign({}, oldValue), value);\n\t\tfor (let i in set) {\n\t\t\tif ((value || EMPTY_OBJ)[i] === (oldValue || EMPTY_OBJ)[i]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdom.style.setProperty(\n\t\t\t\t(i[0] === '-' && i[1] === '-') ? i : i.replace(CAMEL_REG, '-$&'),\n\t\t\t\t(value && (i in value))\n\t\t\t\t\t? (typeof set[i]==='number' && IS_NON_DIMENSIONAL.test(i)===false)\n\t\t\t\t\t\t? set[i] + 'px'\n\t\t\t\t\t\t: set[i]\n\t\t\t\t\t: ''\n\t\t\t);\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0]==='o' && name[1]==='n') {\n\t\tlet useCapture = name !== (name=name.replace(/Capture$/, ''));\n\t\tlet nameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t}\n\t\telse {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t}\n\telse if (name!=='list' && name!=='tagName' && !isSvg && (name in dom)) {\n\t\t// Setting `select.value` doesn't work in IE11.\n\t\t// Only `<select>` elements have the length property\n\t\tif (dom.length && name=='value') {\n\t\t\tfor (name = dom.length; name--;) {\n\t\t\t\tdom.options[name].selected = dom.options[name].value==value;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdom[name] = value==null ? '' : value;\n\t\t}\n\t}\n\telse if (typeof value!=='function' && name!=='dangerouslySetInnerHTML') {\n\t\tif (name!==(name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value==null || value===false) {\n\t\t\t\tdom.removeAttributeNS(XLINK_NS, name.toLowerCase());\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.setAttributeNS(XLINK_NS, name.toLowerCase(), value);\n\t\t\t}\n\t\t}\n\t\telse if (value==null || value===false) {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t\telse {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\n/**\n *\n * @param {any} defaultValue\n */\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\t\t\t\tthis.shouldComponentUpdate = props => {\n\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t// Check if still mounted\n\t\t\t\t\t\tif (c._parentDom) {\n\t\t\t\t\t\t\tc.context = props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tthis.sub = (c) => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\nimport { assign } from './util';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tprops = assign({}, props);\n\n\tif (arguments.length>3) {\n\t\tchildren = [children];\n\t\tfor (let i=3; i<arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children!=null) {\n\t\tprops.children = children;\n\t}\n\n\t// \"type\" may be undefined during development. The check is needed so that\n\t// we can display a nice error message with our debug helpers\n\tif (type!=null && type.defaultProps!=null) {\n\t\tfor (let i in type.defaultProps) {\n\t\t\tif (props[i]===undefined) props[i] = type.defaultProps[i];\n\t\t}\n\t}\n\tlet ref = props.ref;\n\tlet key = props.key;\n\tif (ref!=null) delete props.ref;\n\tif (key!=null) delete props.key;\n\n\treturn createVNode(type, props, key, ref);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properites of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t_lastDomChild: null,\n\t\t_component: null,\n\t\tconstructor: undefined\n\t};\n\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Coerce an untrusted value into a VNode\n * Specifically, this should be used anywhere a user could provide a boolean, string, or number where\n * a VNode or Component is desired instead\n * @param {boolean | string | number | import('./internal').VNode} possibleVNode A possible VNode\n * @returns {import('./internal').VNode | null}\n */\nexport function coerceToVNode(possibleVNode) {\n\tif (possibleVNode == null || typeof possibleVNode === 'boolean') return null;\n\tif (typeof possibleVNode === 'string' || typeof possibleVNode === 'number') {\n\t\treturn createVNode(null, possibleVNode, null, null);\n\t}\n\n\t// Clone vnode if it has already been used. ceviche/#57\n\tif (possibleVNode._dom!=null || possibleVNode._component!=null) {\n\t\tlet vnode = createVNode(possibleVNode.type, possibleVNode.props, possibleVNode.key, null);\n\t\tvnode._dom = possibleVNode._dom;\n\t\treturn vnode;\n\t}\n\n\treturn possibleVNode;\n}\n","import { diff, unmount, applyRef } from './index';\nimport { coerceToVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} context The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} mounts The list of components\n * which have mounted\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n */\nexport function diffChildren(parentDom, newParentVNode, oldParentVNode, context, isSvg, excessDomChildren, mounts, oldDom) {\n\tlet childVNode, i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\tlet newChildren = newParentVNode._children || toChildArray(newParentVNode.props.children, newParentVNode._children=[], coerceToVNode, true);\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\toldDom = null;\n\t\tif (excessDomChildren!=null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t}\n\t\telse {\n\t\t\tfor (i = 0; !oldDom && i < oldChildrenLength; i++) {\n\t\t\t\toldDom = oldChildren[i] && oldChildren[i]._dom;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i=0; i<newChildren.length; i++) {\n\t\tchildVNode = newChildren[i] = coerceToVNode(newChildren[i]);\n\n\t\tif (childVNode!=null) {\n\t\t\tchildVNode._parent = newParentVNode;\n\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t// (holes).\n\t\t\toldVNode = oldChildren[i];\n\n\t\t\tif (oldVNode===null || (oldVNode && childVNode.key == oldVNode.key && childVNode.type === oldVNode.type)) {\n\t\t\t\toldChildren[i] = undefined;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\tfor (j=0; j<oldChildrenLength; j++) {\n\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\tif (oldVNode && childVNode.key == oldVNode.key && childVNode.type === oldVNode.type) {\n\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\toldVNode = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\tnewDom = diff(parentDom, childVNode, oldVNode, context, isSvg, excessDomChildren, mounts, null, oldDom);\n\n\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t(refs || (refs=[])).push(j, childVNode._component || newDom);\n\t\t\t}\n\n\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\tif (newDom!=null) {\n\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t}\n\n\t\t\t\tif (childVNode._lastDomChild != null) {\n\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t// have a non-null _lastDomChild. Continue the diff from the end of\n\t\t\t\t\t// this Fragment's DOM tree.\n\t\t\t\t\tnewDom = childVNode._lastDomChild;\n\n\t\t\t\t\t// Eagerly cleanup _lastDomChild. We don't need to persist the value because\n\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t// diffing Components and Fragments.\n\t\t\t\t\tchildVNode._lastDomChild = null;\n\t\t\t\t}\n\t\t\t\telse if (excessDomChildren==oldVNode || newDom!=oldDom || newDom.parentNode==null) {\n\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\touter: if (oldDom==null || oldDom.parentNode!==parentDom) {\n\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\tfor (sibDom=oldDom, j=0; (sibDom=sibDom.nextSibling) && j<oldChildrenLength; j+=2) {\n\t\t\t\t\t\t\tif (sibDom==newDom) {\n\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldDom = newDom.nextSibling;\n\n\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t// At this point, if childVNode._lastDomChild existed, then\n\t\t\t\t\t// newDom = childVNode._lastDomChild per line 101. Else it is\n\t\t\t\t\t// the same as childVNode._dom, meaning this component returned\n\t\t\t\t\t// only a single DOM node\n\t\t\t\t\tnewParentVNode._lastDomChild = newDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren!=null && typeof newParentVNode.type !== 'function') for (i=excessDomChildren.length; i--; ) if (excessDomChildren[i]!=null) removeNode(excessDomChildren[i]);\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i=oldChildrenLength; i--; ) if (oldChildren[i]!=null) unmount(oldChildren[i], newParentVNode);\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], newParentVNode);\n\t\t}\n\t}\n}\n\n/**\n * Flatten a virtual nodes children to a single dimensional array\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @param {Array<import('../internal').VNode | null>} [flattened] An flat array of children to modify\n * @param {typeof import('../create-element').coerceToVNode} [map] Function that\n * will be applied on each child if the `vnode` is not `null`\n * @param {boolean} [keepHoles] wether to coerce `undefined` to `null` or not.\n * This is needed for Components without children like `<Foo />`.\n */\nexport function toChildArray(children, flattened, map, keepHoles) {\n\tif (flattened == null) flattened = [];\n\tif (children==null || typeof children === 'boolean') {\n\t\tif (keepHoles) flattened.push(null);\n\t}\n\telse if (Array.isArray(children)) {\n\t\tfor (let i=0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], flattened, map, keepHoles);\n\t\t}\n\t}\n\telse {\n\t\tflattened.push(map ? map(children) : children);\n\t}\n\n\treturn flattened;\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component, enqueueRender } from '../component';\nimport { coerceToVNode, Fragment } from '../create-element';\nimport { diffChildren, toChildArray } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode | null} newVNode The new virtual node\n * @param {import('../internal').VNode | null} oldVNode The old virtual node\n * @param {object} context The current context object\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} mounts A list of newly\n * mounted components\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n */\nexport function diff(parentDom, newVNode, oldVNode, context, isSvg, excessDomChildren, mounts, force, oldDom) {\n\tlet tmp, newType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif (tmp = options._diff) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType==='function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && context[tmp._id];\n\t\t\tlet cctx = tmp ? (provider ? provider.props.value : tmp._defaultValue) : context;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (newType.prototype && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, cctx); // eslint-disable-line new-cap\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, cctx);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = cctx;\n\t\t\t\tc._context = context;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState==null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps!=null) {\n\t\t\t\tassign(c._nextState==c.state ? (c._nextState = assign({}, c._nextState)) : c._nextState, newType.getDerivedStateFromProps(newProps, c._nextState));\n\t\t\t}\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (newType.getDerivedStateFromProps==null && c.componentWillMount!=null) c.componentWillMount();\n\t\t\t\tif (c.componentDidMount!=null) mounts.push(c);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (newType.getDerivedStateFromProps==null && force==null && c.componentWillReceiveProps!=null) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, cctx);\n\t\t\t\t}\n\n\t\t\t\tif (!force && c.shouldComponentUpdate!=null && c.shouldComponentUpdate(newProps, c._nextState, cctx)===false) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate!=null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, cctx);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\tc.context = cctx;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (tmp = options._render) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttry {\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\t\tlet isTopLevelFragment = tmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\t\ttoChildArray(isTopLevelFragment ? tmp.props.children : tmp, newVNode._children=[], coerceToVNode, true);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tif ((tmp = options._catchRender) && tmp(e, newVNode, oldVNode)) break outer;\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\tif (c.getChildContext!=null) {\n\t\t\t\tcontext = assign(assign({}, context), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate!=null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(parentDom, newVNode, oldVNode, context, isSvg, excessDomChildren, mounts, oldDom);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\twhile (tmp=c._renderCallbacks.pop()) tmp.call(c);\n\n\t\t\t// Don't call componentDidUpdate on mount or when we bailed out via\n\t\t\t// `shouldComponentUpdate`\n\t\t\tif (!isNew && oldProps!=null && c.componentDidUpdate!=null) {\n\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tnewVNode._dom = diffElementNodes(oldVNode._dom, newVNode, oldVNode, context, isSvg, excessDomChildren, mounts);\n\t\t}\n\n\t\tif (tmp = options.diffed) tmp(newVNode);\n\t}\n\tcatch (e) {\n\t\tcatchErrorInComponent(e, newVNode._parent);\n\t}\n\n\treturn newVNode._dom;\n}\n\nexport function commitRoot(mounts, root) {\n\tlet c;\n\twhile ((c = mounts.pop())) {\n\t\ttry {\n\t\t\tc.componentDidMount();\n\t\t}\n\t\tcatch (e) {\n\t\t\tcatchErrorInComponent(e, c._vnode._parent);\n\t\t}\n\t}\n\n\tif (options._commit) options._commit(root);\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} context The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} mounts An array of newly\n * mounted components\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(dom, newVNode, oldVNode, context, isSvg, excessDomChildren, mounts) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type==='svg' || isSvg;\n\n\tif (dom==null && excessDomChildren!=null) {\n\t\tfor (i=0; i<excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\t\t\tif (child!=null && (newVNode.type===null ? child.nodeType===3 : child.localName===newVNode.type)) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom==null) {\n\t\tif (newVNode.type===null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\t\tdom = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type) : document.createElement(newVNode.type);\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (newVNode.type===null) {\n\t\tif (oldProps !== newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t}\n\telse if (newVNode!==oldVNode) {\n\t\tif (excessDomChildren!=null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\t\tif ((newHtml || oldHtml) && excessDomChildren==null) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (!newHtml || !oldHtml || newHtml.__html!=oldHtml.__html) {\n\t\t\t\tdom.innerHTML = newHtml && newHtml.__html || '';\n\t\t\t}\n\t\t}\n\t\tif (newProps.multiple) {\n\t\t\tdom.multiple = newProps.multiple;\n\t\t}\n\n\t\tdiffChildren(dom, newVNode, oldVNode, context, newVNode.type==='foreignObject' ? false : isSvg, excessDomChildren, mounts, EMPTY_OBJ);\n\t\tdiffProps(dom, newProps, oldProps, isSvg);\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} parentVNode\n */\nexport function applyRef(ref, value, parentVNode) {\n\ttry {\n\t\tif (typeof ref=='function') ref(value);\n\t\telse ref.current = value;\n\t}\n\tcatch (e) {\n\t\tcatchErrorInComponent(e, parentVNode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif (r = vnode.ref) {\n\t\tapplyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type !== 'function') {\n\t\tskipRemove = (dom = vnode._dom)!=null;\n\t}\n\n\tvnode._dom = vnode._lastDomChild = null;\n\n\tif ((r = vnode._component)!=null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tcatchErrorInComponent(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif (r = vnode._children) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom!=null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The first ancestor\n * VNode check for error boundary behaviors\n */\nfunction catchErrorInComponent(error, vnode) {\n\tif (options._catchError) { options._catchError(error, vnode); }\n\n\t/** @type {import('../internal').Component} */\n\tlet component;\n\n\tfor (; vnode; vnode = vnode._parent) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (component.constructor && component.constructor.getDerivedStateFromError!=null) {\n\t\t\t\t\tcomponent.setState(component.constructor.getDerivedStateFromError(error));\n\t\t\t\t}\n\t\t\t\telse if (component.componentDidCatch!=null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treturn enqueueRender(component._pendingError = component);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\tlet oldVNode = parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\tlet mounts = [];\n\tdiff(\n\t\tparentDom,\n\t\treplaceNode ? vnode : (parentDom._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tmounts,\n\t\tfalse,\n\t\treplaceNode || EMPTY_OBJ,\n\t);\n\tcommitRoot(mounts, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\tparentDom._children = null;\n\trender(vnode, parentDom);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./index').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length>2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(vnode.type, props, props.key || vnode.key, props.ref || vnode.ref);\n}\n","export function initialize() {\n if (document.getElementById('s25-live')) {\n return;\n }\n\n const live = document.createElement('div');\n live.setAttribute('id', 's25-live');\n live.setAttribute('class', 's25-offscreen s25-live');\n document.body.appendChild(live);\n\n const assertive = document.createElement('div');\n assertive.setAttribute('id', 's25-live-assertive');\n assertive.setAttribute('role', 'log');\n assertive.setAttribute('aria-live', 'assertive');\n assertive.setAttribute('aria-relevant', 'additions');\n live.appendChild(assertive);\n\n const polite = document.createElement('div');\n polite.setAttribute('id', 's25-live-polite');\n polite.setAttribute('role', 'log');\n polite.setAttribute('aria-live', 'polite');\n polite.setAttribute('aria-relevant', 'additions');\n live.appendChild(polite);\n}\n\nexport function assertively(message: string) {\n add(message, document.getElementById('s25-live-assertive')!);\n}\n\nexport function politely(message: string) {\n add(message, document.getElementById('s25-live-polite')!);\n}\n\nfunction add(message: string, container: HTMLElement) {\n const node = document.createElement('div');\n node.appendChild(document.createTextNode(message));\n container.appendChild(node);\n\n // clean up old nodes\n\n let collection = document.getElementById('s25-live-assertive')!;\n while (collection.firstChild && collection.firstChild !== node) {\n collection.removeChild(collection.firstChild);\n }\n collection = document.getElementById('s25-live-polite')!;\n while (collection.firstChild && collection.firstChild !== node) {\n collection.removeChild(collection.firstChild);\n }\n}\n","export interface Dictionary {\n valueAdded(itemLabel: string): string;\n noSearchResults(): string;\n searchResultsLoading(): string;\n removeButtonTitle(): string;\n clearButtonTitle(): string;\n minimumCharactersMessage(len: number, min: number): string;\n multiSelectInstructions(): string;\n}\n\nconst EN_US: Dictionary = {\n noSearchResults() {\n return 'No results available';\n },\n\n searchResultsLoading() {\n return 'Loading...';\n },\n\n removeButtonTitle() {\n return 'Remove selected values';\n },\n\n clearButtonTitle() {\n return 'Clear selection';\n },\n\n valueAdded(itemLabel: string) {\n return itemLabel + ' added';\n },\n\n minimumCharactersMessage(len: number, min: number) {\n const delta = min - len;\n return 'Please enter ' + delta + ' more character' + (delta > 1 ? 's' : '');\n },\n\n multiSelectInstructions(): string {\n return \"Items can be removed from this list box by selecting them and activating 'Remove selected values' button. Items can be added by selecting them in the adjacent combobox.\";\n }\n};\n\nconst dictionaries = new Map<string, Dictionary>();\ndictionaries.set('en_us', EN_US);\n\nexport function getDictionary(dict?: string | undefined): Dictionary {\n const fallback: Dictionary = dictionaries.get('en_us') as Dictionary;\n\n if (!dict) {\n return fallback;\n }\n\n if (typeof dict === 'string') {\n const instance = dictionaries.get(dict);\n return instance ? instance : fallback;\n } else {\n return dict;\n }\n}\n","import { ComponentChild } from 'preact';\n\nexport function extend(...params: object[]) {\n for (let i = 1; i < arguments.length; i++) {\n for (const key in arguments[i]) {\n if (arguments[i].hasOwnProperty(key)) {\n if (typeof arguments[0][key] === 'object' && typeof arguments[i][key] === 'object') {\n extend(arguments[0][key], arguments[i][key]);\n } else {\n arguments[0][key] = arguments[i][key];\n }\n }\n }\n }\n return arguments[0];\n}\n\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T[P] extends ReadonlyArray<infer V>\n ? ReadonlyArray<DeepPartial<V>>\n : DeepPartial<T[P]>\n};\n\nexport const merge = <T>(target: T, sources: Array<DeepPartial<T>>): T => {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n if (source === undefined) {\n return merge(target, sources);\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n merge(target[key], [source[key]]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return merge(target, sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n\nexport function cn(...values: any) {\n const classes: string[] = [];\n const hasOwnProperty = {}.hasOwnProperty;\n\n for (const value of values) {\n if (typeof value === 'string') {\n classes.push(value);\n } else if (typeof value === 'object') {\n for (const key in value as object) {\n if (hasOwnProperty.call(value, key) && value[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nexport enum Key {\n // https://www.w3.org/TR/uievents-key/#named-key-attribute-values\n ArrowDown = 'ArrowDown',\n ArrowUp = 'ArrowUp',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight',\n Space = ' ',\n Enter = 'Enter',\n Tab = 'Tab',\n Home = 'Home',\n End = 'End',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n Backspace = 'Backspace',\n Delete = 'Delete',\n Clear = 'Clear',\n Escape = 'Escape',\n // IE 11\n Down = 'Down',\n Up = 'Up',\n Spacebar = 'Spacebar',\n Left = 'Left',\n Right = 'Right'\n}\n\nexport const uuid = (() => {\n let counter = 0;\n return () => 's25-' + counter++;\n})();\n\nexport function throttle(delay: number, callback: () => void): () => void {\n let timeout: number | undefined;\n return () => {\n if (timeout !== undefined) {\n window.clearTimeout(timeout);\n timeout = undefined;\n } else {\n timeout = window.setTimeout(() => {\n callback();\n timeout = undefined;\n }, delay);\n }\n };\n}\n\n// @ts-ignore\nexport function debounce(quiet: number, delegate: (...args: any[]) => void, that: object) {\n const args = Array.from(arguments);\n if (quiet <= 0) {\n return () => {\n delegate.apply(that, args);\n };\n } else {\n let timeout: number | undefined;\n return () => {\n if (timeout) {\n window.clearTimeout(timeout);\n }\n timeout = window.setTimeout(() => {\n timeout = undefined;\n delegate.apply(that, args);\n }, quiet);\n };\n }\n}\n\nexport function getScrollParents(el: HTMLElement): EventTarget[] {\n const style = window.getComputedStyle(el);\n const elementPosition = style.position;\n if (elementPosition === 'fixed') {\n return [el];\n }\n\n const parents: Array<HTMLElement | Window> = [];\n let parent = el.parentElement;\n\n while (parent && parent.nodeType === 1) {\n const css = window.getComputedStyle(parent);\n if (/(overlay|scroll|auto)/.test(css.overflow + ' ' + css.overflowX + ' ' + css.overflowY)) {\n if (elementPosition !== 'absolute' || ['relative', 'fixed', 'absolute'].indexOf(css.position || '') >= 0) {\n parents.push(parent);\n }\n }\n parent = parent.parentElement;\n }\n\n if (el.ownerDocument) {\n parents.push(el.ownerDocument.body);\n }\n\n // iframe\n if (el.ownerDocument !== document && el.ownerDocument && el.ownerDocument.defaultView) {\n parents.push(el.ownerDocument.defaultView);\n }\n\n parents.push(window);\n return parents;\n}\n\nexport function calculateVerticalVisibility(\n container: HTMLElement,\n element: HTMLElement\n): 'hidden' | 'partial-top' | 'partial-bottom' | 'visible' {\n const c = container.getBoundingClientRect();\n const e = element.getBoundingClientRect();\n\n if (e.bottom < c.top) {\n // above the fold\n return 'hidden';\n }\n\n if (e.top > c.bottom) {\n // below the fold\n return 'hidden';\n }\n\n if (e.top < c.top && e.bottom <= c.bottom) {\n return 'partial-top';\n }\n\n if (e.top >= c.top && e.bottom > c.bottom) {\n return 'partial-bottom';\n }\n\n return 'visible';\n}\n\nexport type MouseEventListener = (event: MouseEvent) => void;\nexport type KeyboardEventListener = (event: KeyboardEvent) => void;\nexport type EventListener = (event: Event) => void;\nexport type FocusEventListener = (event: FocusEvent) => void;\n\n/** helper that makes it easier to declare a scope inside a jsx block */\nexport function scope(delegate: () => ComponentChild) {\n return delegate();\n}\n","import { Component, ComponentChild, h, h as createElement } from 'preact';\nimport * as announce from './announce';\nimport { Dictionary, getDictionary } from './dictionary';\nimport { DeepPartial, Key, merge, uuid } from './util';\nconst forceImportOfH = h;\n\ntype ToString = (item: any) => string;\n\nexport type ItemRenderer = (string) | ((item: any, h: typeof createElement) => ComponentChild);\n\nexport type QueryFunction = (search: string, page: number, token: string) => Promise<QueryResult>;\n\nexport interface QueryResult {\n values: any[];\n more: boolean;\n token: string;\n}\n\nexport interface ResultListState {\n results: any[];\n token: string;\n active: number;\n page: number;\n\n showMinimumCharactersError: boolean;\n showNoSearchResultsFound: boolean;\n showLoadMoreResults: boolean;\n}\nexport interface State {\n search: string;\n results: ResultListState;\n loading: boolean;\n open: boolean;\n focused: boolean;\n}\n\nexport interface Props {\n containerStyle?: string;\n containerClass?: string;\n tabIndex?: number;\n itemId: ToString | string;\n itemLabel: ToString | string;\n valueContent?: ItemRenderer;\n resultContent?: ItemRenderer;\n\n query: QueryFunction;\n quiet?: number;\n allowDuplicates?: boolean;\n minimumCharacters?: number;\n openOnFocus?: boolean;\n dictionary?: string | Dictionary;\n}\n\nfunction MarkupRenderer({ markup }) {\n return <div dangerouslySetInnerHTML={{ __html: markup }}> </div>;\n}\n\nexport const DEFAULT_PROPS: Partial<Props> = {\n allowDuplicates: false,\n minimumCharacters: 0,\n quiet: 50,\n tabIndex: 0\n};\n\nexport abstract class AbstractSelect<P extends Props, S extends State> extends Component<P, S> {\n private searchTimeout: number | undefined;\n protected namespace: string;\n\n constructor(props: P) {\n super(props);\n this.searchTimeout = undefined;\n this.namespace = uuid();\n // @ts-ignore\n this.state = {\n focused: false,\n loading: false,\n open: false,\n results: {\n active: -1,\n page: 0,\n results: undefined, // TODO rename to values\n token: null,\n\n showLoadMoreResults: false,\n showMinimumCharactersError: false,\n showNoSearchResultsFound: false\n },\n search: ''\n };\n }\n\n public getItemId = (item: any): string => {\n const id = this.props.itemId;\n if (typeof id === 'function') {\n return (id as ToString)(item);\n } else {\n return '' + item[id];\n }\n };\n\n public getItemLabel = (item: any): string => {\n const label = this.props.itemLabel;\n if (typeof label === 'function') {\n return (label as ToString)(item);\n } else {\n return '' + item[label];\n }\n };\n\n public renderValue = (item: any): ComponentChild => {\n return this.renderItem(item, 'valueContent');\n };\n\n public renderResult = (item: any): ComponentChild => {\n return this.renderItem(item, 'resultContent');\n };\n\n private renderItem = (item: any, rendererName: keyof Props): ComponentChild => {\n const renderer = this.props[rendererName] as ItemRenderer;\n if (renderer) {\n if (typeof renderer === 'function') {\n const render = renderer(item, createElement);\n if (typeof render === 'string') {\n return <MarkupRenderer markup={render} />;\n } else {\n return render;\n }\n } else {\n return <MarkupRenderer markup={item[renderer]} />;\n }\n } else {\n return <MarkupRenderer markup={this.getItemLabel(item)} />;\n }\n };\n\n get dictionary(): Dictionary {\n const dict = this.props.dictionary;\n if (dict) {\n if (typeof dict === 'string') {\n return getDictionary(dict);\n } else {\n return dict as Dictionary;\n }\n } else {\n return getDictionary();\n }\n }\n\n protected updateState(update: DeepPartial<S> | Array<DeepPartial<S>>, callback?: () => void) {\n const state = merge(this.state, Array.isArray(update) ? update : [update]);\n this.setState(state, callback);\n }\n\n public search = (query, selectedValues, start?: DeepPartial<S>, callback?: () => void) => {\n const dictionary = this.dictionary;\n const { minimumCharacters, allowDuplicates, quiet, query: queryFunc } = this.props;\n\n const current = this.state.results;\n\n const minimumCharactersReached = query.length >= minimumCharacters;\n const token = minimumCharactersReached ? uuid() : undefined;\n\n const control = this;\n\n this.updateState(\n // @ts-ignore\n [\n start,\n {\n loading: minimumCharactersReached,\n results: {\n active: -1,\n page: 0,\n results: undefined,\n showLoadMoreResults: false,\n showMinimumCharactersError: !minimumCharactersReached,\n showNoSearchResultsFound: false,\n token\n },\n search: query\n }\n ],\n () => {\n if (callback) {\n callback();\n }\n\n if (!minimumCharactersReached) {\n // todo - throttle this announcement?\n announce.politely(dictionary.minimumCharactersMessage(query.length, minimumCharacters!));\n return;\n }\n\n // todo - throttle this announcement?\n // announce.politely(dictionary.searchResultsLoading());\n\n const execute = async () => {\n try {\n const result = await queryFunc(query, 0, token!);\n if (result.token !== control.state.results.token) {\n // this is a stale result, ignore\n return;\n }\n\n let values = result.values || [];\n if (!allowDuplicates && values.length > 0 && selectedValues.length > 0) {\n const ids = new Set<string>();\n selectedValues.forEach(v => ids.add(control.getItemId(v)));\n values = values.filter(v => !ids.has(control.getItemId(v)));\n }\n\n if (values.length < 1) {\n announce.politely(dictionary.noSearchResults());\n }\n\n // @ts-ignore\n control.updateState({\n loading: false,\n results: {\n active: values.length > 0 ? 0 : -1,\n page: 0,\n results: values,\n showLoadMoreResults: result.more,\n showNoSearchResultsFound: values.length < 1\n }\n });\n } catch (e) {\n // @ts-ignore\n control.updateState({ loading: false });\n }\n };\n\n if (quiet && quiet > 0) {\n if (control.searchTimeout) {\n window.clearTimeout(control.searchTimeout);\n }\n control.searchTimeout = window.setTimeout(execute, quiet);\n } else {\n execute();\n }\n }\n );\n };\n\n public loadMore() {\n const {\n loading,\n search: query,\n results: { page }\n } = this.state;\n const dict = this.dictionary;\n const { query: queryFunc } = this.props;\n const control = this;\n\n if (loading) {\n return;\n }\n\n const token = uuid();\n const nextPage = page + 1;\n\n this.updateState(\n // @ts-ignore\n {\n loading: true,\n results: {\n token\n }\n },\n async () => {\n // TODO throttle?\n // announce.politely(dict.searchResultsLoading());\n\n try {\n const result = await queryFunc(query, nextPage, token);\n\n const current = control.state.results;\n\n if (result.token !== current.token) {\n // this is a stale result, ignore\n return;\n }\n\n if (result.values && result.values.length > 0) {\n // @ts-ignore\n control.updateState({\n loading: false,\n results: {\n page: nextPage,\n results: current.results.concat(result.values),\n showLoadMoreResults: result.more\n }\n });\n } else {\n announce.politely(dict.noSearchResults());\n // @ts-ignore\n control.updateState({\n loading: false,\n results: {\n showLoadMoreResults: false\n }\n });\n }\n } catch (e) {\n // @ts-ignore\n control.updateState({ loading: false });\n }\n }\n );\n }\n\n protected handleResultNavigationKeyDown(event: KeyboardEvent): boolean {\n switch (event.key) {\n case Key.ArrowUp:\n case Key.Up:\n this.selectPreviousSearchResult();\n event.preventDefault();\n return true;\n case Key.ArrowDown:\n case Key.Down:\n this.selectNextSearchResult();\n event.preventDefault();\n return true;\n }\n return false;\n }\n\n protected selectNextSearchResult() {\n const { active, results } = this.state.results;\n if (results && active < results.length - 1) {\n // @ts-ignore\n this.updateState({ results: { active: active + 1 } });\n }\n }\n\n protected selectPreviousSearchResult() {\n const { active } = this.state.results;\n if (active > 0) {\n // @ts-ignore\n this.updateState({ results: { active: active - 1 } });\n }\n }\n\n protected getSelectedSearchResult() {\n const { results, active } = this.state.results;\n return results[active];\n }\n\n protected selectSearchResult(index: number) {\n const { active } = this.state.results;\n if (active !== index) {\n // @ts-ignore\n this.updateState({ results: { active: index } });\n }\n }\n\n protected hasSearchResults() {\n const results = this.state.results.results;\n return results && results.length > 0;\n }\n}\n","import { Component, ComponentChild, Fragment, h, RefObject, render } from 'preact';\nimport { getScrollParents, MouseEventListener, throttle } from './util';\n\nclass ContextProvider extends Component<{ context: any }> {\n public getChildContext() {\n return this.props.context;\n }\n public render() {\n return this.props.children;\n }\n}\n\nfunction Portal({ vnode, container }): null {\n // @ts-ignore\n const wrap = <ContextProvider context={this.context}>{vnode}</ContextProvider>;\n render(wrap, container);\n return null;\n}\n\nfunction createPortal(vnode, container): ComponentChild {\n return h(Portal, { vnode, container });\n}\n\ninterface Props {\n controlRef: RefObject<HTMLElement>;\n dropdownRef: RefObject<HTMLElement>;\n class?: string;\n onClick?: MouseEventListener;\n onMouseDown?: MouseEventListener;\n onFocusOut?: EventListener;\n}\n\nexport class Dropdown extends Component<Props> {\n private container?: HTMLElement;\n private scrollParents?: EventTarget[];\n private throttledPosition;\n\n constructor(props) {\n super(props);\n this.throttledPosition = throttle(50, this.position.bind(this));\n }\n\n public componentWillMount() {\n this.container = document.createElement('div');\n if (this.props.class) {\n this.container.className = this.props.class;\n }\n\n /*\n this container needs to be able to receive focus so we can tell\n it is not leaving the control - we consider dropdown part of the control\n */\n this.container.tabIndex = -1;\n if (this.props.onClick) {\n this.container.addEventListener('click', this.props.onClick);\n }\n if (this.props.onMouseDown) {\n this.container.addEventListener('mousedown', this.props.onMouseDown);\n }\n if (this.props.onFocusOut) {\n this.container.addEventListener('focusout', this.props.onFocusOut);\n }\n document.body.appendChild(this.container);\n }\n\n public componentDidMount() {\n this.props.dropdownRef.current = this.container;\n this.scrollParents = getScrollParents(this.props.controlRef.current!);\n this.scrollParents.forEach(parent => {\n ['resize', 'scroll', 'touchmove'].forEach(event => {\n parent.addEventListener(event, this.throttledPosition);\n });\n });\n this.position();\n }\n\n public componentWillUnmount() {\n if (this.scrollParents) {\n this.scrollParents.forEach(parent => {\n ['resize', 'scroll', 'touchmove'].forEach(event => {\n parent.removeEventListener(event, this.throttledPosition);\n });\n });\n delete this.scrollParents;\n this.scrollParents = undefined;\n }\n\n this.props.dropdownRef.current = undefined;\n this.container!.parentElement!.removeChild(this.container!);\n }\n\n public componentDidUpdate() {\n this.position();\n }\n\n public render(props) {\n return createPortal(<Fragment>{this.props.children}</Fragment>, this.container!);\n }\n\n private position() {\n const control = this.props.controlRef.current!;\n const rect = control.getBoundingClientRect();\n const style = `top: ${rect.top + rect.height + window.pageYOffset}px;\n left: ${rect.left + window.pageXOffset}px;\n width: ${rect.width}px;`;\n this.container!.setAttribute('style', style);\n }\n}\n","import { FunctionComponent, h } from 'preact';\n\nconst forceImportOfH = h;\n\ninterface Props {\n width: number;\n height: number;\n}\n\nexport const Toggle: FunctionComponent<Props> = ({ height, width }) => {\n const viewBox = '0 0 ' + width + ' ' + height;\n return (\n <svg height={height} width={width} viewBox={viewBox} tabIndex={-1} focusable='false'>\n <path d='M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z' />\n </svg>\n );\n};\nToggle.displayName = 'Toggle';\n\nexport const Remove: FunctionComponent<Props> = ({ width, height }) => {\n const viewBox = '0 0 ' + width + ' ' + height;\n return (\n <svg height={height} width={width} viewBox={viewBox} tabIndex={-1} focusable='false'>\n <path d='M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z' />\n </svg>\n );\n};\nRemove.displayName = 'Remove';\n","export const enum style {\n control = 's25-control',\n content = 's25-content',\n single = 's25-single',\n multi = 's25-multi',\n body = 's25-body',\n focused = 's25-focused',\n active = 's25-active',\n live = 's25-live',\n multiValues = 's25-multi-values',\n value = 's25-value',\n item = 's25-item',\n selected = 's25-selected',\n toggle = 's25-toggle',\n remove = 's25-remove',\n open = 's25-open',\n label = 's25-label',\n search = 's25-search',\n offscreen = 's25-offscreen',\n searchContainer = 's25-search-container',\n dropdown = 's25-dropdown',\n searchResults = 's25-search-results',\n options = 's25-options',\n noSearchResults = 's25-no-search-results',\n searchResultsMessage = 's25-search-results-message',\n searchResultsLoading = 's25-search-results-loading',\n searchResultsMinimumError = 's25-search-results-minimum-error',\n hiddenAccessible = 's25-hidden-accessible',\n hidden = 's25-hidden',\n placeholder = 's25-placeholder'\n}\n","import { Component, ComponentChild, createRef, h, RefObject } from 'preact';\nimport { Dictionary } from './dictionary';\nimport { style } from './style';\nimport { calculateVerticalVisibility, cn } from './util';\n\nconst forceImportOfH = h;\n\n// TODO if upon render loading is visible signal loadmore\n\ninterface Props {\n // TODO consistenly call search a query\n namespace: string;\n search: string;\n listboxDomId?: string;\n results: any[];\n token: string;\n active: number;\n page: number;\n loading: boolean;\n\n itemLabel: (item: any) => string;\n renderItem: (item: any) => ComponentChild;\n\n dictionary: Dictionary;\n minimumCharacters: number;\n\n showMinimumCharactersError: boolean;\n showNoSearchResultsFound: boolean;\n showLoadMoreResults: boolean;\n\n onResultClicked: (result: any, event: MouseEvent) => void;\n onMouseMove: (index: any, event: MouseEvent) => void;\n onLoadMore: () => void;\n}\n\nexport class ResultList extends Component<Props> {\n private container: RefObject<HTMLElement>;\n private lastMouseClientX?: number;\n private lastMouseClientY?: number;\n private loadMore: RefObject<HTMLElement>;\n constructor(props) {\n super(props);\n this.container = createRef();\n this.loadMore = createRef();\n }\n\n private getResultDomId(index: number) {\n return this.props.namespace + index;\n }\n\n public render(props, state, context) {\n const { dictionary, minimumCharacters, showLoadMoreResults, results } = props;\n const query = this.props.search;\n\n return (\n <div class={style.body}>\n <div\n ref={this.container}\n onScroll={this.onScroll}\n class={style.searchResults}\n aria-busy={props.loading}\n style={{ maxHeight: '175px' }}\n >\n {props.loading && (\n <div class={cn(style.searchResultsLoading, style.searchResultsMessage)}>\n {dictionary.searchResultsLoading()}\n </div>\n )}\n {props.showNoSearchResultsFound && (\n <div class={cn(style.noSearchResults, style.searchResultsMessage)}>\n {dictionary.noSearchResults()}\n </div>\n )}\n {props.showMinimumCharactersError && (\n <div class={cn(style.searchResultsMinimumError, style.searchResultsMessage)}>\n {dictionary.minimumCharactersMessage(query.length, minimumCharacters)}\n </div>\n )}\n {results && results.length > 0 && (\n <div\n class={style.options}\n role='listbox'\n id={props.listboxDomId}\n aria-activedescendant={props.active >= 0 ? this.getResultDomId(props.active) : undefined}\n >\n {results.map((result, index) => {\n const label = props.itemLabel(result);\n const render = props.renderItem(result);\n const active = props.active === index;\n const css = cn(style.item, {\n [style.active]: active\n });\n const id = this.getResultDomId(index);\n return (\n <div\n id={id}\n class={css}\n role='option'\n onClick={this.onResultClicked(result)}\n onMouseMove={this.onMouseMove(index)}\n aria-posinset={index + 1}\n aria-setsize={showLoadMoreResults ? results.length + 1 : results}\n aria-selected={active}\n aria-label={label}\n >\n <div class={style.content}>{render}</div>\n </div>\n );\n })}\n </div>\n )}\n {props.showLoadMoreResults && (\n <div\n ref={this.loadMore}\n class={cn(style.searchResultsMinimumError, style.searchResultsMessage)}\n >\n {dictionary.searchResultsLoading()}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n private onResultClicked = (result: any) => (event: MouseEvent) => {\n this.props.onResultClicked(result, event);\n };\n\n private onMouseMove = (index: number) => (event: MouseEvent) => {\n if (this.lastMouseClientX === event.clientX && this.lastMouseClientY === event.clientY) {\n // the mouse did not move, the dropdown was scrolled instead, we do not change selected element because\n // it will be scrolled into view and mess with the scrolling of the results in the dropdown\n return;\n }\n this.lastMouseClientX = event.clientX;\n this.lastMouseClientY = event.clientY;\n\n this.props.onMouseMove(index, event);\n };\n\n private onScroll = (event: Event) => {\n if (!this.props.showLoadMoreResults) {\n return;\n }\n const more = this.loadMore.current!;\n const drop = this.container.current!;\n\n const visibility = calculateVerticalVisibility(drop, more);\n if (visibility !== 'hidden') {\n this.props.onLoadMore();\n }\n };\n\n public componentDidUpdate(prevProps: Props, prevState: Props) {\n const { active, results, showLoadMoreResults } = this.props;\n const { active: prevActive } = prevProps;\n\n if (active !== prevActive) {\n if (active >= 0 && results && results.length > 0 && active === results.length - 1 && showLoadMoreResults) {\n // last result is selected and load more is shown, make sure it is scrolled into view\n\n const drop = this.container.current!;\n const el = this.loadMore.current!;\n\n drop.scrollTop = el.offsetTop + el.offsetHeight - drop.clientHeight;\n\n // console.log(\"scrolling to see load more\");//, setting scrolltop\", drop, el, el.offsetTop - drop.clientHeight);\n } else if (active >= 0) {\n // make sure it is scrolled into view\n const id = this.getResultDomId(active);\n const el = document.getElementById(id);\n if (el != null) {\n const drop = this.container!.current!;\n const c = drop.getBoundingClientRect();\n const e = el.getBoundingClientRect();\n\n if (e.top < c.top && e.bottom <= c.bottom) {\n const delta = c.top - e.top;\n drop.scrollTop = drop.scrollTop - delta;\n }\n\n if (e.top >= c.top && e.bottom > c.bottom) {\n const delta = e.bottom - c.bottom;\n drop.scrollTop = drop.scrollTop + delta;\n }\n }\n }\n }\n }\n}\n","import { createRef, Fragment, h, RefObject } from 'preact';\nimport {\n AbstractSelect,\n DEFAULT_PROPS as ABSTRACT_DEFAULT_PROPS,\n Props as SearchControllerProps,\n State as AbstractSelectState\n} from './abstract-select';\nimport * as announce from './announce';\nimport { Dropdown } from './dropdown';\nimport { Remove, Toggle } from './icons';\nimport { ResultList } from './result-list';\nimport { style } from './style';\nimport { cn, extend, Key, scope } from './util';\n\nconst forceImportOfH = h;\n\nexport interface Props extends SearchControllerProps {\n valuesLabel: string;\n comboboxLabel: string;\n values: any[];\n onChange: (values: any[]) => void;\n}\n\ninterface ValueListState {\n active: number;\n selected: boolean[];\n}\n\ninterface State extends AbstractSelectState {\n values: ValueListState;\n}\n\nconst DEFAULT_PROPS = extend({}, ABSTRACT_DEFAULT_PROPS, {});\n\nexport class MultiSelect extends AbstractSelect<Props, State> {\n private containerRef: RefObject<HTMLDivElement>;\n private dropdownRef: RefObject<HTMLElement>;\n private bodyRef: RefObject<HTMLDivElement>;\n private valuesRef: RefObject<HTMLDivElement>;\n private searchRef: RefObject<HTMLInputElement>;\n\n public static defaultProps = DEFAULT_PROPS;\n\n constructor(props) {\n super(props);\n const { values } = props;\n\n this.valuesRef = createRef();\n this.searchRef = createRef();\n this.bodyRef = createRef();\n this.containerRef = createRef();\n this.dropdownRef = createRef();\n\n this.state = extend(this.state, {\n values: {\n active: -1,\n selected: values.map(v => false)\n }\n });\n }\n\n public componentWillMount() {\n announce.initialize();\n }\n\n public render(props, state) {\n const { values, tabIndex, minimumCharacters, valuesLabel, comboboxLabel } = props;\n const {\n open,\n loading,\n focused,\n search,\n values: { active, selected },\n results\n } = state;\n const dictionary = this.dictionary;\n\n let classes = cn(style.control, style.multi, { [style.open]: open }, { [style.focused]: focused });\n if (props.containerClass && props.containerClass.length > 0) {\n classes += ' ' + props.containerClass;\n }\n\n const instructionsDomId = this.namespace + '-instructions';\n const resultsDomId = this.namespace + '-results';\n const resultsNamespace = this.namespace + '-res-';\n return (\n <Fragment>\n <div\n class={classes}\n ref={this.containerRef}\n onFocusCapture={this.onFocusIn}\n onBlurCapture={this.onFocusOut}\n tabIndex={-1}\n onMouseDown={this.focusSearchAndStopPropagation}\n >\n <div class={cn(style.body)} ref={this.bodyRef} onClick={this.onBodyClick}>\n <div id={instructionsDomId} class={cn(style.offscreen)} style={{ display: 'none' }}>\n {dictionary.multiSelectInstructions()}\n </div>\n {scope(() => {\n const activeDescendant = active >= 0 ? this.namespace + '-vl-' + active : undefined;\n if (values && values.length > 0) {\n return (\n <div\n ref={this.valuesRef}\n class={cn(style.multiValues)}\n tabIndex={tabIndex}\n role='listbox'\n aria-orientation='vertical'\n aria-multiselectable='true'\n aria-activedescendant={activeDescendant}\n aria-label={valuesLabel}\n aria-describedby={instructionsDomId}\n onFocus={this.onValuesFocus}\n onBlur={this.onValuesBlur}\n onKeyDown={this.onValuesKeyDown}\n >\n {values.map((value: any, index: number) => {\n const isSelected = selected[index];\n const isActive = active === index;\n const css = cn(style.item, {\n [style.selected]: isSelected,\n [style.active]: isActive\n });\n const id = this.namespace + '-vl-' + index;\n const label = this.getItemLabel(value);\n const render = this.renderValue(value);\n return (\n <div\n id={id}\n class={css}\n role='option'\n aria-selected={isSelected}\n aria-label={label}\n onMouseDown={(e: Event) => e.stopPropagation()}\n onClick={this.onValueClick(index)}\n >\n <div class={style.content}>{render}</div>\n </div>\n );\n })}\n </div>\n );\n } else {\n return null;\n }\n })}\n {scope(() => {\n const disabled = !selected.find(x => x === true);\n const className = cn(style.remove, {\n [style.offscreen]: values.length < 1\n });\n return (\n <button\n className={className}\n onClick={this.onRemoveSelectedClick}\n onFocus={this.onRemoveSelectedFocus}\n disabled={disabled}\n aria-disabled={disabled}\n title={dictionary.removeButtonTitle()}\n >\n <span>\n <Remove width={20} height={20} />\n </span>\n </button>\n );\n })}\n <label htmlFor={undefined} className={style.offscreen}>\n {props.comboboxLabel}\n </label>\n <input\n type='text'\n ref={this.searchRef}\n value={search}\n class={cn(style.search)}\n role='combobox'\n aria-label={props.comboboxLabel}\n aria-autocomplete='list'\n aria-haspopup='true'\n aria-owns={resultsDomId}\n aria-controls={resultsDomId}\n aria-expanded={open ? 'true' : 'false'}\n aria-activedescendant={results.active >= 0 ? resultsNamespace + results.active : undefined}\n aria-busy={loading}\n onInput={this.onSearchInput}\n onKeyDown={this.onSearchKeyDown}\n onFocus={this.onSearchFocus}\n />\n <div className={cn(style.toggle)} aria-hidden={true} tabIndex={-1} onClick={this.onToggleClick}>\n <Toggle height={20} width={20} />\n </div>\n </div>\n </div>\n {open && (\n <Dropdown\n class={cn(style.dropdown, style.multi)}\n onClick={this.onDropdownClick}\n controlRef={this.containerRef}\n dropdownRef={this.dropdownRef}\n >\n <ResultList\n namespace={resultsNamespace}\n minimumCharacters={minimumCharacters}\n dictionary={this.dictionary}\n itemLabel={this.getItemLabel}\n renderItem={this.renderResult}\n listboxDomId={resultsDomId}\n search={search}\n {...this.state.results}\n loading={loading}\n onResultClicked={this.onResultClicked}\n onMouseMove={this.onResultMouseMove}\n onLoadMore={this.onLoadMoreResults}\n />\n </Dropdown>\n )}\n </Fragment>\n );\n }\n\n public componentDidMount() {\n const css = this.props.containerStyle;\n if (css && css.length > 0) {\n this.containerRef.current!.setAttribute('style', css);\n }\n }\n\n private onLoadMoreResults = () => {\n this.loadMore();\n };\n\n private focusSearchAndStopPropagation = (event: Event) => {\n this.searchRef.current!.focus();\n event.preventDefault();\n event.stopPropagation();\n };\n\n public onToggleClick = (event: MouseEvent) => {\n const { open } = this.state;\n if (open) {\n this.close();\n this.searchRef.current!.focus();\n } else {\n this.search(this.state.search, this.props.values, { open: true });\n this.searchRef.current!.focus();\n }\n event.preventDefault();\n event.stopPropagation();\n };\n\n public onBodyClick = (event: MouseEvent) => {\n if (event.target === this.bodyRef.current) {\n // if the element itself was clicked, (white space inside the body)\n this.searchRef.current!.focus();\n }\n };\n\n public onFocusIn = (event: FocusEvent) => {\n this.updateState({ focused: true });\n };\n\n public onFocusOut = (event: FocusEvent) => {\n const receiver = event.relatedTarget as Node;\n const container = this.containerRef.current!;\n const dropdown = this.dropdownRef.current!;\n const focused =\n container.contains(receiver) || (dropdown && (dropdown === receiver || dropdown.contains(receiver)));\n\n this.updateState({\n focused\n });\n if (!focused) {\n // this.closeIfOpen();\n }\n };\n\n public onSearchFocus = (event: FocusEvent) => {\n const { openOnFocus } = this.props;\n const { open } = this.state;\n if (!open && openOnFocus) {\n this.search(this.searchRef.current!.value, this.props.values, { open: true });\n }\n };\n\n public onResultMouseMove = (index: number, event: MouseEvent) => {\n this.selectSearchResult(index);\n };\n\n public selectActiveResult = () => {\n this.selectResult(this.getSelectedSearchResult());\n };\n\n public selectResult = (result: any) => {\n const { values, onChange } = this.props;\n const next = values.slice();\n next.push(result);\n\n this.close();\n\n const label = this.getItemLabel(result);\n announce.politely(this.dictionary.valueAdded(label));\n\n onChange(next);\n };\n\n public toggleValue = (index: number) => {\n const {\n values: { selected }\n } = this.state;\n const next = selected.slice();\n next[index] = !next[index];\n this.updateState({ values: { selected: next, active: index } });\n };\n\n public onRemoveSelectedFocus = (event: FocusEvent) => {\n this.closeIfOpen();\n };\n\n public onRemoveSelectedClick = (event: Event) => {\n const {\n values: { selected }\n } = this.state;\n const { values, onChange } = this.props;\n const next = values.slice().filter((value, index) => !selected[index]);\n this.updateState({\n values: {\n selected: next.map(v => false)\n }\n });\n onChange(next);\n\n this.searchRef.current!.focus();\n };\n\n public onSearchInput = (event: Event) => {\n const value = (event.target as HTMLInputElement).value;\n this.search(value, this.props.values, { open: true });\n };\n\n public onSearchKeyDown = (event: KeyboardEvent) => {\n if (this.handleResultNavigationKeyDown(event)) {\n return;\n }\n\n const { open } = this.state;\n\n if (open && this.hasSearchResults) {\n switch (event.key) {\n case Key.Enter:\n this.selectActiveResult();\n event.preventDefault();\n break;\n case Key.Escape:\n if (open) {\n this.close();\n }\n event.preventDefault();\n break;\n }\n }\n };\n\n public onValueClick = (index: number) => (event: MouseEvent) => {\n this.toggleValue(index);\n event.preventDefault();\n event.stopPropagation();\n };\n\n public onValuesFocus = (event: Event) => {\n const {\n values: { active, selected }\n } = this.state;\n const { values } = this.props;\n\n // highlight the first selected value\n if (active < 0 && values.length > 0) {\n let index = 0;\n for (let i = 0; i < selected.length; i++) {\n if (selected[i]) {\n index = i;\n break;\n }\n }\n this.updateState({ values: { active: index } });\n }\n this.closeIfOpen();\n };\n\n public closeIfOpen() {\n if (this.state.open) {\n this.close();\n }\n }\n\n public close = () => {\n this.updateState({\n open: false,\n results: { results: undefined },\n search: ''\n });\n };\n\n public onValuesBlur = (event: Event) => {\n this.updateState({ values: { active: -1 } });\n };\n\n public onValuesKeyDown = (event: KeyboardEvent) => {\n const active = this.state.values.active;\n const { values } = this.props;\n\n switch (event.key) {\n case Key.ArrowLeft:\n case Key.ArrowUp:\n case Key.Up:\n case Key.Left: {\n if (active > 0) {\n this.updateState({ values: { active: active - 1 } });\n }\n event.preventDefault();\n break;\n }\n case Key.ArrowRight:\n case Key.Right:\n case Key.ArrowDown:\n case Key.Down: {\n if (active < values.length - 1) {\n this.updateState({ values: { active: active + 1 } });\n }\n event.preventDefault();\n break;\n }\n case Key.PageDown: {\n // TODO\n event.preventDefault();\n break;\n }\n case Key.PageUp: {\n // TODO\n event.preventDefault();\n break;\n }\n case Key.Home: {\n this.updateState({ values: { active: 0 } });\n event.preventDefault();\n break;\n }\n case Key.End: {\n this.updateState({ values: { active: values.length - 1 } });\n event.preventDefault();\n break;\n }\n case Key.Space:\n case Key.Spacebar: {\n this.toggleValue(active);\n event.preventDefault();\n break;\n }\n }\n };\n\n public onDropdownClick = (event: MouseEvent) => {\n // result clicks do not make it this far because they do not propagate\n // so this click is on something other than result\n event.preventDefault();\n event.stopPropagation();\n this.searchRef.current!.focus();\n };\n\n public onResultClicked = (result: any, event: MouseEvent) => {\n this.selectResult(result);\n this.searchRef.current!.focus();\n event.preventDefault();\n event.stopPropagation();\n };\n}\n","import { createRef, Fragment, h, RefObject } from 'preact';\nimport {\n AbstractSelect,\n DEFAULT_PROPS as ABSTRACT_DEFAULT_PROPS,\n Props as AbstractSelectProps,\n State as AbstractSelectState\n} from './abstract-select';\nimport * as announce from './announce';\nimport { Dropdown } from './dropdown';\nimport { Remove, Toggle } from './icons';\nimport { ResultList } from './result-list';\nimport { style } from './style';\nimport { cn, DeepPartial, extend, Key, scope } from './util';\n\nconst forceImportOfH = h;\n\nexport interface Props extends AbstractSelectProps {\n value: any;\n label: string;\n comboboxLabel: string;\n onChange: (value: any) => void;\n allowClear?: boolean;\n placeholder?: string;\n}\n\ninterface State extends AbstractSelectState {\n value: any;\n}\n\nconst DEFAULT_PROPS = extend({}, ABSTRACT_DEFAULT_PROPS, { allowClear: false });\n\nexport class SingleSelect extends AbstractSelect<Props, State> {\n private containerRef: RefObject<HTMLElement>;\n private dropdownRef: RefObject<HTMLElement>;\n private bodyRef: RefObject<HTMLElement>;\n private searchRef: RefObject<HTMLInputElement>;\n private valueRef: RefObject<HTMLElement>;\n\n public static defaultProps = DEFAULT_PROPS;\n\n constructor(props) {\n super(props);\n\n this.searchRef = createRef();\n this.bodyRef = createRef();\n this.containerRef = createRef();\n this.dropdownRef = createRef();\n this.valueRef = createRef();\n\n this.state = extend(this.state, { value: this.props.value });\n }\n\n public componentWillMount() {\n announce.initialize();\n }\n\n public render(props, state) {\n const { minimumCharacters, tabIndex, label, allowClear, placeholder } = props;\n const { value, open, loading, focused, search, results } = state;\n\n let classes = cn(style.control, style.single, { [style.open]: open }, { [style.focused]: focused });\n if (props.containerClass && props.containerClass.length > 0) {\n classes += ' ' + props.containerClass;\n }\n const resultsDomId = this.namespace + '-results';\n const optionDomId = this.namespace + '-val';\n const resultsNamespace = this.namespace + '-res-';\n const dictionary = this.dictionary;\n const showPlaceholder = !value && placeholder && placeholder.length > 0;\n const placeholderDomId = this.namespace + '-placeholder';\n return (\n <Fragment>\n <div\n class={classes}\n ref={this.containerRef}\n onFocusCapture={this.onFocusIn}\n onBlurCapture={this.onFocusOut}\n tabIndex={-1}\n onMouseDown={this.onContainerMouseDown}\n >\n <div class={cn(style.body)} ref={this.bodyRef}>\n <div\n aria-label={label}\n role='listbox'\n aria-activedescendant={optionDomId}\n aria-expanded='false'\n class={cn(style.value)}\n tabIndex={tabIndex}\n ref={this.valueRef}\n onKeyDown={this.onValueKeyDown}\n aria-describedby={showPlaceholder ? placeholderDomId : undefined}\n >\n {value && (\n <div\n class={style.item}\n role='option'\n aria-selected='true'\n aria-label={this.getItemLabel(value)}\n aria-setsize={-1}\n aria-posinset={-1}\n id={optionDomId}\n >\n <div class={style.content}>{this.renderValue(value)}</div>\n </div>\n )}\n {showPlaceholder && (\n <div class={cn(style.placeholder)} id={placeholderDomId}>\n {placeholder}\n </div>\n )}\n </div>\n {scope(() => {\n const disabled = !value;\n const clazz = cn(style.remove, { [style.offscreen]: !allowClear });\n return (\n <button\n class={clazz}\n onClick={this.onClearClick}\n onFocus={this.onClearFocus}\n onMouseDown={this.onClearMouseDown}\n disabled={disabled}\n aria-disabled={disabled}\n title={dictionary.clearButtonTitle()}\n >\n <span>\n <Remove width={20} height={20} />\n </span>\n </button>\n );\n })}\n <div className={style.toggle} aria-hidden={true}>\n <Toggle height={20} width={20} />\n </div>\n </div>\n </div>\n {open && (\n <Dropdown\n class={cn(style.dropdown, style.single)}\n onMouseDown={this.onDropdownMouseDown}\n controlRef={this.containerRef}\n dropdownRef={this.dropdownRef}\n onFocusOut={this.onFocusOut}\n >\n <div>\n <input\n type='text'\n ref={this.searchRef}\n value={search}\n class={cn(style.search)}\n role='combobox'\n aria-autocomplete='list'\n aria-haspopup='true'\n aria-owns={resultsDomId}\n aria-controls={resultsDomId}\n aria-expanded={open ? 'true' : 'false'}\n aria-activedescendant={\n results.active >= 0 ? resultsNamespace + results.active : undefined\n }\n aria-busy={loading}\n onInput={this.onSearchInput}\n onKeyDown={this.onSearchKeyDown}\n onFocus={this.onSearchFocus}\n />\n <ResultList\n namespace={resultsNamespace}\n minimumCharacters={minimumCharacters}\n dictionary={this.dictionary}\n itemLabel={this.getItemLabel}\n renderItem={this.renderResult}\n listboxDomId={resultsDomId}\n search={search}\n {...this.state.results}\n loading={loading}\n onResultClicked={this.onResultClicked}\n onMouseMove={this.onResultMouseMove}\n onLoadMore={this.onLoadMoreResults}\n />\n </div>\n </Dropdown>\n )}\n </Fragment>\n );\n }\n\n public componentDidMount() {\n const css = this.props.containerStyle;\n if (css && css.length > 0) {\n this.containerRef.current!.setAttribute('style', css);\n }\n }\n\n private onLoadMoreResults = () => {\n this.loadMore();\n };\n\n public onFocusIn = (event: FocusEvent) => {\n this.updateState({ focused: true });\n\n const { openOnFocus } = this.props;\n const { open } = this.state;\n if (!open && openOnFocus && this.searchRef.current !== document.activeElement) {\n this.open();\n }\n };\n\n public onFocusOut = (event: FocusEvent) => {\n const receiver = event.relatedTarget as Node;\n const container = this.containerRef.current;\n const dropdown = this.dropdownRef.current;\n const search = this.searchRef.current;\n\n const focused =\n container.contains(receiver) ||\n (dropdown && (dropdown === receiver || dropdown.contains(receiver))) ||\n receiver === search;\n\n if (this.state.focused !== focused) {\n this.updateState({\n focused\n });\n }\n if (!focused) {\n this.closeIfOpen();\n }\n };\n\n public closeIfOpen() {\n if (this.state.open) {\n this.close();\n }\n }\n\n public close = (state?: DeepPartial<State>) => {\n const control = this;\n control.valueRef.current!.focus();\n this.updateState([\n state,\n {\n open: false,\n results: { results: null },\n search: ''\n }\n ]);\n };\n\n private getValueAsArray() {\n return this.state.value ? [this.state.value] : [];\n }\n\n private onContainerMouseDown = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n if (this.state.open) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private open(query: string = '') {\n this.search(query, this.getValueAsArray(), { open: true }, () => {\n this.searchRef.current.focus();\n });\n }\n\n private onSearchFocus = (event: FocusEvent) => {\n this.updateState({ focused: true });\n };\n\n private onSearchInput = (event: Event) => {\n const value = (event.target as HTMLInputElement).value;\n this.search(value, this.getValueAsArray());\n };\n\n private onClearFocus = (event: FocusEvent) => {\n this.closeIfOpen();\n };\n\n private onClearClick = (event: Event) => {\n this.selectResult(undefined);\n event.preventDefault();\n event.stopPropagation();\n };\n\n private onClearMouseDown = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n public onSearchKeyDown = (event: KeyboardEvent) => {\n if (this.handleResultNavigationKeyDown(event)) {\n return;\n }\n\n const { open } = this.state;\n\n if (open && this.hasSearchResults) {\n switch (event.key) {\n case Key.Enter:\n this.selectActiveResult();\n event.preventDefault();\n event.stopPropagation();\n break;\n case Key.Escape:\n this.close();\n event.preventDefault();\n event.stopPropagation();\n break;\n case Key.Tab:\n // TODO select on tab?\n this.close();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n public selectActiveResult = () => {\n const { active } = this.state.results;\n if (active >= 0) {\n this.selectResult(this.getSelectedSearchResult());\n }\n };\n\n public selectResult = (result: any) => {\n const { onChange } = this.props;\n\n this.close({ value: result });\n\n // TODO announce?\n // const label = this.getItemLabel(result);\n\n onChange(result);\n };\n\n private onValueKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case Key.Space:\n case Key.ArrowDown:\n case Key.Down:\n this.open();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.key.length === 1) {\n // focus on search which will put the printable character into the field\n this.open();\n }\n };\n\n private onDropdownMouseDown = (event: MouseEvent) => {\n this.searchRef.current.focus();\n event.preventDefault();\n event.stopPropagation();\n };\n\n public onResultMouseMove = (index: number, event: MouseEvent) => {\n this.selectSearchResult(index);\n };\n\n public onResultClicked = (result: any, event: MouseEvent) => {\n this.selectResult(result);\n event.preventDefault();\n event.stopPropagation();\n };\n}\n","import { QueryFunction, QueryResult } from '../../control/src/search-controller';\nimport { extend } from '../../control/src/util';\nexport interface Ajax {\n url: string;\n params: (term: string, page: number) => object;\n process: (data: string) => QueryResult;\n}\n\nexport function createQueryFromAjax(ajax: Ajax): QueryFunction {\n ajax = extend({}, ajax, {\n params(term: string, page: number) {\n return { term, page };\n },\n process(data: string) {\n const json = JSON.parse(data);\n return {\n more: json.more,\n values: json.values\n };\n }\n });\n\n return (term: string, page: number, token: string) => {\n return new Promise((resolve, reject) => {\n let url = ajax.url;\n const params = ajax.params(term, page);\n if (params) {\n let separator = url.indexOf('?') >= 0 ? '&' : '?';\n Object.entries(params).forEach(([key, value]) => {\n url += separator;\n separator = '&';\n url += encodeURIComponent(key) + '=' + encodeURIComponent(value);\n });\n }\n\n const request = new XMLHttpRequest();\n request.open('GET', url, true);\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const data = ajax.process(request.responseText);\n resolve({ values: data.values, more: data.more, token });\n } else {\n reject();\n }\n };\n request.onerror = reject;\n request.send();\n });\n };\n}\n","export class Store {\n private static stores = new WeakMap();\n\n private store = new Map();\n\n public get(key: string): any {\n return this.store.get(key);\n }\n public set(key: string, value: any) {\n this.store.set(key, value);\n }\n\n public static getStore(key: any): Store {\n let store = Store.stores.get(key);\n if (!store) {\n store = new Store();\n Store.stores.set(key, store);\n }\n return store;\n }\n\n public static hasStore(key: any) {\n return Store.stores.has(key);\n }\n\n public static removeStore(key: any) {\n Store.stores.delete(key);\n }\n}\n","/** jsx:pragma h */\nimport { Component, h, render } from 'preact';\nimport { ItemRenderer, QueryFunction } from '../../control/src/abstract-select';\nimport { Dictionary } from '../../control/src/dictionary';\nimport { MultiSelect } from '../../control/src/multi-select';\nimport '../../control/src/select25.scss';\nimport { SingleSelect } from '../../control/src/single-select';\nimport { extend } from '../../control/src/util';\nimport { Ajax, createQueryFromAjax } from './ajax';\nimport { Store } from './store';\n\nconst forceImportOfH = h;\n\nenum StoreKeys {\n targetElement = 'te'\n}\n\nexport interface Options {\n multiple: boolean;\n containerStyle?: string;\n containerClass?: string;\n hiddenValue?: (values: any, options: Options) => string;\n tabIndex?: number;\n itemId: ((item: any) => string) | string;\n itemLabel: ((item: any) => string) | string;\n valueContent?: ItemRenderer;\n resultContent?: ItemRenderer;\n query?: QueryFunction;\n ajax?: Ajax;\n quiet?: number;\n minimumCharacters?: number;\n openOnFocus?: boolean;\n dictionary?: string | Dictionary;\n\n value: any;\n values: any[];\n allowClear?: boolean;\n placeholder?: string;\n\n /** Single Select Label */\n label?: string;\n\n /** Multi Select Selected Values Listbox Label */\n valuesLabel?: string;\n /** Multi Select Add Value Combobox Label */\n comboboxLabel?: string;\n\n allowDuplicates: boolean;\n}\n\nconst DEFAULT_OPTIONS = {\n allowClear: false,\n dictionary: 'en_us',\n hiddenValue: (values: any, options: Options) => {\n const id = (item: any) => {\n if (typeof options.itemId === 'function') {\n return options.itemId(item);\n } else {\n return '' + item[options.itemId];\n }\n };\n\n if (values) {\n if (Array.isArray(values)) {\n if (values.length > 0) {\n return values.map(id).join(',');\n } else {\n return '';\n }\n } else {\n return id(values);\n }\n } else {\n return '';\n }\n },\n minimumCharacters: 0,\n multiple: false,\n openOnFocus: false\n};\n\nfunction triggerOnChange(element: HTMLElement, data: any) {\n const event = document.createEvent('HTMLEvents');\n event.initEvent('change', false, true);\n event[data] = data;\n element.dispatchEvent(event);\n}\n\nclass MultiSelectWrapper extends Component<\n {\n element: HTMLInputElement;\n options: Options;\n },\n { values: any }\n> {\n constructor(props) {\n super(props);\n this.state = { values: props.options.values };\n }\n\n public componentDidUpdate() {\n this.setHiddenValue(this.state.values);\n }\n\n public componentDidMount() {\n this.setHiddenValue(this.state.values);\n }\n\n public render(props, state, context) {\n const opts = this.props.options;\n return (\n <MultiSelect\n containerClass={opts.containerClass}\n containerStyle={opts.containerStyle}\n valuesLabel={opts.valuesLabel}\n comboboxLabel={opts.comboboxLabel}\n itemId={opts.itemId}\n itemLabel={opts.itemLabel}\n valueContent={opts.valueContent}\n resultContent={opts.resultContent}\n query={opts.query}\n quiet={opts.quiet}\n minimumCharacters={opts.minimumCharacters}\n openOnFocus={opts.openOnFocus}\n dictionary={opts.dictionary}\n tabIndex={opts.tabIndex}\n allowDuplicates={opts.allowDuplicates}\n values={this.state.values}\n onChange={this.onChange}\n />\n );\n }\n\n public onChange = (values: any[]) => {\n this.setState({ values });\n this.setHiddenValue(values);\n triggerOnChange(this.props.element, values);\n };\n\n private setHiddenValue(values: any) {\n const { element, options } = this.props;\n element.value = options.hiddenValue(values, options);\n }\n}\n\nclass SingleSelectWrapper extends Component<\n {\n options: Options;\n element: HTMLInputElement;\n },\n { value: any }\n> {\n constructor(props) {\n super(props);\n this.state = { value: props.options.value };\n }\n\n public componentDidMount() {\n this.setHiddenValue(this.state.value);\n }\n\n public componentDidUpdate() {\n this.setHiddenValue(this.state.value);\n }\n\n public render(props, state, context) {\n const opts = this.props.options;\n return (\n <SingleSelect\n label={opts.label}\n comboboxLabel={opts.comboboxLabel}\n containerClass={opts.containerClass}\n containerStyle={opts.containerStyle}\n allowClear={opts.allowClear}\n placeholder={opts.placeholder}\n itemId={opts.itemId}\n itemLabel={opts.itemLabel}\n valueContent={opts.valueContent}\n resultContent={opts.resultContent}\n query={opts.query}\n quiet={opts.quiet}\n minimumCharacters={opts.minimumCharacters}\n openOnFocus={opts.openOnFocus} // TODO\n dictionary={opts.dictionary}\n tabIndex={opts.tabIndex}\n allowDuplicates={opts.allowDuplicates}\n value={this.state.value}\n onChange={this.onChange}\n />\n );\n }\n\n public onChange = (value: any) => {\n this.setState({ value });\n this.setHiddenValue(value);\n triggerOnChange(this.props.element, value);\n };\n\n private setHiddenValue(value: any) {\n const { element, options } = this.props;\n element.value = options.hiddenValue(value, options);\n }\n}\n\nfunction create<T>(element: HTMLInputElement, options: Options) {\n // TODO make sure we are attached to hidden input\n\n const store = Store.getStore(element);\n\n options = extend({}, DEFAULT_OPTIONS, options);\n if (!options.query && options.ajax) {\n options.query = createQueryFromAjax(options.ajax);\n }\n\n if (!options.tabIndex && element.tabIndex) {\n options.tabIndex = element.tabIndex;\n }\n\n if (element.getAttribute('s25-style')) {\n let style = options.containerStyle || '';\n if (style.length > 0) {\n style += ';';\n }\n style += element.getAttribute('s25-style');\n options.containerStyle = style;\n }\n\n if (element.getAttribute('s25-class')) {\n let clazz = options.containerClass || '';\n if (clazz.length > 0) {\n clazz += ' ';\n }\n clazz += element.getAttribute('s25-class');\n options.containerClass = clazz;\n }\n\n // create placeholder element into which the control will be rendered\n const parentElement = element.parentElement;\n const targetElement = document.createElement('div');\n parentElement.insertBefore(targetElement, element);\n\n store.set(StoreKeys.targetElement, targetElement);\n\n // render the replacement\n if (options.multiple) {\n render(<MultiSelectWrapper element={element} options={options} />, parentElement, targetElement);\n } else {\n render(<SingleSelectWrapper element={element} options={options} />, parentElement, targetElement);\n }\n}\n\nfunction destroy(element: HTMLElement) {\n if (!Store.hasStore(element)) {\n return;\n }\n const store = Store.getStore(element);\n const targetElement = store.get(StoreKeys.targetElement);\n const parentElement = element.parentElement;\n render(null, parentElement, targetElement);\n parentElement.removeChild(targetElement);\n Store.removeStore(element);\n}\n\nconst select25 = {\n create,\n destroy\n};\n\nexport { select25 };\n\ndeclare global {\n interface Window {\n select25: typeof select25;\n }\n}\n\nwindow.select25 = select25;\n","var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else {\n window.location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '<div style=\"background: black; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; opacity: 0.85; font-family: Menlo, Consolas, monospace; z-index: 9999;\">' +\n '<span style=\"background: red; padding: 2px 4px; border-radius: 2px;\">ERROR</span>' +\n '<span style=\"top: 2px; margin-left: 5px; position: relative;\">🚨</span>' +\n '<div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">' + message.innerHTML + '</div>' +\n '<pre>' + stackTrace.innerHTML + '</pre>' +\n '</div>'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]} |