govuk_publishing_components 12.13.0 → 12.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/accessible-autocomplete.js +37 -0
  3. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +6 -5
  4. data/app/assets/javascripts/govuk_publishing_components/components/copy-to-clipboard.js +15 -15
  5. data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +2 -4
  6. data/app/assets/javascripts/govuk_publishing_components/components/initial-focus.js +8 -8
  7. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +3 -3
  8. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_accessible-autocomplete.scss +16 -0
  10. data/app/views/govuk_publishing_components/components/_accessible_autocomplete.html.erb +24 -0
  11. data/app/views/govuk_publishing_components/components/docs/accessible_autocomplete.yml +42 -0
  12. data/config/initializers/assets.rb +1 -0
  13. data/lib/govuk_publishing_components/version.rb +1 -1
  14. data/node_modules/accessible-autocomplete/CHANGELOG.md +269 -0
  15. data/node_modules/accessible-autocomplete/CONTRIBUTING.md +150 -0
  16. data/node_modules/accessible-autocomplete/LICENSE.txt +20 -0
  17. data/node_modules/accessible-autocomplete/Procfile +1 -0
  18. data/node_modules/accessible-autocomplete/README.md +416 -0
  19. data/node_modules/accessible-autocomplete/accessibility-criteria.md +42 -0
  20. data/node_modules/accessible-autocomplete/app.json +15 -0
  21. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css +1 -0
  22. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js +2 -0
  23. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map +1 -0
  24. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js +2 -0
  25. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map +1 -0
  26. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js +2 -0
  27. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map +1 -0
  28. data/node_modules/accessible-autocomplete/examples/form.html +671 -0
  29. data/node_modules/accessible-autocomplete/examples/index.html +616 -0
  30. data/node_modules/accessible-autocomplete/examples/preact/index.html +346 -0
  31. data/node_modules/accessible-autocomplete/examples/react/index.html +347 -0
  32. data/node_modules/accessible-autocomplete/package.json +192 -0
  33. data/node_modules/accessible-autocomplete/preact.js +1 -0
  34. data/node_modules/accessible-autocomplete/react.js +1 -0
  35. data/node_modules/accessible-autocomplete/scripts/check-staged.js +14 -0
  36. data/node_modules/accessible-autocomplete/src/autocomplete.css +141 -0
  37. data/node_modules/accessible-autocomplete/src/autocomplete.js +524 -0
  38. data/node_modules/accessible-autocomplete/src/dropdown-arrow-down.js +11 -0
  39. data/node_modules/accessible-autocomplete/src/status.js +80 -0
  40. data/node_modules/accessible-autocomplete/src/wrapper.js +60 -0
  41. data/node_modules/accessible-autocomplete/test/functional/dropdown-arrow-down.js +44 -0
  42. data/node_modules/accessible-autocomplete/test/functional/index.js +485 -0
  43. data/node_modules/accessible-autocomplete/test/functional/wrapper.js +267 -0
  44. data/node_modules/accessible-autocomplete/test/integration/index.js +188 -0
  45. data/node_modules/accessible-autocomplete/test/karma.config.js +42 -0
  46. data/node_modules/accessible-autocomplete/test/wdio.config.js +80 -0
  47. data/node_modules/accessible-autocomplete/webpack.config.babel.js +193 -0
  48. data/node_modules/preact/LICENSE +21 -0
  49. data/node_modules/preact/README.md +580 -0
  50. data/node_modules/preact/debug.js +112 -0
  51. data/node_modules/preact/debug.js.map +1 -0
  52. data/node_modules/preact/debug/index.js +121 -0
  53. data/node_modules/preact/devtools.js +403 -0
  54. data/node_modules/preact/devtools.js.map +1 -0
  55. data/node_modules/preact/devtools/devtools.js +395 -0
  56. data/node_modules/preact/devtools/index.js +4 -0
  57. data/node_modules/preact/dist/preact.d.ts +891 -0
  58. data/node_modules/preact/dist/preact.dev.js +718 -0
  59. data/node_modules/preact/dist/preact.dev.js.map +1 -0
  60. data/node_modules/preact/dist/preact.js +408 -0
  61. data/node_modules/preact/dist/preact.js.flow +13 -0
  62. data/node_modules/preact/dist/preact.js.map +1 -0
  63. data/node_modules/preact/dist/preact.min.js +2 -0
  64. data/node_modules/preact/dist/preact.min.js.map +1 -0
  65. data/node_modules/preact/dist/preact.mjs +715 -0
  66. data/node_modules/preact/dist/preact.mjs.map +1 -0
  67. data/node_modules/preact/package.json +218 -0
  68. data/node_modules/preact/src/clone-element.js +18 -0
  69. data/node_modules/preact/src/component.js +90 -0
  70. data/node_modules/preact/src/constants.js +17 -0
  71. data/node_modules/preact/src/dom/index.js +138 -0
  72. data/node_modules/preact/src/h.js +86 -0
  73. data/node_modules/preact/src/options.js +22 -0
  74. data/node_modules/preact/src/preact.d.ts +891 -0
  75. data/node_modules/preact/src/preact.js +26 -0
  76. data/node_modules/preact/src/preact.js.flow +13 -0
  77. data/node_modules/preact/src/render-queue.js +28 -0
  78. data/node_modules/preact/src/render.js +22 -0
  79. data/node_modules/preact/src/util.js +19 -0
  80. data/node_modules/preact/src/vdom/component-recycler.js +48 -0
  81. data/node_modules/preact/src/vdom/component.js +296 -0
  82. data/node_modules/preact/src/vdom/diff.js +336 -0
  83. data/node_modules/preact/src/vdom/index.js +54 -0
  84. data/node_modules/preact/src/vnode.js +9 -0
  85. data/node_modules/preact/typings.json +5 -0
  86. metadata +78 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.mjs","sources":["../src/vnode.js","../src/options.js","../src/h.js","../src/util.js","../src/clone-element.js","../src/constants.js","../src/render-queue.js","../src/vdom/index.js","../src/dom/index.js","../src/vdom/diff.js","../src/vdom/component-recycler.js","../src/vdom/component.js","../src/component.js","../src/render.js","../src/preact.js"],"sourcesContent":["/**\n * Virtual DOM Node\n * @typedef VNode\n * @property {string | function} nodeName The string of the DOM node to create or Component constructor to render\n * @property {Array<VNode | string>} children The children of node\n * @property {string | number | undefined} key The key used to identify this VNode in a list\n * @property {object} attributes The properties of this VNode\n */\nexport const VNode = function VNode() {};\n","/**\n * @typedef {import('./component').Component} Component\n * @typedef {import('./vnode').VNode} VNode\n */\n\n/**\n * Global options\n * @public\n * @typedef Options\n * @property {boolean} [syncComponentUpdates] If `true`, `prop` changes trigger synchronous component updates. Defaults to true.\n * @property {(vnode: VNode) => void} [vnode] Processes all created VNodes.\n * @property {(component: Component) => void} [afterMount] Hook invoked after a component is mounted.\n * @property {(component: Component) => void} [afterUpdate] Hook invoked after the DOM is updated with a component's latest render.\n * @property {(component: Component) => void} [beforeUnmount] Hook invoked immediately before a component is unmounted.\n * @property {(rerender: function) => void} [debounceRendering] Hook invoked whenever a rerender is requested. Can be used to debounce rerenders.\n * @property {(event: Event) => Event | void} [event] Hook invoked before any Preact event listeners. The return value (if any) replaces the native browser event given to event listeners\n */\n\n/** @type {Options} */\nconst options = {};\n\nexport default options;\n","import { VNode } from './vnode';\nimport options from './options';\n\n\nconst stack = [];\n\nconst EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility\n * reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a\n * lightweight representation of the structure of a DOM tree. This structure can\n * be realized by recursively comparing it against the current _actual_ DOM\n * structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `<div id=\"foo\" name=\"bar\">Hello!</div>`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string | function} nodeName An element name. Ex: `div`, `a`, `span`, etc.\n * @param {object | null} attributes Any attributes/props to set on the created element.\n * @param {VNode[]} [rest] Additional arguments are taken to be children to\n * append. Can be infinitely nested Arrays.\n *\n * @public\n */\nexport function h(nodeName, attributes) {\n\tlet children=EMPTY_CHILDREN, lastSimple, child, simple, i;\n\tfor (i=arguments.length; i-- > 2; ) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children!=null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop!==undefined) {\n\t\t\tfor (i=child.length; i--; ) stack.push(child[i]);\n\t\t}\n\t\telse {\n\t\t\tif (typeof child==='boolean') child = null;\n\n\t\t\tif ((simple = typeof nodeName!=='function')) {\n\t\t\t\tif (child==null) child = '';\n\t\t\t\telse if (typeof child==='number') child = String(child);\n\t\t\t\telse if (typeof child!=='string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length-1] += child;\n\t\t\t}\n\t\t\telse if (children===EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tlet p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes==null ? undefined : attributes;\n\tp.key = attributes==null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode!==undefined) options.vnode(p);\n\n\treturn p;\n}\n","/**\n * Copy all properties from `props` onto `obj`.\n * @param {object} obj Object onto which properties should be copied.\n * @param {object} props Object from which to copy properties.\n * @returns {object}\n * @private\n */\nexport function extend(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer = typeof Promise=='function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n","import { extend } from './util';\nimport { h } from './h';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {import('./vnode').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./vnode').VNode>} [rest] Any additional arguments will be used as replacement\n * children.\n */\nexport function cloneElement(vnode, props) {\n\treturn h(\n\t\tvnode.nodeName,\n\t\textend(extend({}, vnode.attributes), props),\n\t\targuments.length>2 ? [].slice.call(arguments, 2) : vnode.children\n\t);\n}\n","// render modes\n\n/** Do not re-render a component */\nexport const NO_RENDER = 0;\n/** Synchronously re-render a component and its children */\nexport const SYNC_RENDER = 1;\n/** Synchronously re-render a component, even if its lifecycle methods attempt to prevent it. */\nexport const FORCE_RENDER = 2;\n/** Queue asynchronous re-render of a component and it's children */\nexport const ASYNC_RENDER = 3;\n\n\nexport const ATTR_KEY = '__preactattr_';\n\n/** DOM properties that should NOT have \"px\" added when numeric */\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n","import options from './options';\nimport { defer } from './util';\nimport { renderComponent } from './vdom/component';\n\n/**\n * Managed queue of dirty components to be re-rendered\n * @type {Array<import('./component').Component>}\n */\nlet items = [];\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./component').Component} component The component to rerender\n */\nexport function enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component)==1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\n/** Rerender all enqueued dirty components */\nexport function rerender() {\n\tlet p, list = items;\n\titems = [];\n\twhile ( (p = list.pop()) ) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n","import { extend } from '../util';\n\n\n/**\n * Check if two nodes are equivalent.\n * @param {import('../dom').PreactElement} node DOM Node to compare\n * @param {import('../vnode').VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors\n * when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode==='string' || typeof vnode==='number') {\n\t\treturn node.splitText!==undefined;\n\t}\n\tif (typeof vnode.nodeName==='string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor===vnode.nodeName;\n}\n\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n * @param {import('../dom').PreactElement} node A DOM Element to inspect the name of.\n * @param {string} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName===nodeName || node.nodeName.toLowerCase()===nodeName.toLowerCase();\n}\n\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n * @param {import('../vnode').VNode} vnode The VNode to get props for\n * @returns {object} The props to use for this VNode\n */\nexport function getNodeProps(vnode) {\n\tlet props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tlet defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps!==undefined) {\n\t\tfor (let i in defaultProps) {\n\t\t\tif (props[i]===undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * A DOM event listener\n * @typedef {(e: Event) => void} EventListner\n */\n\n/**\n * A mapping of event types to event listeners\n * @typedef {Object.<string, EventListener>} EventListenerMap\n */\n\n/**\n * Properties Preact adds to elements it creates\n * @typedef PreactElementExtensions\n * @property {string} [normalizedNodeName] A normalized node name to use in diffing\n * @property {EventListenerMap} [_listeners] A map of event listeners added by components to this DOM node\n * @property {import('../component').Component} [_component] The component that rendered this DOM node\n * @property {function} [_componentConstructor] The constructor of the component that rendered this DOM node\n */\n\n/**\n * A DOM element that has been extended with Preact properties\n * @typedef {Element & ElementCSSInlineStyle & PreactElementExtensions} PreactElement\n */\n\n/**\n * Create an element with the given nodeName.\n * @param {string} nodeName The DOM node to create\n * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG\n * namespace.\n * @returns {PreactElement} The created DOM node\n */\nexport function createNode(nodeName, isSvg) {\n\t/** @type {PreactElement} */\n\tlet node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n\n/**\n * Remove a child node from its parent if attached.\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\n\n/**\n * Set a named attribute on the given Node, with special behavior for some names\n * and event handlers. If `value` is `null`, the attribute/handler will be\n * removed.\n * @param {PreactElement} node An element to mutate\n * @param {string} name The name/key to set, such as an event or attribute name\n * @param {*} old The last value that was set for this name/node pair\n * @param {*} value An attribute value, such as a function to be used as an\n * event handler\n * @param {boolean} isSvg Are we currently diffing inside an svg?\n * @private\n */\nexport function setAccessor(node, name, old, value, isSvg) {\n\tif (name==='className') name = 'class';\n\n\n\tif (name==='key') {\n\t\t// ignore\n\t}\n\telse if (name==='ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t}\n\telse if (name==='class' && !isSvg) {\n\t\tnode.className = value || '';\n\t}\n\telse if (name==='style') {\n\t\tif (!value || typeof value==='string' || typeof old==='string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value==='object') {\n\t\t\tif (typeof old!=='string') {\n\t\t\t\tfor (let i in old) if (!(i in value)) node.style[i] = '';\n\t\t\t}\n\t\t\tfor (let i in value) {\n\t\t\t\tnode.style[i] = typeof value[i]==='number' && IS_NON_DIMENSIONAL.test(i)===false ? (value[i]+'px') : value[i];\n\t\t\t}\n\t\t}\n\t}\n\telse if (name==='dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t}\n\telse if (name[0]=='o' && name[1]=='n') {\n\t\tlet useCapture = name !== (name=name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\telse {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t}\n\telse if (name!=='list' && name!=='type' && !isSvg && name in node) {\n\t\t// Attempt to set a DOM property to the given value.\n\t\t// IE & FF throw for certain property-value combinations.\n\t\ttry {\n\t\t\tnode[name] = value==null ? '' : value;\n\t\t} catch (e) { }\n\t\tif ((value==null || value===false) && name!='spellcheck') node.removeAttribute(name);\n\t}\n\telse {\n\t\tlet ns = isSvg && (name !== (name = name.replace(/^xlink:?/, '')));\n\t\t// spellcheck is treated differently than all other boolean values and\n\t\t// should not be removed when the value is `false`. See:\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-spellcheck\n\t\tif (value==null || value===false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());\n\t\t\telse node.removeAttribute(name);\n\t\t}\n\t\telse if (typeof value!=='function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);\n\t\t\telse node.setAttribute(name, value);\n\t\t}\n\t}\n}\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 { ATTR_KEY } from '../constants';\nimport { isSameNodeType, isNamedNode } from './index';\nimport { buildComponentFromVNode } from './component';\nimport { createNode, setAccessor } from '../dom/index';\nimport { unmountComponent } from './component';\nimport options from '../options';\nimport { removeNode } from '../dom/index';\n\n/**\n * Queue of components that have been mounted and are awaiting componentDidMount\n * @type {Array<import('../component').Component>}\n */\nexport const mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nexport let diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nlet isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nexport function flushMounts() {\n\tlet c;\n\twhile ((c=mounts.pop())) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n\n/**\n * Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`\n * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing\n * the desired DOM structure\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {Element} parent ?\n * @param {boolean} componentRoot ?\n * @returns {import('../dom').PreactElement} The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent!=null && parent.ownerSVGElement!==undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom!=null && !(ATTR_KEY in dom);\n\t}\n\n\tlet ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode!==parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (!--diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n\n/**\n * Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing.\n * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`\n * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {boolean} [componentRoot] ?\n * @private\n */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tlet out = dom,\n\t\tprevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode==null || typeof vnode==='boolean') vnode = '';\n\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode==='string' || typeof vnode==='number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText!==undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue!=vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout[ATTR_KEY] = true;\n\n\t\treturn out;\n\t}\n\n\n\t// If the VNode represents a Component, perform a component diff:\n\tlet vnodeName = vnode.nodeName;\n\tif (typeof vnodeName==='function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName==='svg' ? true : vnodeName==='foreignObject' ? false : isSvgMode;\n\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) out.appendChild(dom.firstChild);\n\n\t\t\t// if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\n\tlet fc = out.firstChild,\n\t\tprops = out[ATTR_KEY],\n\t\tvchildren = vnode.children;\n\n\tif (props==null) {\n\t\tprops = out[ATTR_KEY] = {};\n\t\tfor (let a=out.attributes, i=a.length; i--; ) props[a[i].name] = a[i].value;\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length===1 && typeof vchildren[0]==='string' && fc!=null && fc.splitText!==undefined && fc.nextSibling==null) {\n\t\tif (fc.nodeValue!=vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc!=null) {\n\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML!=null);\n\t}\n\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n\n/**\n * Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {import('../dom').PreactElement} dom Element whose children should be compared & mutated\n * @param {Array<import('../vnode').VNode>} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {object} context Implicitly descendant context object (from most\n * recent `getChildContext()`)\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {boolean} isHydrating if `true`, consumes externally created elements\n * similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tlet originalChildren = dom.childNodes,\n\t\tchildren = [],\n\t\tkeyed = {},\n\t\tkeyedLen = 0,\n\t\tmin = 0,\n\t\tlen = originalChildren.length,\n\t\tchildrenLen = 0,\n\t\tvlen = vchildren ? vchildren.length : 0,\n\t\tj, c, f, vchild, child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len!==0) {\n\t\tfor (let i=0; i<len; i++) {\n\t\t\tlet child = originalChildren[i],\n\t\t\t\tprops = child[ATTR_KEY],\n\t\t\t\tkey = vlen && props ? child._component ? child._component.__key : props.key : null;\n\t\t\tif (key!=null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = child;\n\t\t\t}\n\t\t\telse if (props || (child.splitText!==undefined ? (isHydrating ? child.nodeValue.trim() : true) : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen!==0) {\n\t\tfor (let i=0; i<vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tlet key = vchild.key;\n\t\t\tif (key!=null) {\n\t\t\t\tif (keyedLen && keyed[key]!==undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (min<childrenLen) {\n\t\t\t\tfor (j=min; j<childrenLen; j++) {\n\t\t\t\t\tif (children[j]!==undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\tif (j===childrenLen-1) childrenLen--;\n\t\t\t\t\t\tif (j===min) min++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child!==dom && child!==f) {\n\t\t\t\tif (f==null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t}\n\t\t\t\telse if (child===f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (let i in keyed) if (keyed[i]!==undefined) recollectNodeTree(keyed[i], false);\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min<=childrenLen) {\n\t\tif ((child = children[childrenLen--])!==undefined) recollectNodeTree(child, false);\n\t}\n}\n\n\n\n/**\n * Recursively recycle (or just unmount) a node and its descendants.\n * @param {import('../dom').PreactElement} node DOM node to start\n * unmount/removal from\n * @param {boolean} [unmountOnly=false] If `true`, only triggers unmount\n * lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n\tlet component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t}\n\telse {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node[ATTR_KEY]!=null && node[ATTR_KEY].ref) node[ATTR_KEY].ref(null);\n\n\t\tif (unmountOnly===false || node[ATTR_KEY]==null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n\n/**\n * Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tlet next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n\n/**\n * Apply differences in attributes from a VNode to the given DOM Element.\n * @param {import('../dom').PreactElement} dom Element with attributes to diff `attrs` against\n * @param {object} attrs The desired end-state key-value attribute pairs\n * @param {object} old Current/previous attributes (from previous VNode or\n * element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tlet name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name]!=null) && old[name]!=null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name!=='children' && name!=='innerHTML' && (!(name in old) || attrs[name]!==(name==='value' || name==='checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n","import { Component } from '../component';\n\n/**\n * Retains a pool of Components for re-use.\n * @type {Component[]}\n * @private\n */\nexport const recyclerComponents = [];\n\n\n/**\n * Create a component. Normalizes differences between PFC's and classful\n * Components.\n * @param {function} Ctor The constructor of the component to create\n * @param {object} props The initial props of the component\n * @param {object} context The initial context of the component\n * @returns {import('../component').Component}\n */\nexport function createComponent(Ctor, props, context) {\n\tlet inst, i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t}\n\telse {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor===Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { SYNC_RENDER, NO_RENDER, FORCE_RENDER, ASYNC_RENDER, ATTR_KEY } from '../constants';\nimport options from '../options';\nimport { extend } from '../util';\nimport { enqueueRender } from '../render-queue';\nimport { getNodeProps } from './index';\nimport { diff, mounts, diffLevel, flushMounts, recollectNodeTree, removeChildren } from './diff';\nimport { createComponent, recyclerComponents } from './component-recycler';\nimport { removeNode } from '../dom/index';\n\n/**\n * Set a component's `props` and possibly re-render the component\n * @param {import('../component').Component} component The Component to set props on\n * @param {object} props The new props\n * @param {number} renderMode Render options - specifies how to re-render the component\n * @param {object} context The new context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n */\nexport function setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t}\n\t\telse if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context!==component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode!==NO_RENDER) {\n\t\tif (renderMode===SYNC_RENDER || options.syncComponentUpdates!==false || !component.base) {\n\t\t\trenderComponent(component, SYNC_RENDER, mountAll);\n\t\t}\n\t\telse {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n\n\n/**\n * Render a Component, triggering necessary lifecycle events and taking\n * High-Order Components into account.\n * @param {import('../component').Component} component The component to render\n * @param {number} [renderMode] render mode, see constants.js for available options.\n * @param {boolean} [mountAll] Whether or not to immediately mount all components\n * @param {boolean} [isChild] ?\n * @private\n */\nexport function renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tlet props = component.props,\n\t\tstate = component.state,\n\t\tcontext = component.context,\n\t\tpreviousProps = component.prevProps || props,\n\t\tpreviousState = component.prevState || state,\n\t\tpreviousContext = component.prevContext || context,\n\t\tisUpdate = component.base,\n\t\tnextBase = component.nextBase,\n\t\tinitialBase = isUpdate || nextBase,\n\t\tinitialChildComponent = component._component,\n\t\tskip = false,\n\t\tsnapshot = previousContext,\n\t\trendered, inst, cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode!==FORCE_RENDER\n\t\t\t&& component.shouldComponentUpdate\n\t\t\t&& component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t}\n\t\telse if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tlet childComponent = rendered && rendered.nodeName,\n\t\t\ttoUnmount, base;\n\n\t\tif (typeof childComponent==='function') {\n\t\t\t// set up high order component link\n\n\t\t\tlet childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor===childComponent && childProps.key==inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, SYNC_RENDER, context, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, NO_RENDER, context, false);\n\t\t\t\trenderComponent(inst, SYNC_RENDER, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t}\n\t\telse {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode===SYNC_RENDER) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base!==initialBase && inst!==initialChildComponent) {\n\t\t\tlet baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base!==baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tlet componentRef = component,\n\t\t\t\tt = component;\n\t\t\twhile ((t=t._parentComponent)) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t}\n\telse if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) component._renderCallbacks.pop().call(component);\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n\n\n/**\n * Apply the Component referenced by a VNode to the DOM.\n * @param {import('../dom').PreactElement} dom The DOM node to mutate\n * @param {import('../vnode').VNode} vnode A Component-referencing VNode\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @returns {import('../dom').PreactElement} The created/mutated element\n * @private\n */\nexport function buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tlet c = dom && dom._component,\n\t\toriginalComponent = c,\n\t\toldDom = dom,\n\t\tisDirectOwner = c && dom._componentConstructor===vnode.nodeName,\n\t\tisOwner = isDirectOwner,\n\t\tprops = getNodeProps(vnode);\n\twhile (c && !isOwner && (c=c._parentComponent)) {\n\t\tisOwner = c.constructor===vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, ASYNC_RENDER, context, mountAll);\n\t\tdom = c.base;\n\t}\n\telse {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, SYNC_RENDER, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom!==oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n\n\n/**\n * Remove a component from the DOM and recycle it.\n * @param {import('../component').Component} component The Component instance to unmount\n * @private\n */\nexport function unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tlet base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tlet inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t}\n\telse if (base) {\n\t\tif (base[ATTR_KEY] && base[ATTR_KEY].ref) base[ATTR_KEY].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n","import { FORCE_RENDER } from './constants';\nimport { extend } from './util';\nimport { renderComponent } from './vdom/component';\nimport { enqueueRender } from './render-queue';\n/**\n * Base Component class.\n * Provides `setState()` and `forceUpdate()`, which trigger rendering.\n * @typedef {object} Component\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components' getChildContext\n * @public\n *\n * @example\n * class MyFoo extends Component {\n * render(props, state) {\n * return <div />;\n * }\n * }\n */\nexport function Component(props, context) {\n\tthis._dirty = true;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.context = context;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.props = props;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\n\nextend(Component.prototype, {\n\n\t/**\n\t * Update component state and schedule a re-render.\n\t * @param {object} state A dict of state properties to be shallowly merged\n\t * \tinto the current state, or a function that will produce such a dict. The\n\t * \tfunction is called with the current state and props.\n\t * @param {() => void} callback A function to be called once component state is\n\t * \tupdated\n\t */\n\tsetState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(\n\t\t\textend({}, this.state),\n\t\t\ttypeof state === 'function' ? state(this.state, this.props) : state\n\t\t);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/**\n\t * Immediately perform a synchronous re-render of the component.\n\t * @param {() => void} callback A function to be called after component is\n\t * \tre-rendered.\n\t * @private\n\t */\n\tforceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, FORCE_RENDER);\n\t},\n\n\n\t/**\n\t * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n\t * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n\t * @param {object} props Props (eg: JSX attributes) received from parent\n\t * \telement/component\n\t * @param {object} state The component's current state\n\t * @param {object} context Context object, as returned by the nearest\n\t * ancestor's `getChildContext()`\n\t * @returns {import('./vnode').VNode | void}\n\t */\n\trender() {}\n\n});\n","import { diff } from './vdom/diff';\n\n/**\n * Render JSX into a `parent` Element.\n * @param {import('./vnode').VNode} vnode A (JSX) VNode to render\n * @param {import('./dom').PreactElement} parent DOM element to render into\n * @param {import('./dom').PreactElement} [merge] Attempt to re-use an existing DOM tree rooted at\n * `merge`\n * @public\n *\n * @example\n * // render a div into <body>:\n * render(<div id=\"hello\">hello!</div>, document.body);\n *\n * @example\n * // render a \"Thing\" component into #foo:\n * const Thing = ({ name }) => <span>{ name }</span>;\n * render(<Thing name=\"one\" />, document.querySelector('#foo'));\n */\nexport function render(vnode, parent, merge) {\n\treturn diff(merge, vnode, {}, false, parent, false);\n}\n","import { h, h as createElement } from './h';\nimport { cloneElement } from './clone-element';\nimport { Component } from './component';\nimport { render } from './render';\nimport { rerender } from './render-queue';\nimport options from './options';\n\nexport default {\n\th,\n\tcreateElement,\n\tcloneElement,\n\tComponent,\n\trender,\n\trerender,\n\toptions\n};\n\nexport {\n\th,\n\tcreateElement,\n\tcloneElement,\n\tComponent,\n\trender,\n\trerender,\n\toptions\n};\n"],"names":["VNode","options","stack","EMPTY_CHILDREN","h","nodeName","attributes","children","lastSimple","child","simple","i","arguments","length","push","pop","undefined","String","p","key","vnode","extend","obj","props","defer","Promise","resolve","then","bind","setTimeout","cloneElement","slice","call","NO_RENDER","SYNC_RENDER","FORCE_RENDER","ASYNC_RENDER","ATTR_KEY","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","rerender","list","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","document","createElementNS","createElement","removeNode","parentNode","removeChild","setAccessor","name","old","value","className","style","cssText","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","e","removeAttribute","ns","removeAttributeNS","setAttributeNS","setAttribute","type","event","mounts","diffLevel","isSvgMode","flushMounts","c","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","vnodeName","buildComponentFromVNode","firstChild","fc","vchildren","a","nextSibling","dangerouslySetInnerHTML","innerDiffNode","isHydrating","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","j","f","vchild","__key","trim","insertBefore","recollectNodeTree","unmountOnly","ref","removeChildren","lastChild","next","previousSibling","diffAttributes","attrs","recyclerComponents","createComponent","Ctor","inst","prototype","render","Component","constructor","doRender","nextBase","splice","state","setComponentProps","renderMode","_disable","__ref","getDerivedStateFromProps","base","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","rendered","cbase","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","childComponent","toUnmount","childProps","_parentComponent","baseParent","componentRef","t","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","unmountComponent","beforeUnmount","componentWillUnmount","inner","callback","merge"],"mappings":"AAQO,IAAMA,QAAQ,SAASA,KAAT,GAAiB,EAA/B;;ACWP,IAAMC,UAAU,EAAhB;;ACfA,IAAMC,QAAQ,EAAd;;AAEA,IAAMC,iBAAiB,EAAvB;;AAiCA,AAAO,SAASC,CAAT,CAAWC,QAAX,EAAqBC,UAArB,EAAiC;KACnCC,WAASJ,cAAb;KAA6BK,mBAA7B;KAAyCC,cAAzC;KAAgDC,eAAhD;KAAwDC,UAAxD;MACKA,IAAEC,UAAUC,MAAjB,EAAyBF,MAAM,CAA/B,GAAoC;QAC7BG,IAAN,CAAWF,UAAUD,CAAV,CAAX;;KAEGL,cAAcA,WAAWC,QAAX,IAAqB,IAAvC,EAA6C;MACxC,CAACL,MAAMW,MAAX,EAAmBX,MAAMY,IAAN,CAAWR,WAAWC,QAAtB;SACZD,WAAWC,QAAlB;;QAEML,MAAMW,MAAb,EAAqB;MAChB,CAACJ,QAAQP,MAAMa,GAAN,EAAT,KAAyBN,MAAMM,GAAN,KAAYC,SAAzC,EAAoD;QAC9CL,IAAEF,MAAMI,MAAb,EAAqBF,GAArB;UAAkCG,IAAN,CAAWL,MAAME,CAAN,CAAX;;GAD7B,MAGK;OACA,OAAOF,KAAP,KAAe,SAAnB,EAA8BA,QAAQ,IAAR;;OAEzBC,SAAS,OAAOL,QAAP,KAAkB,UAAhC,EAA6C;QACxCI,SAAO,IAAX,EAAiBA,QAAQ,EAAR,CAAjB,KACK,IAAI,OAAOA,KAAP,KAAe,QAAnB,EAA6BA,QAAQQ,OAAOR,KAAP,CAAR,CAA7B,KACA,IAAI,OAAOA,KAAP,KAAe,QAAnB,EAA6BC,SAAS,KAAT;;;OAG/BA,UAAUF,UAAd,EAA0B;aAChBD,SAASM,MAAT,GAAgB,CAAzB,KAA+BJ,KAA/B;IADD,MAGK,IAAIF,aAAWJ,cAAf,EAA+B;eACxB,CAACM,KAAD,CAAX;IADI,MAGA;aACKK,IAAT,CAAcL,KAAd;;;gBAGYC,MAAb;;;;KAIEQ,IAAI,IAAIlB,KAAJ,EAAR;GACEK,QAAF,GAAaA,QAAb;GACEE,QAAF,GAAaA,QAAb;GACED,UAAF,GAAeA,cAAY,IAAZ,GAAmBU,SAAnB,GAA+BV,UAA9C;GACEa,GAAF,GAAQb,cAAY,IAAZ,GAAmBU,SAAnB,GAA+BV,WAAWa,GAAlD;;KAGIlB,QAAQmB,KAAR,KAAgBJ,SAApB,EAA+Bf,QAAQmB,KAAR,CAAcF,CAAd;;QAExBA,CAAP;;;AC7EM,SAASG,MAAT,CAAgBC,GAAhB,EAAqBC,KAArB,EAA4B;OAC7B,IAAIZ,CAAT,IAAcY,KAAd;QAAyBZ,CAAJ,IAASY,MAAMZ,CAAN,CAAT;GACrB,OAAOW,GAAP;;;AASD,AAAO,IAAME,QAAQ,OAAOC,OAAP,IAAgB,UAAhB,GAA6BA,QAAQC,OAAR,GAAkBC,IAAlB,CAAuBC,IAAvB,CAA4BH,QAAQC,OAAR,EAA5B,CAA7B,GAA8EG,UAA5F;;ACPA,SAASC,YAAT,CAAsBV,KAAtB,EAA6BG,KAA7B,EAAoC;SACnCnB,EACNgB,MAAMf,QADA,EAENgB,OAAOA,OAAO,EAAP,EAAWD,MAAMd,UAAjB,CAAP,EAAqCiB,KAArC,CAFM,EAGNX,UAAUC,MAAV,GAAiB,CAAjB,GAAqB,GAAGkB,KAAH,CAASC,IAAT,CAAcpB,SAAd,EAAyB,CAAzB,CAArB,GAAmDQ,MAAMb,QAHnD,CAAP;;;ACTM,IAAM0B,YAAY,CAAlB;;AAEP,AAAO,IAAMC,cAAc,CAApB;;AAEP,AAAO,IAAMC,eAAe,CAArB;;AAEP,AAAO,IAAMC,eAAe,CAArB;;AAGP,AAAO,IAAMC,WAAW,eAAjB;;AAGP,AAAO,IAAMC,qBAAqB,wDAA3B;;ACPP,IAAIC,QAAQ,EAAZ;;AAMA,AAAO,SAASC,aAAT,CAAuBC,SAAvB,EAAkC;KACpC,CAACA,UAAUC,MAAX,KAAsBD,UAAUC,MAAV,GAAmB,IAAzC,KAAkDH,MAAMzB,IAAN,CAAW2B,SAAX,KAAuB,CAA7E,EAAgF;GAC9ExC,QAAQ0C,iBAAR,IAA6BnB,KAA9B,EAAqCoB,QAArC;;;;AAKF,AAAO,SAASA,QAAT,GAAoB;KACtB1B,UAAJ;KAAO2B,OAAON,KAAd;SACQ,EAAR;QACSrB,IAAI2B,KAAK9B,GAAL,EAAb,EAA2B;MACtBG,EAAEwB,MAAN,EAAcI,gBAAgB5B,CAAhB;;;;ACdT,SAAS6B,cAAT,CAAwBC,IAAxB,EAA8B5B,KAA9B,EAAqC6B,SAArC,EAAgD;KAClD,OAAO7B,KAAP,KAAe,QAAf,IAA2B,OAAOA,KAAP,KAAe,QAA9C,EAAwD;SAChD4B,KAAKE,SAAL,KAAiBlC,SAAxB;;KAEG,OAAOI,MAAMf,QAAb,KAAwB,QAA5B,EAAsC;SAC9B,CAAC2C,KAAKG,qBAAN,IAA+BC,YAAYJ,IAAZ,EAAkB5B,MAAMf,QAAxB,CAAtC;;QAEM4C,aAAaD,KAAKG,qBAAL,KAA6B/B,MAAMf,QAAvD;;;AASD,AAAO,SAAS+C,WAAT,CAAqBJ,IAArB,EAA2B3C,QAA3B,EAAqC;QACpC2C,KAAKK,kBAAL,KAA0BhD,QAA1B,IAAsC2C,KAAK3C,QAAL,CAAciD,WAAd,OAA8BjD,SAASiD,WAAT,EAA3E;;;AAWD,AAAO,SAASC,YAAT,CAAsBnC,KAAtB,EAA6B;KAC/BG,QAAQF,OAAO,EAAP,EAAWD,MAAMd,UAAjB,CAAZ;OACMC,QAAN,GAAiBa,MAAMb,QAAvB;;KAEIiD,eAAepC,MAAMf,QAAN,CAAemD,YAAlC;KACIA,iBAAexC,SAAnB,EAA8B;OACxB,IAAIL,CAAT,IAAc6C,YAAd,EAA4B;OACvBjC,MAAMZ,CAAN,MAAWK,SAAf,EAA0B;UACnBL,CAAN,IAAW6C,aAAa7C,CAAb,CAAX;;;;;QAKIY,KAAP;;;AClBM,SAASkC,UAAT,CAAoBpD,QAApB,EAA8BqD,KAA9B,EAAqC;KAEvCV,OAAOU,QAAQC,SAASC,eAAT,CAAyB,4BAAzB,EAAuDvD,QAAvD,CAAR,GAA2EsD,SAASE,aAAT,CAAuBxD,QAAvB,CAAtF;MACKgD,kBAAL,GAA0BhD,QAA1B;QACO2C,IAAP;;;AAQD,AAAO,SAASc,UAAT,CAAoBd,IAApB,EAA0B;KAC5Be,aAAaf,KAAKe,UAAtB;KACIA,UAAJ,EAAgBA,WAAWC,WAAX,CAAuBhB,IAAvB;;;AAgBjB,AAAO,SAASiB,WAAT,CAAqBjB,IAArB,EAA2BkB,IAA3B,EAAiCC,GAAjC,EAAsCC,KAAtC,EAA6CV,KAA7C,EAAoD;KACtDQ,SAAO,WAAX,EAAwBA,OAAO,OAAP;;KAGpBA,SAAO,KAAX,EAAkB,EAAlB,MAGK,IAAIA,SAAO,KAAX,EAAkB;MAClBC,GAAJ,EAASA,IAAI,IAAJ;MACLC,KAAJ,EAAWA,MAAMpB,IAAN;EAFP,MAIA,IAAIkB,SAAO,OAAP,IAAkB,CAACR,KAAvB,EAA8B;OAC7BW,SAAL,GAAiBD,SAAS,EAA1B;EADI,MAGA,IAAIF,SAAO,OAAX,EAAoB;MACpB,CAACE,KAAD,IAAU,OAAOA,KAAP,KAAe,QAAzB,IAAqC,OAAOD,GAAP,KAAa,QAAtD,EAAgE;QAC1DG,KAAL,CAAWC,OAAX,GAAqBH,SAAS,EAA9B;;MAEGA,SAAS,OAAOA,KAAP,KAAe,QAA5B,EAAsC;OACjC,OAAOD,GAAP,KAAa,QAAjB,EAA2B;SACrB,IAAIxD,CAAT,IAAcwD,GAAd;SAAuB,EAAExD,KAAKyD,KAAP,CAAJ,EAAmBpB,KAAKsB,KAAL,CAAW3D,CAAX,IAAgB,EAAhB;;;QAElC,IAAIA,EAAT,IAAcyD,KAAd,EAAqB;SACfE,KAAL,CAAW3D,EAAX,IAAgB,OAAOyD,MAAMzD,EAAN,CAAP,KAAkB,QAAlB,IAA8B2B,mBAAmBkC,IAAnB,CAAwB7D,EAAxB,MAA6B,KAA3D,GAAoEyD,MAAMzD,EAAN,IAAS,IAA7E,GAAqFyD,MAAMzD,EAAN,CAArG;;;EATE,MAaA,IAAIuD,SAAO,yBAAX,EAAsC;MACtCE,KAAJ,EAAWpB,KAAKyB,SAAL,GAAiBL,MAAMM,MAAN,IAAgB,EAAjC;EADP,MAGA,IAAIR,KAAK,CAAL,KAAS,GAAT,IAAgBA,KAAK,CAAL,KAAS,GAA7B,EAAkC;MAClCS,aAAaT,UAAUA,OAAKA,KAAKU,OAAL,CAAa,UAAb,EAAyB,EAAzB,CAAf,CAAjB;SACOV,KAAKZ,WAAL,GAAmBuB,SAAnB,CAA6B,CAA7B,CAAP;MACIT,KAAJ,EAAW;OACN,CAACD,GAAL,EAAUnB,KAAK8B,gBAAL,CAAsBZ,IAAtB,EAA4Ba,UAA5B,EAAwCJ,UAAxC;GADX,MAGK;QACCK,mBAAL,CAAyBd,IAAzB,EAA+Ba,UAA/B,EAA2CJ,UAA3C;;GAEA3B,KAAKiC,UAAL,KAAoBjC,KAAKiC,UAAL,GAAkB,EAAtC,CAAD,EAA4Cf,IAA5C,IAAoDE,KAApD;EATI,MAWA,IAAIF,SAAO,MAAP,IAAiBA,SAAO,MAAxB,IAAkC,CAACR,KAAnC,IAA4CQ,QAAQlB,IAAxD,EAA8D;MAG9D;QACEkB,IAAL,IAAaE,SAAO,IAAP,GAAc,EAAd,GAAmBA,KAAhC;GADD,CAEE,OAAOc,CAAP,EAAU;MACR,CAACd,SAAO,IAAP,IAAeA,UAAQ,KAAxB,KAAkCF,QAAM,YAA5C,EAA0DlB,KAAKmC,eAAL,CAAqBjB,IAArB;EANtD,MAQA;MACAkB,KAAK1B,SAAUQ,UAAUA,OAAOA,KAAKU,OAAL,CAAa,UAAb,EAAyB,EAAzB,CAAjB,CAAnB;;MAIIR,SAAO,IAAP,IAAeA,UAAQ,KAA3B,EAAkC;OAC7BgB,EAAJ,EAAQpC,KAAKqC,iBAAL,CAAuB,8BAAvB,EAAuDnB,KAAKZ,WAAL,EAAvD,EAAR,KACKN,KAAKmC,eAAL,CAAqBjB,IAArB;GAFN,MAIK,IAAI,OAAOE,KAAP,KAAe,UAAnB,EAA+B;OAC/BgB,EAAJ,EAAQpC,KAAKsC,cAAL,CAAoB,8BAApB,EAAoDpB,KAAKZ,WAAL,EAApD,EAAwEc,KAAxE,EAAR,KACKpB,KAAKuC,YAAL,CAAkBrB,IAAlB,EAAwBE,KAAxB;;;;;AAWR,SAASW,UAAT,CAAoBG,CAApB,EAAuB;QACf,KAAKD,UAAL,CAAgBC,EAAEM,IAAlB,EAAwBvF,QAAQwF,KAAR,IAAiBxF,QAAQwF,KAAR,CAAcP,CAAd,CAAjB,IAAqCA,CAA7D,CAAP;;;AC5HM,IAAMQ,SAAS,EAAf;;AAGP,AAAO,IAAIC,YAAY,CAAhB;;AAGP,IAAIC,YAAY,KAAhB;;AAGA,IAAI3C,YAAY,KAAhB;;AAGA,AAAO,SAAS4C,WAAT,GAAuB;KACzBC,UAAJ;QACQA,IAAEJ,OAAO3E,GAAP,EAAV,EAAyB;MACpBd,QAAQ8F,UAAZ,EAAwB9F,QAAQ8F,UAAR,CAAmBD,CAAnB;MACpBA,EAAEE,iBAAN,EAAyBF,EAAEE,iBAAF;;;;AAiB3B,AAAO,SAASC,IAAT,CAAcC,GAAd,EAAmB9E,KAAnB,EAA0B+E,OAA1B,EAAmCC,QAAnC,EAA6CC,MAA7C,EAAqDC,aAArD,EAAoE;KAEtE,CAACX,WAAL,EAAkB;cAELU,UAAQ,IAAR,IAAgBA,OAAOE,eAAP,KAAyBvF,SAArD;;cAGYkF,OAAK,IAAL,IAAa,EAAE7D,YAAY6D,GAAd,CAAzB;;;KAGGM,MAAMC,MAAMP,GAAN,EAAW9E,KAAX,EAAkB+E,OAAlB,EAA2BC,QAA3B,EAAqCE,aAArC,CAAV;;KAGID,UAAUG,IAAIzC,UAAJ,KAAiBsC,MAA/B,EAAuCA,OAAOK,WAAP,CAAmBF,GAAnB;;KAGnC,IAAGb,SAAP,EAAkB;cACL,KAAZ;;MAEI,CAACW,aAAL,EAAoBT;;;QAGdW,GAAP;;;AAaD,SAASC,KAAT,CAAeP,GAAf,EAAoB9E,KAApB,EAA2B+E,OAA3B,EAAoCC,QAApC,EAA8CE,aAA9C,EAA6D;KACxDK,MAAMT,GAAV;KACCU,cAAchB,SADf;;KAIIxE,SAAO,IAAP,IAAe,OAAOA,KAAP,KAAe,SAAlC,EAA6CA,QAAQ,EAAR;;KAIzC,OAAOA,KAAP,KAAe,QAAf,IAA2B,OAAOA,KAAP,KAAe,QAA9C,EAAwD;MAGnD8E,OAAOA,IAAIhD,SAAJ,KAAgBlC,SAAvB,IAAoCkF,IAAInC,UAAxC,KAAuD,CAACmC,IAAIW,UAAL,IAAmBP,aAA1E,CAAJ,EAA8F;OAEzFJ,IAAIY,SAAJ,IAAe1F,KAAnB,EAA0B;QACrB0F,SAAJ,GAAgB1F,KAAhB;;GAHF,MAMK;SAEEuC,SAASoD,cAAT,CAAwB3F,KAAxB,CAAN;OACI8E,GAAJ,EAAS;QACJA,IAAInC,UAAR,EAAoBmC,IAAInC,UAAJ,CAAeiD,YAAf,CAA4BL,GAA5B,EAAiCT,GAAjC;sBACFA,GAAlB,EAAuB,IAAvB;;;;MAIE7D,QAAJ,IAAgB,IAAhB;;SAEOsE,GAAP;;;KAKGM,YAAY7F,MAAMf,QAAtB;KACI,OAAO4G,SAAP,KAAmB,UAAvB,EAAmC;SAC3BC,wBAAwBhB,GAAxB,EAA6B9E,KAA7B,EAAoC+E,OAApC,EAA6CC,QAA7C,CAAP;;;aAKWa,cAAY,KAAZ,GAAoB,IAApB,GAA2BA,cAAY,eAAZ,GAA8B,KAA9B,GAAsCrB,SAA7E;;aAIY3E,OAAOgG,SAAP,CAAZ;KACI,CAACf,GAAD,IAAQ,CAAC9C,YAAY8C,GAAZ,EAAiBe,SAAjB,CAAb,EAA0C;QACnCxD,WAAWwD,SAAX,EAAsBrB,SAAtB,CAAN;;MAEIM,GAAJ,EAAS;UAEDA,IAAIiB,UAAX;QAA2BT,WAAJ,CAAgBR,IAAIiB,UAApB;;OAGnBjB,IAAInC,UAAR,EAAoBmC,IAAInC,UAAJ,CAAeiD,YAAf,CAA4BL,GAA5B,EAAiCT,GAAjC;;qBAGFA,GAAlB,EAAuB,IAAvB;;;;KAKEkB,KAAKT,IAAIQ,UAAb;KACC5F,QAAQoF,IAAItE,QAAJ,CADT;KAECgF,YAAYjG,MAAMb,QAFnB;;KAIIgB,SAAO,IAAX,EAAiB;UACRoF,IAAItE,QAAJ,IAAgB,EAAxB;OACK,IAAIiF,IAAEX,IAAIrG,UAAV,EAAsBK,IAAE2G,EAAEzG,MAA/B,EAAuCF,GAAvC;SAAoD2G,EAAE3G,CAAF,EAAKuD,IAAX,IAAmBoD,EAAE3G,CAAF,EAAKyD,KAAxB;;;;KAI3C,CAACnB,SAAD,IAAcoE,SAAd,IAA2BA,UAAUxG,MAAV,KAAmB,CAA9C,IAAmD,OAAOwG,UAAU,CAAV,CAAP,KAAsB,QAAzE,IAAqFD,MAAI,IAAzF,IAAiGA,GAAGlE,SAAH,KAAelC,SAAhH,IAA6HoG,GAAGG,WAAH,IAAgB,IAAjJ,EAAuJ;MAClJH,GAAGN,SAAH,IAAcO,UAAU,CAAV,CAAlB,EAAgC;MAC5BP,SAAH,GAAeO,UAAU,CAAV,CAAf;;EAFF,MAMK,IAAIA,aAAaA,UAAUxG,MAAvB,IAAiCuG,MAAI,IAAzC,EAA+C;iBACrCT,GAAd,EAAmBU,SAAnB,EAA8BlB,OAA9B,EAAuCC,QAAvC,EAAiDnD,aAAa1B,MAAMiG,uBAAN,IAA+B,IAA7F;;;gBAKcb,GAAf,EAAoBvF,MAAMd,UAA1B,EAAsCiB,KAAtC;;aAIYqF,WAAZ;;QAEOD,GAAP;;;AAcD,SAASc,aAAT,CAAuBvB,GAAvB,EAA4BmB,SAA5B,EAAuClB,OAAvC,EAAgDC,QAAhD,EAA0DsB,WAA1D,EAAuE;KAClEC,mBAAmBzB,IAAI0B,UAA3B;KACCrH,WAAW,EADZ;KAECsH,QAAQ,EAFT;KAGCC,WAAW,CAHZ;KAICC,MAAM,CAJP;KAKCC,MAAML,iBAAiB9G,MALxB;KAMCoH,cAAc,CANf;KAOCC,OAAOb,YAAYA,UAAUxG,MAAtB,GAA+B,CAPvC;KAQCsH,UARD;KAQIrC,UARJ;KAQOsC,UARP;KAQUC,eARV;KAQkB5H,cARlB;;KAWIuH,QAAM,CAAV,EAAa;OACP,IAAIrH,IAAE,CAAX,EAAcA,IAAEqH,GAAhB,EAAqBrH,GAArB,EAA0B;OACrBF,SAAQkH,iBAAiBhH,CAAjB,CAAZ;OACCY,QAAQd,OAAM4B,QAAN,CADT;OAEClB,MAAM+G,QAAQ3G,KAAR,GAAgBd,OAAMoG,UAAN,GAAmBpG,OAAMoG,UAAN,CAAiByB,KAApC,GAA4C/G,MAAMJ,GAAlE,GAAwE,IAF/E;OAGIA,OAAK,IAAT,EAAe;;UAERA,GAAN,IAAaV,MAAb;IAFD,MAIK,IAAIc,UAAUd,OAAMyC,SAAN,KAAkBlC,SAAlB,GAA+B0G,cAAcjH,OAAMqG,SAAN,CAAgByB,IAAhB,EAAd,GAAuC,IAAtE,GAA8Eb,WAAxF,CAAJ,EAA0G;aACrGO,aAAT,IAA0BxH,MAA1B;;;;;KAKCyH,SAAO,CAAX,EAAc;OACR,IAAIvH,KAAE,CAAX,EAAcA,KAAEuH,IAAhB,EAAsBvH,IAAtB,EAA2B;YACjB0G,UAAU1G,EAAV,CAAT;WACQ,IAAR;;OAGIQ,OAAMkH,OAAOlH,GAAjB;OACIA,QAAK,IAAT,EAAe;QACV2G,YAAYD,MAAM1G,IAAN,MAAaH,SAA7B,EAAwC;aAC/B6G,MAAM1G,IAAN,CAAR;WACMA,IAAN,IAAaH,SAAb;;;IAHF,MAQK,IAAI+G,MAAIE,WAAR,EAAqB;UACpBE,IAAEJ,GAAP,EAAYI,IAAEF,WAAd,EAA2BE,GAA3B,EAAgC;UAC3B5H,SAAS4H,CAAT,MAAcnH,SAAd,IAA2B+B,eAAe+C,IAAIvF,SAAS4H,CAAT,CAAnB,EAAgCE,MAAhC,EAAwCX,WAAxC,CAA/B,EAAqF;eAC5E5B,CAAR;gBACSqC,CAAT,IAAcnH,SAAd;WACImH,MAAIF,cAAY,CAApB,EAAuBA;WACnBE,MAAIJ,GAAR,EAAaA;;;;;;WAORtB,MAAMhG,KAAN,EAAa4H,MAAb,EAAqBlC,OAArB,EAA8BC,QAA9B,CAAR;;OAEIuB,iBAAiBhH,EAAjB,CAAJ;OACIF,SAASA,UAAQyF,GAAjB,IAAwBzF,UAAQ2H,CAApC,EAAuC;QAClCA,KAAG,IAAP,EAAa;SACR1B,WAAJ,CAAgBjG,KAAhB;KADD,MAGK,IAAIA,UAAQ2H,EAAEb,WAAd,EAA2B;gBACpBa,CAAX;KADI,MAGA;SACAI,YAAJ,CAAiB/H,KAAjB,EAAwB2H,CAAxB;;;;;;KAQAN,QAAJ,EAAc;OACR,IAAInH,GAAT,IAAckH,KAAd;OAAyBA,MAAMlH,GAAN,MAAWK,SAAf,EAA0ByH,kBAAkBZ,MAAMlH,GAAN,CAAlB,EAA4B,KAA5B;;;;QAIzCoH,OAAKE,WAAZ,EAAyB;MACpB,CAACxH,QAAQF,SAAS0H,aAAT,CAAT,MAAoCjH,SAAxC,EAAmDyH,kBAAkBhI,KAAlB,EAAyB,KAAzB;;;;AAarD,AAAO,SAASgI,iBAAT,CAA2BzF,IAA3B,EAAiC0F,WAAjC,EAA8C;KAChDjG,YAAYO,KAAK6D,UAArB;KACIpE,SAAJ,EAAe;mBAEGA,SAAjB;EAFD,MAIK;MAGAO,KAAKX,QAAL,KAAgB,IAAhB,IAAwBW,KAAKX,QAAL,EAAesG,GAA3C,EAAgD3F,KAAKX,QAAL,EAAesG,GAAf,CAAmB,IAAnB;;MAE5CD,gBAAc,KAAd,IAAuB1F,KAAKX,QAAL,KAAgB,IAA3C,EAAiD;cACrCW,IAAX;;;iBAGcA,IAAf;;;;AAUF,AAAO,SAAS4F,cAAT,CAAwB5F,IAAxB,EAA8B;QAC7BA,KAAK6F,SAAZ;QACO7F,IAAP,EAAa;MACR8F,OAAO9F,KAAK+F,eAAhB;oBACkB/F,IAAlB,EAAwB,IAAxB;SACO8F,IAAP;;;;AAYF,SAASE,cAAT,CAAwB9C,GAAxB,EAA6B+C,KAA7B,EAAoC9E,GAApC,EAAyC;KACpCD,aAAJ;;MAGKA,IAAL,IAAaC,GAAb,EAAkB;MACb,EAAE8E,SAASA,MAAM/E,IAAN,KAAa,IAAxB,KAAiCC,IAAID,IAAJ,KAAW,IAAhD,EAAsD;eACzCgC,GAAZ,EAAiBhC,IAAjB,EAAuBC,IAAID,IAAJ,CAAvB,EAAkCC,IAAID,IAAJ,IAAYlD,SAA9C,EAAyD4E,SAAzD;;;;MAKG1B,IAAL,IAAa+E,KAAb,EAAoB;MACf/E,SAAO,UAAP,IAAqBA,SAAO,WAA5B,KAA4C,EAAEA,QAAQC,GAAV,KAAkB8E,MAAM/E,IAAN,OAAeA,SAAO,OAAP,IAAkBA,SAAO,SAAzB,GAAqCgC,IAAIhC,IAAJ,CAArC,GAAiDC,IAAID,IAAJ,CAAhE,CAA9D,CAAJ,EAA+I;eAClIgC,GAAZ,EAAiBhC,IAAjB,EAAuBC,IAAID,IAAJ,CAAvB,EAAkCC,IAAID,IAAJ,IAAY+E,MAAM/E,IAAN,CAA9C,EAA2D0B,SAA3D;;;;;ACrUI,IAAMsD,qBAAqB,EAA3B;;AAWP,AAAO,SAASC,eAAT,CAAyBC,IAAzB,EAA+B7H,KAA/B,EAAsC4E,OAAtC,EAA+C;KACjDkD,aAAJ;KAAU1I,IAAIuI,mBAAmBrI,MAAjC;;KAEIuI,KAAKE,SAAL,IAAkBF,KAAKE,SAAL,CAAeC,MAArC,EAA6C;SACrC,IAAIH,IAAJ,CAAS7H,KAAT,EAAgB4E,OAAhB,CAAP;YACUnE,IAAV,CAAeqH,IAAf,EAAqB9H,KAArB,EAA4B4E,OAA5B;EAFD,MAIK;SACG,IAAIqD,SAAJ,CAAcjI,KAAd,EAAqB4E,OAArB,CAAP;OACKsD,WAAL,GAAmBL,IAAnB;OACKG,MAAL,GAAcG,QAAd;;;QAIM/I,GAAP,EAAY;MACPuI,mBAAmBvI,CAAnB,EAAsB8I,WAAtB,KAAoCL,IAAxC,EAA8C;QACxCO,QAAL,GAAgBT,mBAAmBvI,CAAnB,EAAsBgJ,QAAtC;sBACmBC,MAAnB,CAA0BjJ,CAA1B,EAA6B,CAA7B;UACO0I,IAAP;;;;QAIKA,IAAP;;;AAKD,SAASK,QAAT,CAAkBnI,KAAlB,EAAyBsI,KAAzB,EAAgC1D,OAAhC,EAAyC;QACjC,KAAKsD,WAAL,CAAiBlI,KAAjB,EAAwB4E,OAAxB,CAAP;;;AC7BM,SAAS2D,iBAAT,CAA2BrH,SAA3B,EAAsClB,KAAtC,EAA6CwI,UAA7C,EAAyD5D,OAAzD,EAAkEC,QAAlE,EAA4E;KAC9E3D,UAAUuH,QAAd,EAAwB;WACdA,QAAV,GAAqB,IAArB;;WAEUC,KAAV,GAAkB1I,MAAMoH,GAAxB;WACUL,KAAV,GAAkB/G,MAAMJ,GAAxB;QACOI,MAAMoH,GAAb;QACOpH,MAAMJ,GAAb;;KAEI,OAAOsB,UAAUgH,WAAV,CAAsBS,wBAA7B,KAA0D,WAA9D,EAA2E;MACtE,CAACzH,UAAU0H,IAAX,IAAmB/D,QAAvB,EAAiC;OAC5B3D,UAAU2H,kBAAd,EAAkC3H,UAAU2H,kBAAV;GADnC,MAGK,IAAI3H,UAAU4H,yBAAd,EAAyC;aACnCA,yBAAV,CAAoC9I,KAApC,EAA2C4E,OAA3C;;;;KAIEA,WAAWA,YAAU1D,UAAU0D,OAAnC,EAA4C;MACvC,CAAC1D,UAAU6H,WAAf,EAA4B7H,UAAU6H,WAAV,GAAwB7H,UAAU0D,OAAlC;YAClBA,OAAV,GAAoBA,OAApB;;;KAGG,CAAC1D,UAAU8H,SAAf,EAA0B9H,UAAU8H,SAAV,GAAsB9H,UAAUlB,KAAhC;WAChBA,KAAV,GAAkBA,KAAlB;;WAEUyI,QAAV,GAAqB,KAArB;;KAEID,eAAa9H,SAAjB,EAA4B;MACvB8H,eAAa7H,WAAb,IAA4BjC,QAAQuK,oBAAR,KAA+B,KAA3D,IAAoE,CAAC/H,UAAU0H,IAAnF,EAAyF;mBACxE1H,SAAhB,EAA2BP,WAA3B,EAAwCkE,QAAxC;GADD,MAGK;iBACU3D,SAAd;;;;KAIEA,UAAUwH,KAAd,EAAqBxH,UAAUwH,KAAV,CAAgBxH,SAAhB;;;AActB,AAAO,SAASK,eAAT,CAAyBL,SAAzB,EAAoCsH,UAApC,EAAgD3D,QAAhD,EAA0DqE,OAA1D,EAAmE;KACrEhI,UAAUuH,QAAd,EAAwB;;KAEpBzI,QAAQkB,UAAUlB,KAAtB;KACCsI,QAAQpH,UAAUoH,KADnB;KAEC1D,UAAU1D,UAAU0D,OAFrB;KAGCuE,gBAAgBjI,UAAU8H,SAAV,IAAuBhJ,KAHxC;KAICoJ,gBAAgBlI,UAAUmI,SAAV,IAAuBf,KAJxC;KAKCgB,kBAAkBpI,UAAU6H,WAAV,IAAyBnE,OAL5C;KAMC2E,WAAWrI,UAAU0H,IANtB;KAOCR,WAAWlH,UAAUkH,QAPtB;KAQCoB,cAAcD,YAAYnB,QAR3B;KASCqB,wBAAwBvI,UAAUoE,UATnC;KAUCoE,OAAO,KAVR;KAWCC,WAAWL,eAXZ;KAYCM,iBAZD;KAYW9B,aAZX;KAYiB+B,cAZjB;;KAcI3I,UAAUgH,WAAV,CAAsBS,wBAA1B,EAAoD;UAC3C7I,OAAOA,OAAO,EAAP,EAAWwI,KAAX,CAAP,EAA0BpH,UAAUgH,WAAV,CAAsBS,wBAAtB,CAA+C3I,KAA/C,EAAsDsI,KAAtD,CAA1B,CAAR;YACUA,KAAV,GAAkBA,KAAlB;;;KAIGiB,QAAJ,EAAc;YACHvJ,KAAV,GAAkBmJ,aAAlB;YACUb,KAAV,GAAkBc,aAAlB;YACUxE,OAAV,GAAoB0E,eAApB;MACId,eAAa5H,YAAb,IACAM,UAAU4I,qBADV,IAEA5I,UAAU4I,qBAAV,CAAgC9J,KAAhC,EAAuCsI,KAAvC,EAA8C1D,OAA9C,MAA2D,KAF/D,EAEsE;UAC9D,IAAP;GAHD,MAKK,IAAI1D,UAAU6I,mBAAd,EAAmC;aAC7BA,mBAAV,CAA8B/J,KAA9B,EAAqCsI,KAArC,EAA4C1D,OAA5C;;YAES5E,KAAV,GAAkBA,KAAlB;YACUsI,KAAV,GAAkBA,KAAlB;YACU1D,OAAV,GAAoBA,OAApB;;;WAGSoE,SAAV,GAAsB9H,UAAUmI,SAAV,GAAsBnI,UAAU6H,WAAV,GAAwB7H,UAAUkH,QAAV,GAAqB,IAAzF;WACUjH,MAAV,GAAmB,KAAnB;;KAEI,CAACuI,IAAL,EAAW;aACCxI,UAAU8G,MAAV,CAAiBhI,KAAjB,EAAwBsI,KAAxB,EAA+B1D,OAA/B,CAAX;;MAGI1D,UAAU8I,eAAd,EAA+B;aACpBlK,OAAOA,OAAO,EAAP,EAAW8E,OAAX,CAAP,EAA4B1D,UAAU8I,eAAV,EAA5B,CAAV;;;MAGGT,YAAYrI,UAAU+I,uBAA1B,EAAmD;cACvC/I,UAAU+I,uBAAV,CAAkCd,aAAlC,EAAiDC,aAAjD,CAAX;;;MAGGc,iBAAiBN,YAAYA,SAAS9K,QAA1C;MACCqL,kBADD;MACYvB,aADZ;;MAGI,OAAOsB,cAAP,KAAwB,UAA5B,EAAwC;;OAGnCE,aAAapI,aAAa4H,QAAb,CAAjB;UACOH,qBAAP;;OAEI3B,QAAQA,KAAKI,WAAL,KAAmBgC,cAA3B,IAA6CE,WAAWxK,GAAX,IAAgBkI,KAAKf,KAAtE,EAA6E;sBAC1De,IAAlB,EAAwBsC,UAAxB,EAAoCzJ,WAApC,EAAiDiE,OAAjD,EAA0D,KAA1D;IADD,MAGK;gBACQkD,IAAZ;;cAEUxC,UAAV,GAAuBwC,OAAOF,gBAAgBsC,cAAhB,EAAgCE,UAAhC,EAA4CxF,OAA5C,CAA9B;SACKwD,QAAL,GAAgBN,KAAKM,QAAL,IAAiBA,QAAjC;SACKiC,gBAAL,GAAwBnJ,SAAxB;sBACkB4G,IAAlB,EAAwBsC,UAAxB,EAAoC1J,SAApC,EAA+CkE,OAA/C,EAAwD,KAAxD;oBACgBkD,IAAhB,EAAsBnH,WAAtB,EAAmCkE,QAAnC,EAA6C,IAA7C;;;UAGMiD,KAAKc,IAAZ;GAnBD,MAqBK;WACIY,WAAR;;eAGYC,qBAAZ;OACIU,SAAJ,EAAe;YACNjJ,UAAUoE,UAAV,GAAuB,IAA/B;;;OAGGkE,eAAehB,eAAa7H,WAAhC,EAA6C;QACxCkJ,KAAJ,EAAWA,MAAMvE,UAAN,GAAmB,IAAnB;WACJZ,KAAKmF,KAAL,EAAYD,QAAZ,EAAsBhF,OAAtB,EAA+BC,YAAY,CAAC0E,QAA5C,EAAsDC,eAAeA,YAAYhH,UAAjF,EAA6F,IAA7F,CAAP;;;;MAIEgH,eAAeZ,SAAOY,WAAtB,IAAqC1B,SAAO2B,qBAAhD,EAAuE;OAClEa,aAAad,YAAYhH,UAA7B;OACI8H,cAAc1B,SAAO0B,UAAzB,EAAqC;eACzB7E,YAAX,CAAwBmD,IAAxB,EAA8BY,WAA9B;;QAEI,CAACW,SAAL,EAAgB;iBACH7E,UAAZ,GAAyB,IAAzB;uBACkBkE,WAAlB,EAA+B,KAA/B;;;;;MAKCW,SAAJ,EAAe;oBACGA,SAAjB;;;YAGSvB,IAAV,GAAiBA,IAAjB;MACIA,QAAQ,CAACM,OAAb,EAAsB;OACjBqB,eAAerJ,SAAnB;OACCsJ,IAAItJ,SADL;UAEQsJ,IAAEA,EAAEH,gBAAZ,EAA+B;KAC7BE,eAAeC,CAAhB,EAAmB5B,IAAnB,GAA0BA,IAA1B;;QAEItD,UAAL,GAAkBiF,YAAlB;QACK3I,qBAAL,GAA6B2I,aAAarC,WAA1C;;;;KAIE,CAACqB,QAAD,IAAa1E,QAAjB,EAA2B;SACnB4F,OAAP,CAAevJ,SAAf;EADD,MAGK,IAAI,CAACwI,IAAL,EAAW;;MAMXxI,UAAUwJ,kBAAd,EAAkC;aACvBA,kBAAV,CAA6BvB,aAA7B,EAA4CC,aAA5C,EAA2DO,QAA3D;;MAEGjL,QAAQiM,WAAZ,EAAyBjM,QAAQiM,WAAR,CAAoBzJ,SAApB;;;QAGnBA,UAAU0J,gBAAV,CAA2BtL,MAAlC;YAAoDsL,gBAAV,CAA2BpL,GAA3B,GAAiCiB,IAAjC,CAAsCS,SAAtC;EAE1C,IAAI,CAACkD,SAAD,IAAc,CAAC8E,OAAnB,EAA4B5E;;;AAc7B,AAAO,SAASqB,uBAAT,CAAiChB,GAAjC,EAAsC9E,KAAtC,EAA6C+E,OAA7C,EAAsDC,QAAtD,EAAgE;KAClEN,IAAII,OAAOA,IAAIW,UAAnB;KACCuF,oBAAoBtG,CADrB;KAECuG,SAASnG,GAFV;KAGCoG,gBAAgBxG,KAAKI,IAAI/C,qBAAJ,KAA4B/B,MAAMf,QAHxD;KAICkM,UAAUD,aAJX;KAKC/K,QAAQgC,aAAanC,KAAb,CALT;QAMO0E,KAAK,CAACyG,OAAN,KAAkBzG,IAAEA,EAAE8F,gBAAtB,CAAP,EAAgD;YACrC9F,EAAE2D,WAAF,KAAgBrI,MAAMf,QAAhC;;;KAGGyF,KAAKyG,OAAL,KAAiB,CAACnG,QAAD,IAAaN,EAAEe,UAAhC,CAAJ,EAAiD;oBAC9Bf,CAAlB,EAAqBvE,KAArB,EAA4Ba,YAA5B,EAA0C+D,OAA1C,EAAmDC,QAAnD;QACMN,EAAEqE,IAAR;EAFD,MAIK;MACAiC,qBAAqB,CAACE,aAA1B,EAAyC;oBACvBF,iBAAjB;SACMC,SAAS,IAAf;;;MAGGlD,gBAAgB/H,MAAMf,QAAtB,EAAgCkB,KAAhC,EAAuC4E,OAAvC,CAAJ;MACID,OAAO,CAACJ,EAAE6D,QAAd,EAAwB;KACrBA,QAAF,GAAazD,GAAb;;YAES,IAAT;;oBAEiBJ,CAAlB,EAAqBvE,KAArB,EAA4BW,WAA5B,EAAyCiE,OAAzC,EAAkDC,QAAlD;QACMN,EAAEqE,IAAR;;MAEIkC,UAAUnG,QAAMmG,MAApB,EAA4B;UACpBxF,UAAP,GAAoB,IAApB;qBACkBwF,MAAlB,EAA0B,KAA1B;;;;QAIKnG,GAAP;;;AAUD,AAAO,SAASsG,gBAAT,CAA0B/J,SAA1B,EAAqC;KACvCxC,QAAQwM,aAAZ,EAA2BxM,QAAQwM,aAAR,CAAsBhK,SAAtB;;KAEvB0H,OAAO1H,UAAU0H,IAArB;;WAEUH,QAAV,GAAqB,IAArB;;KAEIvH,UAAUiK,oBAAd,EAAoCjK,UAAUiK,oBAAV;;WAE1BvC,IAAV,GAAiB,IAAjB;;KAGIwC,QAAQlK,UAAUoE,UAAtB;KACI8F,KAAJ,EAAW;mBACOA,KAAjB;EADD,MAGK,IAAIxC,IAAJ,EAAU;MACVA,KAAK9H,QAAL,KAAkB8H,KAAK9H,QAAL,EAAesG,GAArC,EAA0CwB,KAAK9H,QAAL,EAAesG,GAAf,CAAmB,IAAnB;;YAEhCgB,QAAV,GAAqBQ,IAArB;;aAEWA,IAAX;qBACmBrJ,IAAnB,CAAwB2B,SAAxB;;iBAEe0H,IAAf;;;KAGG1H,UAAUwH,KAAd,EAAqBxH,UAAUwH,KAAV,CAAgB,IAAhB;;;ACnRf,SAAST,SAAT,CAAmBjI,KAAnB,EAA0B4E,OAA1B,EAAmC;MACpCzD,MAAL,GAAc,IAAd;;MAMKyD,OAAL,GAAeA,OAAf;;MAMK5E,KAAL,GAAaA,KAAb;;MAMKsI,KAAL,GAAa,KAAKA,KAAL,IAAc,EAA3B;;MAEKsC,gBAAL,GAAwB,EAAxB;;;AAID9K,OAAOmI,UAAUF,SAAjB,EAA4B;SAAA,oBAUlBO,KAVkB,EAUX+C,QAVW,EAUD;MACrB,CAAC,KAAKhC,SAAV,EAAqB,KAAKA,SAAL,GAAiB,KAAKf,KAAtB;OAChBA,KAAL,GAAaxI,OACZA,OAAO,EAAP,EAAW,KAAKwI,KAAhB,CADY,EAEZ,OAAOA,KAAP,KAAiB,UAAjB,GAA8BA,MAAM,KAAKA,KAAX,EAAkB,KAAKtI,KAAvB,CAA9B,GAA8DsI,KAFlD,CAAb;MAII+C,QAAJ,EAAc,KAAKT,gBAAL,CAAsBrL,IAAtB,CAA2B8L,QAA3B;gBACA,IAAd;EAjB0B;YAAA,uBA2BfA,QA3Be,EA2BL;MACjBA,QAAJ,EAAc,KAAKT,gBAAL,CAAsBrL,IAAtB,CAA2B8L,QAA3B;kBACE,IAAhB,EAAsBzK,YAAtB;EA7B0B;OAAA,oBA2ClB;CA3CV;;ACzBO,SAASoH,MAAT,CAAgBnI,KAAhB,EAAuBiF,MAAvB,EAA+BwG,KAA/B,EAAsC;SACrC5G,KAAK4G,KAAL,EAAYzL,KAAZ,EAAmB,EAAnB,EAAuB,KAAvB,EAA8BiF,MAA9B,EAAsC,KAAtC,CAAP;;;ACbD,aAAe;KAAA;iBAAA;2BAAA;qBAAA;eAAA;mBAAA;;CAAf;;;;;"}
@@ -0,0 +1,218 @@
1
+ {
2
+ "_args": [
3
+ [
4
+ {
5
+ "raw": "preact@^8.3.1",
6
+ "scope": null,
7
+ "escapedName": "preact",
8
+ "name": "preact",
9
+ "rawSpec": "^8.3.1",
10
+ "spec": ">=8.3.1 <9.0.0",
11
+ "type": "range"
12
+ },
13
+ "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/accessible-autocomplete"
14
+ ]
15
+ ],
16
+ "_from": "preact@>=8.3.1 <9.0.0",
17
+ "_id": "preact@8.3.1",
18
+ "_inCache": true,
19
+ "_location": "/preact",
20
+ "_nodeVersion": "10.6.0",
21
+ "_npmOperationalInternal": {
22
+ "host": "s3://npm-registry-packages",
23
+ "tmp": "tmp/preact_8.3.1_1534383349685_0.8989399500996755"
24
+ },
25
+ "_npmUser": {
26
+ "name": "developit",
27
+ "email": "jason@developit.ca"
28
+ },
29
+ "_npmVersion": "6.4.0",
30
+ "_phantomChildren": {},
31
+ "_requested": {
32
+ "raw": "preact@^8.3.1",
33
+ "scope": null,
34
+ "escapedName": "preact",
35
+ "name": "preact",
36
+ "rawSpec": "^8.3.1",
37
+ "spec": ">=8.3.1 <9.0.0",
38
+ "type": "range"
39
+ },
40
+ "_requiredBy": [
41
+ "/accessible-autocomplete"
42
+ ],
43
+ "_resolved": "https://registry.npmjs.org/preact/-/preact-8.3.1.tgz",
44
+ "_shasum": "ed34f79d09edc5efd32a378a3416ef5dc531e3ac",
45
+ "_shrinkwrap": null,
46
+ "_spec": "preact@^8.3.1",
47
+ "_where": "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ/node_modules/accessible-autocomplete",
48
+ "author": {
49
+ "name": "Jason Miller",
50
+ "email": "jason@developit.ca"
51
+ },
52
+ "bugs": {
53
+ "url": "https://github.com/developit/preact/issues"
54
+ },
55
+ "bundlesize": [
56
+ {
57
+ "path": "./dist/preact.min.js",
58
+ "threshold": "4Kb"
59
+ }
60
+ ],
61
+ "dependencies": {},
62
+ "description": "Fast 3kb React alternative with the same modern API. Components & Virtual DOM.",
63
+ "dev:main": "dist/preact.dev.js",
64
+ "devDependencies": {
65
+ "@types/chai": "^4.1.2",
66
+ "@types/mocha": "^5.0.0",
67
+ "@types/node": "^9.4.7",
68
+ "babel-cli": "^6.24.1",
69
+ "babel-core": "^6.24.1",
70
+ "babel-eslint": "^8.2.2",
71
+ "babel-loader": "^7.0.0",
72
+ "babel-plugin-transform-object-rest-spread": "^6.23.0",
73
+ "babel-plugin-transform-react-jsx": "^6.24.1",
74
+ "babel-preset-env": "^1.6.1",
75
+ "bundlesize": "^0.17.0",
76
+ "chai": "^4.1.2",
77
+ "copyfiles": "^2.0.0",
78
+ "core-js": "^2.4.1",
79
+ "coveralls": "^3.0.0",
80
+ "cross-env": "^5.1.4",
81
+ "diff": "^3.0.0",
82
+ "eslint": "^4.18.2",
83
+ "eslint-plugin-react": "^7.7.0",
84
+ "flow-bin": "^0.67.1",
85
+ "gzip-size-cli": "^2.0.0",
86
+ "istanbul-instrumenter-loader": "^3.0.0",
87
+ "jscodeshift": "^0.5.0",
88
+ "karma": "^2.0.0",
89
+ "karma-babel-preprocessor": "^7.0.0",
90
+ "karma-chai-sinon": "^0.1.5",
91
+ "karma-chrome-launcher": "^2.0.0",
92
+ "karma-coverage": "^1.0.0",
93
+ "karma-mocha": "^1.1.1",
94
+ "karma-mocha-reporter": "^2.0.4",
95
+ "karma-sauce-launcher": "^1.1.0",
96
+ "karma-sinon": "^1.0.5",
97
+ "karma-source-map-support": "^1.2.0",
98
+ "karma-sourcemap-loader": "^0.3.6",
99
+ "karma-webpack": "^3.0.0",
100
+ "mocha": "^5.0.4",
101
+ "npm-run-all": "^4.0.0",
102
+ "puppeteer": "^1.5.0",
103
+ "rimraf": "^2.5.3",
104
+ "rollup": "^0.57.1",
105
+ "rollup-plugin-babel": "^3.0.2",
106
+ "rollup-plugin-memory": "^3.0.0",
107
+ "rollup-plugin-node-resolve": "^3.0.0",
108
+ "sinon": "^4.4.2",
109
+ "sinon-chai": "^3.0.0",
110
+ "typescript": "^2.9.0-rc",
111
+ "uglify-js": "^2.7.5",
112
+ "webpack": "^4.3.0"
113
+ },
114
+ "directories": {},
115
+ "dist": {
116
+ "integrity": "sha512-s8H1Y8O9e+mOBo3UP1jvWqArPmjCba2lrrGLlq/0kN1XuIINUbYtf97iiXKxCuG3eYwmppPKnyW2DBrNj/TuTg==",
117
+ "shasum": "ed34f79d09edc5efd32a378a3416ef5dc531e3ac",
118
+ "tarball": "https://registry.npmjs.org/preact/-/preact-8.3.1.tgz",
119
+ "fileCount": 38,
120
+ "unpackedSize": 492524,
121
+ "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdNT2CRA9TVsSAnZWagAAn80P/jQDE4bcrEF08EpqpDp1\nMeL4epE4YXNaKP7LFpvVB842gQdOtITn8fqmUbf2XHXz+aHWW7EsjlVqYUNT\njCD+Qce5LlrHjaz3UjVVj1khRfeQ82vBxULwVZizwXllTqbzh2VD7D/lSPUt\nGeGZFXEy6kvnswWIqxG4tlkq/qjL6P14JdvKNz60K3p7jO0PUSzZv1xMcDCd\n2y8SnPsE94Eidsg+xRcYb4SgjYsZUtUUTbAp4skk5jlG8so0RI5s7kTBxSPm\nnug3fschee6N54LjBNqwhqTCENIumZjW5drG+sH//3kKGDGITEPZ/Ms6wnxH\nkn5YKcAGlmRJNNUoBat7XYs9T+ucOT7HsYyV/UUXuhJTOmVqUVzJQtnY6x7a\nQiwPUUv3sKkt4Sw+37Ls5XBIp2pDIT0aIWl0UI2uJhxJ865NR5av79noF/Mi\nUUaQ7JdNuNW/buS91TD9Wj5EBhbc2HX9/TkDjzzpnzqNDr/z6OEO4wGRGff8\neurfb+YjB+DrZQIPqH+j7jy6cL57jWf4ppCtGcw+wrsFNBngpP2qro/TONPY\nC50C6xn9SfScJKnE5lfyu9DlsyEEj5mubdh+P/f78besuIQRHqt2sfGRA3Pk\nCc+N2xS3HL8KtAIW79Zu/YOsvOX1WCDOYTHQE73h9YzjERHEb5cLZkP2u5VY\nyhN5\r\n=J5wJ\r\n-----END PGP SIGNATURE-----\r\n"
122
+ },
123
+ "eslintConfig": {
124
+ "extends": "./config/eslint-config.js"
125
+ },
126
+ "files": [
127
+ "devtools",
128
+ "debug",
129
+ "src",
130
+ "dist",
131
+ "devtools.js",
132
+ "devtools.js.map",
133
+ "debug.js",
134
+ "debug.js.map",
135
+ "typings.json"
136
+ ],
137
+ "gitHead": "fa9d3d2a03f7b82f31d101265cfc4b9204fc04a5",
138
+ "greenkeeper": {
139
+ "ignore": [
140
+ "babel-cli",
141
+ "babel-core",
142
+ "babel-eslint",
143
+ "babel-loader",
144
+ "jscodeshift",
145
+ "rollup-plugin-babel"
146
+ ]
147
+ },
148
+ "homepage": "https://github.com/developit/preact",
149
+ "jsnext:main": "dist/preact.mjs",
150
+ "keywords": [
151
+ "preact",
152
+ "react",
153
+ "virtual dom",
154
+ "vdom",
155
+ "components",
156
+ "virtual",
157
+ "dom"
158
+ ],
159
+ "license": "MIT",
160
+ "main": "dist/preact.js",
161
+ "maintainers": [
162
+ {
163
+ "name": "developit",
164
+ "email": "jason@developit.ca"
165
+ },
166
+ {
167
+ "name": "lukeed",
168
+ "email": "luke@lukeed.com"
169
+ },
170
+ {
171
+ "name": "marvinhagemeister",
172
+ "email": "marvin@marvinhagemeister.de"
173
+ }
174
+ ],
175
+ "minified:main": "dist/preact.min.js",
176
+ "module": "dist/preact.mjs",
177
+ "name": "preact",
178
+ "optionalDependencies": {},
179
+ "readme": "ERROR: No README data found!",
180
+ "repository": {
181
+ "type": "git",
182
+ "url": "git+https://github.com/developit/preact.git"
183
+ },
184
+ "scripts": {
185
+ "build": "npm-run-all --silent clean transpile copy-flow-definition copy-typescript-definition strip optimize minify size",
186
+ "clean": "rimraf dist/ devtools.js devtools.js.map debug.js debug.js.map test/ts/**/*.js",
187
+ "copy-flow-definition": "copyfiles -f src/preact.js.flow dist",
188
+ "copy-typescript-definition": "copyfiles -f src/preact.d.ts dist",
189
+ "flow": "flow",
190
+ "lint": "eslint debug devtools src test",
191
+ "minify": "uglifyjs dist/preact.js -c collapse_vars,evaluate,screw_ie8,unsafe,loops=false,keep_fargs=false,pure_getters,unused,dead_code -m -o dist/preact.min.js -p relative --in-source-map dist/preact.js.map --source-map dist/preact.min.js.map",
192
+ "optimize": "uglifyjs dist/preact.dev.js -c conditionals=false,sequences=false,loops=false,join_vars=false,collapse_vars=false --pure-funcs=Object.defineProperty --mangle-props --mangle-regex=\"/^(_|normalizedNodeName|nextBase|prev[CPS]|_parentC)/\" --name-cache config/properties.json -b width=120,quote_style=3 -o dist/preact.js -p relative --in-source-map dist/preact.dev.js.map --source-map dist/preact.js.map",
193
+ "postinstall": "node -e \"console.log('\\u001b[35m\\u001b[1mLove Preact? You can now donate to our open collective:\\u001b[22m\\u001b[39m\\n > \\u001b[34mhttps://opencollective.com/preact/donate\\u001b[0m')\"",
194
+ "prepublishOnly": "npm run build",
195
+ "release": "cross-env npm run smart-release",
196
+ "size": "node -e \"process.stdout.write('gzip size: ')\" && gzip-size --raw dist/preact.min.js",
197
+ "smart-release": "npm run build && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish",
198
+ "strip": "npm-run-all strip:main strip:esm",
199
+ "strip:esm": "jscodeshift --run-in-band -s -t config/codemod-strip-tdz.js dist/preact.mjs && jscodeshift --run-in-band -s -t config/codemod-const.js dist/preact.mjs && jscodeshift --run-in-band -s -t config/codemod-let-name.js dist/preact.mjs",
200
+ "strip:main": "jscodeshift --run-in-band -s -t config/codemod-strip-tdz.js dist/preact.dev.js && jscodeshift --run-in-band -s -t config/codemod-const.js dist/preact.dev.js && jscodeshift --run-in-band -s -t config/codemod-let-name.js dist/preact.dev.js",
201
+ "test": "npm-run-all lint --parallel test:mocha test:karma test:ts test:flow test:size",
202
+ "test:flow": "flow check",
203
+ "test:karma": "karma start test/karma.conf.js --single-run",
204
+ "test:karma:watch": "npm run test:karma -- no-single-run",
205
+ "test:mocha": "mocha --recursive --require babel-register test/shared test/node",
206
+ "test:mocha:watch": "npm run test:mocha -- --watch",
207
+ "test:size": "bundlesize",
208
+ "test:ts": "tsc -p test/ts/ && mocha --require babel-register test/ts/**/*-test.js",
209
+ "transpile": "npm-run-all transpile:main transpile:esm transpile:devtools transpile:debug",
210
+ "transpile:debug": "babel debug/ -o debug.js -s",
211
+ "transpile:devtools": "rollup -c config/rollup.config.devtools.js",
212
+ "transpile:esm": "rollup -c config/rollup.config.module.js",
213
+ "transpile:main": "rollup -c config/rollup.config.js"
214
+ },
215
+ "types": "dist/preact.d.ts",
216
+ "typings": "./dist/preact.d.ts",
217
+ "version": "8.3.1"
218
+ }
@@ -0,0 +1,18 @@
1
+ import { extend } from './util';
2
+ import { h } from './h';
3
+
4
+ /**
5
+ * Clones the given VNode, optionally adding attributes/props and replacing its
6
+ * children.
7
+ * @param {import('./vnode').VNode} vnode The virtual DOM element to clone
8
+ * @param {object} props Attributes/props to add when cloning
9
+ * @param {Array<import('./vnode').VNode>} [rest] Any additional arguments will be used as replacement
10
+ * children.
11
+ */
12
+ export function cloneElement(vnode, props) {
13
+ return h(
14
+ vnode.nodeName,
15
+ extend(extend({}, vnode.attributes), props),
16
+ arguments.length>2 ? [].slice.call(arguments, 2) : vnode.children
17
+ );
18
+ }
@@ -0,0 +1,90 @@
1
+ import { FORCE_RENDER } from './constants';
2
+ import { extend } from './util';
3
+ import { renderComponent } from './vdom/component';
4
+ import { enqueueRender } from './render-queue';
5
+ /**
6
+ * Base Component class.
7
+ * Provides `setState()` and `forceUpdate()`, which trigger rendering.
8
+ * @typedef {object} Component
9
+ * @param {object} props The initial component props
10
+ * @param {object} context The initial context from parent components' getChildContext
11
+ * @public
12
+ *
13
+ * @example
14
+ * class MyFoo extends Component {
15
+ * render(props, state) {
16
+ * return <div />;
17
+ * }
18
+ * }
19
+ */
20
+ export function Component(props, context) {
21
+ this._dirty = true;
22
+
23
+ /**
24
+ * @public
25
+ * @type {object}
26
+ */
27
+ this.context = context;
28
+
29
+ /**
30
+ * @public
31
+ * @type {object}
32
+ */
33
+ this.props = props;
34
+
35
+ /**
36
+ * @public
37
+ * @type {object}
38
+ */
39
+ this.state = this.state || {};
40
+
41
+ this._renderCallbacks = [];
42
+ }
43
+
44
+
45
+ extend(Component.prototype, {
46
+
47
+ /**
48
+ * Update component state and schedule a re-render.
49
+ * @param {object} state A dict of state properties to be shallowly merged
50
+ * into the current state, or a function that will produce such a dict. The
51
+ * function is called with the current state and props.
52
+ * @param {() => void} callback A function to be called once component state is
53
+ * updated
54
+ */
55
+ setState(state, callback) {
56
+ if (!this.prevState) this.prevState = this.state;
57
+ this.state = extend(
58
+ extend({}, this.state),
59
+ typeof state === 'function' ? state(this.state, this.props) : state
60
+ );
61
+ if (callback) this._renderCallbacks.push(callback);
62
+ enqueueRender(this);
63
+ },
64
+
65
+
66
+ /**
67
+ * Immediately perform a synchronous re-render of the component.
68
+ * @param {() => void} callback A function to be called after component is
69
+ * re-rendered.
70
+ * @private
71
+ */
72
+ forceUpdate(callback) {
73
+ if (callback) this._renderCallbacks.push(callback);
74
+ renderComponent(this, FORCE_RENDER);
75
+ },
76
+
77
+
78
+ /**
79
+ * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.
80
+ * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).
81
+ * @param {object} props Props (eg: JSX attributes) received from parent
82
+ * element/component
83
+ * @param {object} state The component's current state
84
+ * @param {object} context Context object, as returned by the nearest
85
+ * ancestor's `getChildContext()`
86
+ * @returns {import('./vnode').VNode | void}
87
+ */
88
+ render() {}
89
+
90
+ });
@@ -0,0 +1,17 @@
1
+ // render modes
2
+
3
+ /** Do not re-render a component */
4
+ export const NO_RENDER = 0;
5
+ /** Synchronously re-render a component and its children */
6
+ export const SYNC_RENDER = 1;
7
+ /** Synchronously re-render a component, even if its lifecycle methods attempt to prevent it. */
8
+ export const FORCE_RENDER = 2;
9
+ /** Queue asynchronous re-render of a component and it's children */
10
+ export const ASYNC_RENDER = 3;
11
+
12
+
13
+ export const ATTR_KEY = '__preactattr_';
14
+
15
+ /** DOM properties that should NOT have "px" added when numeric */
16
+ export const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;
17
+
@@ -0,0 +1,138 @@
1
+ import { IS_NON_DIMENSIONAL } from '../constants';
2
+ import options from '../options';
3
+
4
+ /**
5
+ * A DOM event listener
6
+ * @typedef {(e: Event) => void} EventListner
7
+ */
8
+
9
+ /**
10
+ * A mapping of event types to event listeners
11
+ * @typedef {Object.<string, EventListener>} EventListenerMap
12
+ */
13
+
14
+ /**
15
+ * Properties Preact adds to elements it creates
16
+ * @typedef PreactElementExtensions
17
+ * @property {string} [normalizedNodeName] A normalized node name to use in diffing
18
+ * @property {EventListenerMap} [_listeners] A map of event listeners added by components to this DOM node
19
+ * @property {import('../component').Component} [_component] The component that rendered this DOM node
20
+ * @property {function} [_componentConstructor] The constructor of the component that rendered this DOM node
21
+ */
22
+
23
+ /**
24
+ * A DOM element that has been extended with Preact properties
25
+ * @typedef {Element & ElementCSSInlineStyle & PreactElementExtensions} PreactElement
26
+ */
27
+
28
+ /**
29
+ * Create an element with the given nodeName.
30
+ * @param {string} nodeName The DOM node to create
31
+ * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG
32
+ * namespace.
33
+ * @returns {PreactElement} The created DOM node
34
+ */
35
+ export function createNode(nodeName, isSvg) {
36
+ /** @type {PreactElement} */
37
+ let node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);
38
+ node.normalizedNodeName = nodeName;
39
+ return node;
40
+ }
41
+
42
+
43
+ /**
44
+ * Remove a child node from its parent if attached.
45
+ * @param {Node} node The node to remove
46
+ */
47
+ export function removeNode(node) {
48
+ let parentNode = node.parentNode;
49
+ if (parentNode) parentNode.removeChild(node);
50
+ }
51
+
52
+
53
+ /**
54
+ * Set a named attribute on the given Node, with special behavior for some names
55
+ * and event handlers. If `value` is `null`, the attribute/handler will be
56
+ * removed.
57
+ * @param {PreactElement} node An element to mutate
58
+ * @param {string} name The name/key to set, such as an event or attribute name
59
+ * @param {*} old The last value that was set for this name/node pair
60
+ * @param {*} value An attribute value, such as a function to be used as an
61
+ * event handler
62
+ * @param {boolean} isSvg Are we currently diffing inside an svg?
63
+ * @private
64
+ */
65
+ export function setAccessor(node, name, old, value, isSvg) {
66
+ if (name==='className') name = 'class';
67
+
68
+
69
+ if (name==='key') {
70
+ // ignore
71
+ }
72
+ else if (name==='ref') {
73
+ if (old) old(null);
74
+ if (value) value(node);
75
+ }
76
+ else if (name==='class' && !isSvg) {
77
+ node.className = value || '';
78
+ }
79
+ else if (name==='style') {
80
+ if (!value || typeof value==='string' || typeof old==='string') {
81
+ node.style.cssText = value || '';
82
+ }
83
+ if (value && typeof value==='object') {
84
+ if (typeof old!=='string') {
85
+ for (let i in old) if (!(i in value)) node.style[i] = '';
86
+ }
87
+ for (let i in value) {
88
+ node.style[i] = typeof value[i]==='number' && IS_NON_DIMENSIONAL.test(i)===false ? (value[i]+'px') : value[i];
89
+ }
90
+ }
91
+ }
92
+ else if (name==='dangerouslySetInnerHTML') {
93
+ if (value) node.innerHTML = value.__html || '';
94
+ }
95
+ else if (name[0]=='o' && name[1]=='n') {
96
+ let useCapture = name !== (name=name.replace(/Capture$/, ''));
97
+ name = name.toLowerCase().substring(2);
98
+ if (value) {
99
+ if (!old) node.addEventListener(name, eventProxy, useCapture);
100
+ }
101
+ else {
102
+ node.removeEventListener(name, eventProxy, useCapture);
103
+ }
104
+ (node._listeners || (node._listeners = {}))[name] = value;
105
+ }
106
+ else if (name!=='list' && name!=='type' && !isSvg && name in node) {
107
+ // Attempt to set a DOM property to the given value.
108
+ // IE & FF throw for certain property-value combinations.
109
+ try {
110
+ node[name] = value==null ? '' : value;
111
+ } catch (e) { }
112
+ if ((value==null || value===false) && name!='spellcheck') node.removeAttribute(name);
113
+ }
114
+ else {
115
+ let ns = isSvg && (name !== (name = name.replace(/^xlink:?/, '')));
116
+ // spellcheck is treated differently than all other boolean values and
117
+ // should not be removed when the value is `false`. See:
118
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-spellcheck
119
+ if (value==null || value===false) {
120
+ if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());
121
+ else node.removeAttribute(name);
122
+ }
123
+ else if (typeof value!=='function') {
124
+ if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);
125
+ else node.setAttribute(name, value);
126
+ }
127
+ }
128
+ }
129
+
130
+
131
+ /**
132
+ * Proxy an event to hooked event handlers
133
+ * @param {Event} e The event object from the browser
134
+ * @private
135
+ */
136
+ function eventProxy(e) {
137
+ return this._listeners[e.type](options.event && options.event(e) || e);
138
+ }