@hpcc-js/html 2.31.0 → 2.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es6.js +2 -2
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +10 -9
- package/src/__package__.ts +2 -2
- package/types/__package__.d.ts +2 -2
- package/types-3.4/__package__.d.ts +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.js","../src/HTMLTooltip.ts","../src/SimpleTable.ts","../src/StyledTable.ts","../src/BreakdownTable.ts","../../../node_modules/preact/src/options.js","../../../node_modules/preact/src/component.js","../../../node_modules/preact/src/render.js","../../../node_modules/preact/src/create-context.js","../../../node_modules/preact/src/constants.js","../../../node_modules/preact/src/util.js","../../../node_modules/preact/src/create-element.js","../../../node_modules/preact/src/diff/children.js","../../../node_modules/preact/src/diff/props.js","../../../node_modules/preact/src/diff/index.js","../../../node_modules/preact/src/diff/catch-error.js","../../../node_modules/preact/hooks/src/index.js","../src/JSXWidget.ts","../src/reactD3.ts","../src/VizComponent.tsx","../src/VizInstance.tsx","../src/StatsTable.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/TitleBar.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/html\";\r\nexport const PKG_VERSION = \"2.31.0\";\r\nexport const BUILD_VERSION = \"2.81.0\";\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { scopedLogger, ScopedLogging } from \"@hpcc-js/util\";\nimport { select as d3Select } from \"d3-selection\";\n\ntype Direction = \"n\" | \"s\" | \"e\" | \"w\" | \"ne\" | \"nw\" | \"se\" | \"sw\";\ntype Position = { x: number, y: number };\ntype DirectionalBBox = { [key in Direction]: Position; };\n\ntype Rectangle = { top: number, left: number, width: number, height: number };\nexport class HTMLTooltip extends HTMLWidget {\n\n public _triggerElement;\n public _contentNode;\n protected _prevContentNode;\n\n protected _tooltipElement;\n protected _arrowElement;\n protected _tooltipHTMLCallback = (data?) => \"<b>_tooltipHTMLCallback is undefined</b>\";\n protected _logger: ScopedLogging = scopedLogger(\"html/HTMLTooltip\");\n constructor() {\n super();\n this.visible(false);\n }\n\n tooltipHTML(_: (data?) => string): this {\n this._tooltipHTMLCallback = _;\n return this;\n }\n\n tooltipContent(_): this {\n if (!arguments.length) return this._contentNode;\n this._contentNode = _;\n return this;\n }\n\n triggerElement(_): this {\n this._triggerElement = _;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const body = d3Select(\"body\");\n this._tooltipElement = body.append(\"div\")\n .attr(\"class\", \"tooltip-div\")\n .style(\"z-index\", \"2147483638\")\n .style(\"position\", \"fixed\")\n ;\n this._arrowElement = body.append(\"div\")\n .attr(\"class\", \"arrow-div\")\n .style(\"z-index\", \"2147483638\")\n .style(\"position\", \"fixed\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this._contentNode !== this._prevContentNode){\n const node = this._tooltipElement.node();\n [...node.querySelectorAll(\"*\")]\n .map(n=>n.__data__)\n .filter(n=>n)\n .forEach(w=>{\n if(typeof w.target === \"function\"){\n w.target(null);\n }\n if(typeof w.exit === \"function\"){\n w.exit();\n }\n });\n node.innerHTML = \"\";\n node.appendChild(this._contentNode);\n this._prevContentNode = this._contentNode;\n }\n\n if (this._contentNode) {\n this.onShowContent(this._contentNode);\n } else {\n this._tooltipElement\n .html(() => {\n return this._tooltipHTMLCallback(this.data());\n });\n }\n if(this.fitContent()){\n this._tooltipElement\n .style(\"width\", \"auto\")\n .style(\"height\", \"auto\")\n .style(\"padding\", \"0px\")\n .style(\"box-sizing\", \"content-box\")\n ;\n const rect = this._tooltipElement.node().getBoundingClientRect();\n this.tooltipWidth_default(rect.width);\n this.tooltipHeight_default(rect.height);\n }\n this._closing = false;\n this._tooltipElement\n .style(\"background-color\", this.tooltipColor())\n .style(\"color\", this.fontColor())\n .style(\"width\", this.tooltipWidth() + \"px\")\n .style(\"height\", this.tooltipHeight() + \"px\")\n .style(\"opacity\", 1)\n .style(\"padding\", this.padding() + \"px\")\n .style(\"pointer-events\", this.enablePointerEvents() ? \"all\" : \"none\")\n .style(\"box-sizing\", \"content-box\")\n ;\n this._arrowElement\n .style(\"opacity\", 1)\n .style(\"pointer-events\", \"none\")\n ;\n this.updateTooltipPosition();\n }\n\n onShowContent(node) {\n \n }\n\n protected updateTooltipPosition(): Position {\n const bbox = this.calcReferenceBBox();\n const direction = this.calcTooltipDirection(bbox);\n const box = bbox[direction];\n this._tooltipElement\n .style(\"top\", box.y + \"px\")\n .style(\"left\", box.x + \"px\")\n ;\n this.setArrowPosition(box, direction);\n return box;\n }\n\n protected calcTooltipDirection(bbox: DirectionalBBox): Direction {\n const directions: Direction[] = Object.keys(bbox) as Direction[];\n\n const defaultDirection = this.direction();\n directions.sort((a, b) => a === defaultDirection ? -1 : 1);\n const windowRect = {\n top: 0,\n left: 0,\n width: window.innerWidth,\n height: window.innerHeight\n };\n for (let i = 0; i < directions.length; i++) {\n const tooltipRect = {\n top: bbox[directions[i]].y,\n left: bbox[directions[i]].x,\n width: this.tooltipWidth(),\n height: this.tooltipHeight()\n };\n if (this.rectFits(tooltipRect, windowRect)) {\n return directions[i];\n }\n }\n this._logger.warning(`Tooltip doesn't fit in the window for any of the directions. Defaulting to '${defaultDirection}'`);\n this._logger.debug(windowRect);\n this._logger.debug({\n top: bbox[defaultDirection].y,\n left: bbox[defaultDirection].x,\n width: this.tooltipWidth(),\n height: this.tooltipHeight()\n });\n return defaultDirection;\n }\n\n protected rectFits(innerRect: Rectangle, outerRect: Rectangle): boolean {\n return (\n innerRect.top >= outerRect.top &&\n innerRect.left >= outerRect.left &&\n innerRect.width + innerRect.left <= outerRect.width + outerRect.left &&\n innerRect.height + innerRect.top <= outerRect.height + outerRect.top\n );\n }\n\n protected setArrowPosition(point: Position, direction: Direction) {\n let top;\n let left;\n let visibleBorderStyle = \"border-top-color\";\n this._arrowElement\n .style(\"border\", `${this.arrowHeight()}px solid ${this.tooltipColor()}`)\n .style(\"border-top-color\", \"transparent\")\n .style(\"border-right-color\", \"transparent\")\n .style(\"border-bottom-color\", \"transparent\")\n .style(\"border-left-color\", \"transparent\")\n ;\n switch (direction) {\n case \"n\":\n top = point.y + this.tooltipHeight() + (this.padding() * 2);\n left = point.x + (this.tooltipWidth() / 2) - (this.arrowWidth() / 2) + this.padding();\n visibleBorderStyle = \"border-top-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowHeight()}px`)\n .style(\"border-bottom-width\", \"0px\")\n .style(\"border-left-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-right-width\", `${this.arrowWidth() / 2}px`)\n ;\n break;\n case \"s\":\n top = point.y - this.arrowHeight();\n left = point.x + this.padding() + (this.tooltipWidth() / 2) - (this.arrowWidth() / 2);\n visibleBorderStyle = \"border-bottom-color\";\n this._arrowElement\n .style(\"border-top-width\", \"0px\")\n .style(\"border-bottom-width\", `${this.arrowHeight()}px`)\n .style(\"border-left-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-right-width\", `${this.arrowWidth() / 2}px`)\n ;\n break;\n case \"e\":\n top = point.y + (this.tooltipHeight() / 2) + this.padding() - (this.arrowWidth() / 2);\n left = point.x - this.arrowHeight();\n visibleBorderStyle = \"border-right-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-bottom-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-left-width\", \"0px\")\n .style(\"border-right-width\", `${this.arrowHeight()}px`)\n ;\n break;\n case \"w\":\n top = point.y + (this.tooltipHeight() / 2) - (this.arrowWidth() / 2) + this.padding();\n left = point.x + this.tooltipWidth() + (this.padding() * 2);\n visibleBorderStyle = \"border-left-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-bottom-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-left-width\", `${this.arrowHeight()}px`)\n .style(\"border-right-width\", \"0px\")\n ;\n break;\n }\n if (typeof top !== \"undefined\" && typeof left !== \"undefined\") {\n this._arrowElement\n .style(\"top\", top + \"px\")\n .style(\"left\", left + \"px\")\n .style(visibleBorderStyle, this.tooltipColor())\n .style(\"opacity\", 1)\n ;\n } else {\n this._arrowElement\n .style(\"opacity\", 0)\n ;\n }\n return point;\n }\n\n protected getReferenceNode() {\n if (!this._triggerElement) {\n return this.element().node().parentNode.parentNode;\n }\n return this._triggerElement.node();\n }\n public _cursorLoc;\n protected calcReferenceBBox() {\n const node = this.getReferenceNode();\n let { top, left, width, height } = node.getBoundingClientRect();\n const wholeW = this.tooltipWidth();\n const wholeH = this.tooltipHeight();\n const halfW = wholeW / 2;\n const halfH = wholeH / 2;\n const arrowH = this.arrowHeight();\n const p = this.padding();\n const p2 = p * 2;\n\n if(this.followCursor() && this._cursorLoc) {\n \n left = this._cursorLoc[0];\n top = this._cursorLoc[1];\n width = 1;\n height = 1;\n }\n const bbox = {\n n: {\n x: left + (width / 2) - halfW - p,\n y: top - wholeH - arrowH - p2\n },\n e: {\n x: left + width + arrowH,\n y: top + (height / 2) - halfH - p\n },\n s: {\n x: left + (width / 2) - halfW - p,\n y: top + height + arrowH\n },\n w: {\n x: left - wholeW - arrowH - p2,\n y: top + (height / 2) - halfH - p\n },\n nw: {\n x: left - wholeW - p2,\n y: top - wholeH - p2\n },\n ne: {\n x: left + width,\n y: top - wholeH - p2\n },\n se: {\n x: left + width,\n y: top + height\n },\n sw: {\n x: left - wholeW - p2,\n y: top + height\n }\n };\n return bbox;\n }\n\n private _closing = false;\n mouseout() {\n this._closing = true;\n this._tooltipElement.on(\"mouseover\", () => {\n this._closing = false;\n });\n this._tooltipElement.on(\"mouseout\", () => {\n this.mouseout();\n });\n setTimeout(()=>{\n if(this._closing){\n this.visible(false);\n }\n }, this.closeDelay());\n }\n\n visible(): boolean;\n visible(_: boolean): this;\n visible(_?: boolean): boolean | this {\n if (!arguments.length) return super.visible();\n if (this._arrowElement) {\n this._arrowElement.style(\"visibility\", _ ? \"visible\" : \"hidden\");\n this._tooltipElement.style(\"visibility\", _ ? \"visible\" : \"hidden\");\n }\n super.visible(_);\n return this;\n }\n\n exit(domNode, element) {\n if (this._arrowElement) {\n this._arrowElement.remove();\n this._tooltipElement.remove();\n }\n super.exit(domNode, element);\n }\n}\nHTMLTooltip.prototype._class += \" html_HTMLTooltip\";\n\nexport interface HTMLTooltip {\n padding(): number;\n padding(_: number): this;\n direction(): Direction;\n direction(_: Direction): this;\n arrowHeight(): number;\n arrowHeight(_: number): this;\n arrowWidth(): number;\n arrowWidth(_: number): this;\n fontColor(): string;\n fontColor(_: string): this;\n tooltipColor(): string;\n tooltipColor(_: string): this;\n tooltipWidth(): number;\n tooltipWidth(_: number): this;\n tooltipWidth_default(_: number);\n tooltipHeight(): number;\n tooltipHeight(_: number): this;\n tooltipHeight_default(_: number);\n followCursor(): boolean;\n followCursor(_: boolean): this;\n enablePointerEvents(): boolean;\n enablePointerEvents(_: boolean): this;\n closeDelay(): number;\n closeDelay(_: number): this;\n fitContent(): boolean;\n fitContent(_: boolean): this;\n \n}\n\nHTMLTooltip.prototype.publish(\"fitContent\", false, \"boolean\", \"If true, tooltip will grow to fit its html content\");\nHTMLTooltip.prototype.publish(\"followCursor\", false, \"boolean\", \"If true, tooltip will display relative to cursor location\");\nHTMLTooltip.prototype.publish(\"closeDelay\", 400, \"number\", \"Number of milliseconds to wait before closing tooltip (cancelled on tooltip mouseover event)\");\nHTMLTooltip.prototype.publish(\"direction\", \"n\", \"set\", \"Direction in which to display the tooltip\", [\"n\", \"s\", \"e\", \"w\", \"ne\", \"nw\", \"se\", \"sw\"]);\nHTMLTooltip.prototype.publish(\"padding\", 8, \"number\", \"Padding (pixels)\");\nHTMLTooltip.prototype.publish(\"arrowWidth\", 16, \"number\", \"Width (or height depending on direction) of the tooltip arrow (pixels)\");\nHTMLTooltip.prototype.publish(\"arrowHeight\", 8, \"number\", \"Height (or width depending on direction) of the tooltip arrow (pixels)\");\nHTMLTooltip.prototype.publish(\"fontColor\", \"#FFF\", \"html-color\", \"The default font color for text in the tooltip\");\nHTMLTooltip.prototype.publish(\"tooltipColor\", \"#000000EE\", \"html-color\", \"Background color of the tooltip\");\nHTMLTooltip.prototype.publish(\"tooltipWidth\", 200, \"number\", \"Width of the tooltip (not including arrow) (pixels)\");\nHTMLTooltip.prototype.publish(\"tooltipHeight\", 200, \"number\", \"Height of the tooltip (not including arrow) (pixels)\");\nHTMLTooltip.prototype.publish(\"enablePointerEvents\", false, \"boolean\", \"If true, the 'pointer-events: all' style will be used\");\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nexport class SimpleTable extends HTMLWidget {\n protected _table;\n protected _tbody;\n protected _thead;\n protected _theadRow;\n constructor() {\n super();\n }\n\n protected transformData() {\n return this.data();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._table = element.append(\"table\");\n this._thead = this._table.append(\"thead\");\n this._theadRow = this._thead.append(\"tr\");\n this._tbody = this._table.append(\"tbody\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._table\n .style(\"width\", this.autoWidth() ? \"auto\" : \"100%\")\n ;\n const theadTrSelection = this._theadRow.selectAll(\"th\").data(this.columns());\n theadTrSelection.enter()\n .append(\"th\")\n .attr(\"class\", (n, i) => `th-${i}`)\n .merge(theadTrSelection)\n .text(_d => (_d).toString())\n ;\n theadTrSelection.exit().remove();\n const trSelection = this._tbody.selectAll(\"tr\").data(this.transformData());\n trSelection.enter()\n .append(\"tr\")\n .merge(trSelection)\n .each(function (this, d) {\n const tr = d3Select(this);\n const tdSelection = tr.selectAll(\"td\").data(d);\n tdSelection.enter()\n .append(\"td\")\n .attr(\"class\", (n, i) => `col-${i}`)\n .merge(tdSelection as any)\n .text(_d => (_d).toString())\n ;\n tdSelection.exit().remove();\n })\n ;\n trSelection.exit().remove();\n }\n}\nSimpleTable.prototype._class += \" html_SimpleTable\";\n\nexport interface SimpleTable {\n autoWidth(): boolean;\n autoWidth(_: boolean): this;\n}\nSimpleTable.prototype.publish(\"autoWidth\", false, \"boolean\", \"If true, table width will be set to 'auto'. If false, the width is set to '100%'\");\n","import { SimpleTable } from \"./SimpleTable\";\n\nexport class StyledTable extends SimpleTable {\n constructor() {\n super();\n }\n\n protected applyStyleObject(selection, styleObject) {\n Object.keys(styleObject).forEach(styleName => {\n selection.style(styleName, styleObject[styleName]);\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n element.selectAll(\"tr,th,td\")\n .attr(\"style\", \"\")\n .style(\"font-family\", this.fontFamily())\n .style(\"color\", this.fontColor())\n ;\n\n this.theadColumnStyles().forEach((styleObj, i) => {\n this.applyStyleObject(element.select(`.th-${i}`), styleObj);\n });\n this.tbodyColumnStyles().forEach((styleObj, i) => {\n this.applyStyleObject(element.selectAll(`.col-${i}`), styleObj);\n });\n const evenRowStylesExist = Object.keys(this.evenRowStyles()).length > 0;\n const lastRowStylesExist = Object.keys(this.lastRowStyles()).length > 0;\n const tbodyRows = element.selectAll(\"tbody > tr\");\n if (evenRowStylesExist) {\n const tbodyEvenRows = tbodyRows.select(function (d, i) { return i % 2 ? this : null; });\n this.applyStyleObject(tbodyEvenRows, this.evenRowStyles());\n }\n if (lastRowStylesExist) {\n const tbodyLastRow = tbodyRows.select(function (d, i, arr) { return i === arr.length - 1 ? this : null; });\n this.applyStyleObject(tbodyLastRow, this.lastRowStyles());\n }\n }\n}\nStyledTable.prototype._class += \" html_StyledTable\";\n\nexport interface StyledTable {\n fontFamily(): string;\n fontFamily(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n tbodyColumnStyles(): Array<{[styleID: string]: any}>;\n tbodyColumnStyles(_: Array<{[styleID: string]: any}>): this;\n tbodyColumnStyles_default(_: Array<{[styleID: string]: any}>): this;\n theadColumnStyles(): Array<{[styleID: string]: any}>;\n theadColumnStyles(_: Array<{[styleID: string]: any}>): this;\n theadColumnStyles_default(_: Array<{[styleID: string]: any}>): this;\n lastRowStyles(): {[styleID: string]: any};\n lastRowStyles(_: {[styleID: string]: any}): this;\n lastRowStyles_default(_: {[styleID: string]: any}): this;\n evenRowStyles(): {[styleID: string]: any};\n evenRowStyles(_: {[styleID: string]: any}): this;\n evenRowStyles_default(_: {[styleID: string]: any}): this;\n}\n\nStyledTable.prototype.publish(\"fontFamily\", \"Verdana\", \"string\", \"Base font-family used within the table\");\nStyledTable.prototype.publish(\"fontColor\", \"#333\", \"string\", \"Base font color used within the table\");\nStyledTable.prototype.publish(\"theadColumnStyles\", [], \"array\", 'Array of objects containing styles for the thead columns (ex: [{\"color\":\"red\"},{\"color\":\"blue\"}])');\nStyledTable.prototype.publish(\"tbodyColumnStyles\", [], \"array\", 'Array of objects containing styles for the tbody columns (ex: [{\"color\":\"red\"},{\"color\":\"blue\"}])');\nStyledTable.prototype.publish(\"lastRowStyles\", {}, \"object\", 'Object containing styles for the last row (ex: {\"color\":\"red\"})');\nStyledTable.prototype.publish(\"evenRowStyles\", {}, \"object\", 'Object containing styles for even rows (ex: {\"background-color\":\"#AAA\"})');\n","import { HTMLTooltip } from \"./HTMLTooltip\";\nimport { StyledTable } from \"./StyledTable\";\n\nexport class BreakdownTable extends StyledTable {\n protected _table;\n protected _tbody;\n protected _tooltip;\n constructor() {\n super();\n }\n\n protected transformData() {\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n return this.breakdownData(rowCount);\n }\n\n protected breakdownData(limit: number): any[] {\n const len = this.data().length;\n const sum = this.data().reduce((acc, row) => acc + row[1], 0);\n const data = [];\n let percSum = 0;\n this.data().sort((a, b) => a[1] > b[1] ? -1 : 1);\n const hiddenRowCount = len - limit;\n const showOther = hiddenRowCount > 0;\n this.data()\n .filter((_, i) => showOther ? i < limit - 1 : true)\n .forEach(row => {\n const perc = Math.round((row[1] / sum) * 100);\n percSum += perc;\n data.push([row[0], perc + \"%\"]);\n });\n if (showOther) {\n const otherLabel = `${this.otherLabel()} (${len - limit + 1})`;\n const otherPercentage = \"~\" + (100 - percSum) + \"%\";\n data.push([otherLabel, otherPercentage]);\n }\n return data;\n }\n\n protected calculateRowCount(): number {\n const theadRowHeight = this.columns().length > 0 ? this.thFontSize() + 5 : 0;\n const tbodyRowHeight = this.fontSize() + 5;\n const tbodyAvailableHeight = this.height() - theadRowHeight;\n const rowCount = Math.floor(tbodyAvailableHeight / tbodyRowHeight);\n return rowCount;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tooltip = new HTMLTooltip()\n .target(domNode)\n ;\n this._tooltip\n .tooltipHTML(data => {\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n const rowHeight = this.fontSize();\n const widestLabel = Math.max(...data.map(row => this.textSize(row[0], \"Verdana\", this.fontSize()).width));\n const widestPerc = 30;\n const colCount = 2;\n const w = colCount * (widestLabel + widestPerc) + (this._tooltip.padding() * 2);\n const h = rowHeight * Math.ceil((data.length - rowCount) / colCount) + (this._tooltip.padding() * 2);\n this._tooltip.tooltipWidth(w);\n this._tooltip.tooltipHeight(h);\n const otherData = this.breakdownData(this.data().length).slice(rowCount - 1);\n return `<div style=\"\n width: 100%;\n height: 100%;\n font-size: ${this.fontSize()}px\n \">${\n otherData.map(row => `<div style=\"\n float:left;\n width:${Math.floor(99 / colCount)}%;\n \">${row[0]}: ${row[1]}</div>`\n ).join(\"\")\n }</div>`;\n })\n ;\n }\n\n update(domNode, element) {\n this.theadColumnStyles_default([\n {\n \"color\": this.thFirstColor(),\n \"font-size\": this.thFontSize() + \"px\",\n \"font-weight\": this.thFontWeight(),\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"width\": \"1%\",\n \"font-size\": this.thFontSize() + \"px\",\n \"font-weight\": this.thFontWeight(),\n \"text-align\": this.percentageAlignment(),\n \"padding\": \"0px\"\n }\n ]);\n this.tbodyColumnStyles_default([\n {\n \"color\": this.topLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": \"normal\",\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"color\": this.topPercentageColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": \"normal\",\n \"text-align\": this.percentageAlignment(),\n \"width\": \"1%\",\n \"padding\": \"0px\"\n }\n ]);\n this.lastRowStyles_default([\n {\n \"color\": this.otherLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": this.otherLabelBold() ? \"bold\" : \"normal\",\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"color\": this.otherLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": this.otherPercentageBold() ? \"bold\" : \"normal\",\n \"text-align\": this.percentageAlignment(),\n \"width\": \"1%\",\n \"padding\": \"0px\"\n }\n ]);\n\n super.update(domNode, element);\n\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n if (rowCount < this.data().length) {\n const lastRow = element.select(\"tbody > tr:last-child\");\n const context = this;\n lastRow\n .on(\"mouseout.tooltip\", d => {\n context._tooltip._triggerElement = lastRow;\n context._tooltip\n .visible(false)\n .render()\n ;\n })\n .on(\"mouseenter.tooltip\", d => {\n context._tooltip._triggerElement = lastRow;\n context._tooltip\n .direction(\"n\")\n .data(context.data())\n .visible(true)\n .render()\n ;\n })\n ;\n }\n }\n\n}\nBreakdownTable.prototype._class += \" html_BreakdownTable\";\n\nexport interface BreakdownTable {\n useCalculatedRowCount(): boolean;\n useCalculatedRowCount(_: boolean): this;\n rowCount(): number;\n rowCount(_: number): this;\n fontSize(): number;\n fontSize(_: number): this;\n thFirstColor(): string;\n thFirstColor(_: string): this;\n thLastColor(): string;\n thLastColor(_: string): this;\n thFontSize(): number;\n thFontSize(_: number): this;\n thFontWeight(): string;\n thFontWeight(_: string): this;\n labelAlignment(): \"left\" | \"center\" | \"right\";\n labelAlignment(_: \"left\" | \"center\" | \"right\"): this;\n percentageAlignment(): \"left\" | \"center\" | \"right\";\n percentageAlignment(_: \"left\" | \"center\" | \"right\"): this;\n topLabelColor(): string;\n topLabelColor(_: string): this;\n topPercentageColor(): string;\n topPercentageColor(_: string): this;\n topPercentageBold(): boolean;\n topPercentageBold(_: boolean): this;\n otherLabel(): string;\n otherLabel(_: string): this;\n otherLabelColor(): string;\n otherLabelColor(_: string): this;\n otherLabelBold(): boolean;\n otherLabelBold(_: boolean): this;\n otherPercentageColor(): string;\n otherPercentageColor(_: string): this;\n otherPercentageBold(): boolean;\n otherPercentageBold(_: boolean): this;\n}\n\nBreakdownTable.prototype.publish(\"useCalculatedRowCount\", true, \"boolean\", \"If true, rowCount will be calculated and its default will be overwritten\");\nBreakdownTable.prototype.publish(\"rowCount\", 5, \"number\", \"Number of total rows to display (including the 'other' row)\", undefined, { disable: w => w.useCalculatedRowCount() });\nBreakdownTable.prototype.publish(\"fontSize\", 14, \"number\", \"Font size (pixels)\");\nBreakdownTable.prototype.publish(\"labelAlignment\", \"left\", \"set\", \"Alignment of the label column text\", [\"left\", \"center\", \"right\"]);\nBreakdownTable.prototype.publish(\"percentageAlignment\", \"center\", \"set\", \"Alignment of the percentage column text\", [\"left\", \"center\", \"right\"]);\nBreakdownTable.prototype.publish(\"topLabelColor\", \"#333\", \"html-color\", \"Color of displayed 'top' labels\");\nBreakdownTable.prototype.publish(\"topPercentageColor\", \"#1A99D5\", \"html-color\", \"Color of displayed 'top' percentages\");\nBreakdownTable.prototype.publish(\"topPercentageBold\", true, \"html-color\", \"If true, the 'top' percentages will be bold\");\nBreakdownTable.prototype.publish(\"otherLabel\", \"Other\", \"string\", \"Label text for the 'other' row\");\nBreakdownTable.prototype.publish(\"otherLabelColor\", \"#AAA\", \"html-color\", \"Color of the 'other' label\");\nBreakdownTable.prototype.publish(\"otherLabelBold\", false, \"html-color\", \"If true, the 'other' label will be bold\");\nBreakdownTable.prototype.publish(\"otherPercentageColor\", \"#AAA\", \"html-color\", \"Color of the 'other' percentage\");\nBreakdownTable.prototype.publish(\"otherPercentageBold\", false, \"html-color\", \"If true, the 'other' percentage will be bold\");\nBreakdownTable.prototype.publish(\"thFontWeight\", \"bold\", \"string\", \"Font weight for th elements\");\nBreakdownTable.prototype.publish(\"thFontSize\", 26, \"number\", \"Font size for th elements\");\nBreakdownTable.prototype.publish(\"thFirstColor\", \"#333\", \"html-color\", \"Text color of the first th element\");\nBreakdownTable.prototype.publish(\"thLastColor\", \"#333\", \"html-color\", \"Text color of the last th element\");\n","import { _catchError } from './diff/catch-error';\n\n/** @type {import('./internal').Options} */\nconst options = {\n\t_catchError\n};\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}\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;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\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\tthis._force = false;\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-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\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 && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\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 * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._context,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\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) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: 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 consistently 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\nlet prevDebounce;\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 (\n\t\t(!c._dirty && (c._dirty = true) && q.push(c) === 1) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || 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) renderComponent(p);\n\t}\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\nconst IS_HYDRATE = EMPTY_OBJ;\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\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\tcommitRoot(commitQueue, 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\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\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\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\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","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","/**\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';\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\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type === 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\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 properties 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 * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\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>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\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 * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\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\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\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\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tcontext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (childVNode._lastDomChild != null) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-null _lastDomChild. Continue the diff from the end of\n\t\t\t\t\t\t// this Fragment's DOM tree.\n\t\t\t\t\t\tnewDom = childVNode._lastDomChild;\n\n\t\t\t\t\t\t// Eagerly cleanup _lastDomChild. We don't need to persist the value because\n\t\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\t// diffing Components and Fragments.\n\t\t\t\t\t\tchildVNode._lastDomChild = null;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tsibDom = oldDom, j = 0;\n\t\t\t\t\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildrenLength;\n\t\t\t\t\t\t\t\tj += 2\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t\t\t\t// there are probably some internal data structures that aren't\n\t\t\t\t\t\t// updated properly.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t\t\t\t// value check in `diff()` won't be skipped.\n\t\t\t\t\t\tif (newParentVNode.type == 'option') {\n\t\t\t\t\t\t\tparentDom.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\toldDom = newDom.nextSibling;\n\n\t\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t\t// At this point, if childVNode._lastDomChild existed, then\n\t\t\t\t\t\t// newDom = childVNode._lastDomChild per line 101. Else it is\n\t\t\t\t\t\t// the same as childVNode._dom, meaning this component returned\n\t\t\t\t\t\t// only a single DOM node\n\t\t\t\t\t\tnewParentVNode._lastDomChild = newDom;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t\treturn childVNode;\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') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\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], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @param {(vnode: import('../internal').VNode) => import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array<import('../internal').VNode | string | number>} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\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 * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\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\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\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} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (value == null || value === false) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\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\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { 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} 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 element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\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 * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = 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\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: 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} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && 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} else {\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\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\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\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, cctx);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, cctx) === false\n\t\t\t\t) {\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\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\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\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\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\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = toChildArray(\n\t\t\t\tisTopLevelFragment ? tmp.props.children : tmp\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(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = null;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\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>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\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\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t(newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type)\n\t\t\t) {\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\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: 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 (excessDomChildren != null) {\n\t\t\texcessDomChildren[excessDomChildren.indexOf(dom)] = null;\n\t\t}\n\n\t\tif (oldProps !== newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else 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\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\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} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\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} catch (e) {\n\t\t\t\toptions._catchError(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","import { enqueueRender } from '../component';\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 vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t} else if (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tif (currentComponent.__hooks) {\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\tcurrentComponent.__hooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\tif (hooks._pendingEffects.length) {\n\t\t\tafterPaint(afterPaintEffects.push(c));\n\t\t}\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t);\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\thooks._list.forEach(hook => hook._cleanup && hook._cleanup());\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index) {\n\tif (options._hook) options._hook(currentComponent);\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = { _list: [], _pendingEffects: [] });\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++);\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref === 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\tif (!provider) return context._defaultValue;\n\tconst state = getHookState(currentIndex++);\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window !== 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\n\t\t/* istanbul ignore next */\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (hook._cleanup) hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\tconst result = hook._value();\n\tif (typeof result === 'function') hook._cleanup = result;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f === 'function' ? f(arg) : f;\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Component, createElement, render } from \"@hpcc-js/preact-shim\";\n\nexport class JSXWidget extends HTMLWidget {\n static Component = Component;\n static createElement = createElement;\n protected rootNode;\n\n jsxRender(jsx, domNode) {\n this.rootNode = render(jsx, domNode, this.rootNode);\n }\n}\nJSXWidget.prototype._class += \" html_JSXWidget\";\n","import { select as d3Select } from \"d3-selection\";\n\nexport type ReactFn = (attrs: { [key: string]: string }) => VNode;\n\nexport type IVNode = new (attrs: { [key: string]: string }, children: VNode[]) => VNode;\n\nexport class VNode {\n protected _attrs: { [key: string]: string };\n protected _children: VNode[];\n\n constructor(attrs: { [key: string]: string }, children: VNode[]) {\n this._attrs = attrs;\n this._children = children;\n }\n\n type(): string {\n return \"div\";\n }\n\n attrs(): { [key: string]: string } {\n return this._attrs;\n }\n\n attr(key) {\n return this._attrs[key];\n }\n\n children(): VNode[] {\n return this._children;\n }\n\n update(targetElement) {\n for (const key in this._attrs) {\n targetElement.attr(key, this._attrs[key]);\n }\n }\n\n render(targetElement) {\n const thisElement = targetElement.selectAll(`${targetElement.node().tagName} > *`).data([this]);\n thisElement.exit()\n .each(d => console.log(`render: Exit - ${d.type()}`))\n .remove();\n return thisElement.enter().append(this.type())\n .each(d => console.log(`render: Enter - ${d.type()}`))\n .attr(\"reactd3\", 0)\n .merge(thisElement)\n .each(function (d: VNode) {\n const element = d3Select(this);\n d.update(element);\n d.renderChildren(element);\n })\n ;\n }\n\n renderChildren(targetElement) {\n const thisElement = targetElement.selectAll(`${targetElement.node().tagName} > *`).data(this._children);\n thisElement.exit()\n .each(d => console.log(`renderChildren: Exit - ${d.type()}`))\n .remove();\n return thisElement.enter().append(d => document.createElement(d.type()))\n .each(d => console.log(`renderChildren: Enter - ${d.type()}`))\n .attr(\"reactd3\", (_d, i) => i)\n .merge(thisElement)\n .each(function (d: VNode) {\n const element = d3Select(this);\n d.update(element);\n d.renderChildren(element);\n })\n ;\n }\n}\n\nclass ConstVNode extends VNode {\n protected _type: string;\n\n constructor(type: string, attrs: { [key: string]: string }, children: VNode[]) {\n super(attrs, children);\n this._type = type;\n }\n\n type(): string {\n return this._type;\n }\n}\n\nclass TextVNode extends VNode {\n protected _text: string;\n\n constructor(text: string) {\n super({}, []);\n this._text = text;\n }\n\n type(): string {\n return \"span\";\n }\n\n update(targetElement) {\n super.update(targetElement);\n targetElement.text(this._text);\n }\n}\n\nfunction isReactFn(_): _ is ReactFn {\n return typeof _ === \"function\";\n}\n\nfunction isIVNode(_: any): _ is IVNode {\n return _.prototype && _.prototype instanceof VNode;\n}\n\nexport class ReactD3 {\n // static createElementXXX(type: string | ReactFn | IVNode, attrs: { [key: string]: string }, ...children: Array<string | VNode>): VNode {\n static createElement(type: string | ReactFn | IVNode, attrs: { [key: string]: string }, ...children: Array<string | VNode>): VNode {\n if (isIVNode(type)) {\n return new (type as any)(attrs);\n } else if (isReactFn(type)) {\n return type(attrs);\n }\n return new ConstVNode(type, attrs, children.map(child => {\n if (typeof child === \"string\") {\n return new TextVNode(child);\n }\n return child;\n }));\n }\n\n static render(vdom: VNode, targetElement) {\n vdom.render(targetElement);\n }\n}\n","import * as React from \"@hpcc-js/preact-shim\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nexport class VizComponent extends JSXWidget.Component<any, any> {\n widget;\n\n refreshProps() {\n for (const key in (this as any).props) {\n if (this.widget[key] && typeof this.widget[key] === \"function\") {\n this.widget[key]((this as any).props[key]);\n }\n }\n }\n\n componentDidMount() {\n this.widget = new (this as any).props.type()\n .target((this as any).base)\n ;\n this.refreshProps();\n this.widget\n .render()\n ;\n }\n\n componentWillUnmount() {\n this.widget\n .target(null)\n .render()\n ;\n }\n\n render() {\n return <div style={(this as any).props.style} />;\n }\n\n componentDidUpdate() {\n this.refreshProps();\n this.widget.render();\n }\n}\n","import * as React from \"@hpcc-js/preact-shim\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nexport class VizInstance extends JSXWidget.Component<any, any> {\n widget;\n\n refreshProps() {\n for (const key in (this as any).props) {\n if (this.widget[key] && typeof this.widget[key] === \"function\") {\n this.widget[key]((this as any).props[key]);\n }\n }\n }\n\n componentDidMount() {\n this.widget = (this as any).props.instance\n .target((this as any).base)\n ;\n this.refreshProps();\n this.widget\n .render()\n ;\n }\n\n componentWillUnmount() {\n this.widget\n .target(null)\n .render()\n ;\n }\n\n render() {\n return <div style={(this as any).props.style} />;\n }\n\n componentDidUpdate() {\n this.refreshProps();\n this.widget.render();\n }\n}\n","import { format as d3Format } from \"d3-format\";\nimport { StyledTable } from \"./StyledTable\";\n\nexport class StatsTable extends StyledTable {\n\n protected transformData() {\n const totalRow = [[\"Total\", 0, 0]];\n const data = this.data();\n data.forEach(row => {\n totalRow[0][1] += row[1];\n totalRow[0][2] += row[2];\n });\n return data\n .concat(totalRow)\n .map(row => {\n return [\n row[0],\n this.secondColumnFormat_exists() ? d3Format(this.secondColumnFormat())(row[1]) : row[1],\n this.thirdColumnFormat_exists() ? d3Format(this.thirdColumnFormat())(row[2]) : row[2]\n ];\n })\n ;\n }\n\n update(domNode, element) {\n this.tbodyColumnStyles_default([\n {\n \"font-weight\": \"bold\",\n \"width\": this.firstColumnWidth(),\n \"text-align\": \"left\"\n },\n {\n \"width\": this.secondColumnWidth(),\n \"text-align\": \"right\"\n },\n {\n \"width\": this.thirdColumnWidth(),\n \"text-align\": \"right\"\n }\n ]);\n this.evenRowStyles_default([\n {\n \"font-weight\": \"bold\",\n \"width\": this.firstColumnWidth(),\n \"text-align\": \"left\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n },\n {\n \"width\": this.secondColumnWidth(),\n \"text-align\": \"right\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n },\n {\n \"width\": this.thirdColumnWidth(),\n \"text-align\": \"right\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n }\n ]);\n this.lastRowStyles_default({\n \"font-weight\": \"bold\"\n });\n super.update(domNode, element);\n }\n}\nStatsTable.prototype._class += \" html_StatsTable\";\n\nexport interface StatsTable {\n labelColor(): string;\n labelColor(_: string): this;\n primaryValueColor(): string;\n primaryValueColor(_: string): this;\n secondaryValueColor(): string;\n secondaryValueColor(_: string): this;\n evenRowFontColor(): string;\n evenRowFontColor(_: string): this;\n evenRowBackgroundColor(): string;\n evenRowBackgroundColor(_: string): this;\n firstColumnWidth(): string;\n firstColumnWidth(_: string): this;\n secondColumnWidth(): string;\n secondColumnWidth(_: string): this;\n thirdColumnWidth(): string;\n thirdColumnWidth(_: string): this;\n secondColumnFormat(): string;\n secondColumnFormat(_: string): this;\n secondColumnFormat_exists(): boolean;\n thirdColumnFormat(): string;\n thirdColumnFormat(_: string): this;\n thirdColumnFormat_exists(): boolean;\n}\nStatsTable.prototype.publish(\"labelColor\", \"#333\", \"html-color\", \"Color of the text in the first column\");\nStatsTable.prototype.publish(\"primaryValueColor\", \"#333\", \"html-color\", \"Color of the text in the second column\");\nStatsTable.prototype.publish(\"secondaryValueColor\", \"#333\", \"html-color\", \"Color of the text in the third column\");\nStatsTable.prototype.publish(\"evenRowBackgroundColor\", \"#333\", \"html-color\", \"Background color of the even rows\");\nStatsTable.prototype.publish(\"evenRowFontColor\", \"#333\", \"html-color\", \"Font color of the even rows\");\nStatsTable.prototype.publish(\"firstColumnWidth\", \"auto\", \"string\", \"CSS style applied as the 'width' for the first column (ex: 40px)\");\nStatsTable.prototype.publish(\"secondColumnWidth\", \"1%\", \"string\", \"CSS style applied as the 'width' for the second column (ex: 40px)\");\nStatsTable.prototype.publish(\"thirdColumnWidth\", \"1%\", \"string\", \"CSS style applied as the 'width' for the third column (ex: 40px)\");\nStatsTable.prototype.publish(\"secondColumnFormat\", \"$,.0f\", \"string\", \"d3-format specifier applied to the second column's values\", undefined, {optional: true});\nStatsTable.prototype.publish(\"thirdColumnFormat\", null, \"string\", \"d3-format specifier applied to the third column's values\", undefined, {optional: true});\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nimport \"../src/TitleBar.css\";\n\nexport interface IClickHandler {\n titleBarClick(src: Item, d, idx: number, groups): void;\n}\n\nexport class Item extends HTMLWidget {\n protected _owner: IClickHandler;\n protected _element;\n\n constructor(owner: IClickHandler) {\n super();\n this._owner = owner;\n this._tag = \"a\";\n }\n}\n\nexport class Button extends Item {\n private _icon: string;\n\n constructor(owner: IClickHandler, icon: string) {\n super(owner);\n this._icon = icon;\n }\n\n icon() {\n return this._icon;\n }\n\n enter(domNode: HTMLElement, element) {\n super.enter(domNode, element);\n element\n .attr(\"href\", \"#\")\n .on(\"click\", (d, idx, groups) => this._owner.titleBarClick(this, d, idx, groups))\n .append(\"i\")\n .attr(\"class\", `fa ${this._icon} fa-lg fa-fw`)\n ;\n }\n}\n\nexport class ToggleButton extends Button {\n\n enter(domNode: HTMLElement, element) {\n element.on(\"click.sel\", (d, idx, groups) => {\n this.selected(!this.selected());\n this.render();\n });\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._element.classed(\"selected\", this.selected());\n }\n}\nexport interface ToggleButton {\n selected(): boolean;\n selected(_: boolean): this;\n}\nToggleButton.prototype.publish(\"selected\", false, \"boolean\");\n\nexport class Spacer extends Item {\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .attr(\"class\", \"spacer\")\n .attr(\"href\", \"#\")\n .append(\"i\")\n ;\n }\n}\n\nexport class TitleBar extends JSXWidget {\n protected _divMain;\n protected _divIconBar;\n protected _divTitle;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._divMain = element.append(\"div\")\n .attr(\"class\", \"main\")\n ;\n this._divIconBar = this._divMain.append(\"div\")\n .attr(\"class\", \"icon-bar\")\n ;\n this._divTitle = this._divMain.append(\"div\")\n .attr(\"class\", \"title\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._divTitle.text(this.title());\n\n const icons = this._divIconBar.selectAll(\".icon-bar-item\").data(this.buttons());\n icons.enter().append(\"div\")\n .attr(\"class\", \"icon-bar-item\")\n .each(function (this: HTMLElement, d: Item) {\n d.target(this);\n })\n .merge(icons)\n .each(function (d: Item) {\n d.render();\n })\n ;\n icons.exit()\n .each(function (d: Item) {\n d.target(null);\n })\n .remove()\n ;\n icons.order();\n }\n}\nTitleBar.prototype._class += \" html_TitleBar\";\n\nexport interface TitleBar {\n title(): string;\n title(_: string): this;\n buttons(): Item[];\n buttons(items: Item[]): this;\n}\nTitleBar.prototype.publish(\"title\", \"\", \"string\");\nTitleBar.prototype.publish(\"buttons\", [], \"widgetArray\");\n"],"names":["scopedLogger","d3Select","HTMLWidget","options","q","defer","prevDebounce","IS_HYDRATE","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","normalizedProps","arguments","length","push","defaultProps","undefined","createVNode","key","ref","vnode","_children","_parent","_depth","_dom","_lastDomChild","_component","constructor","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","_dirty","debounceRendering","process","p","component","commitQueue","newDom","oldDom","parentDom","sort","a","b","_vnode","pop","_parentDom","diff","_context","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","isSvg","excessDomChildren","isHydrating","j","oldVNode","sibDom","firstChildDom","refs","oldChildren","oldChildrenLength","toChildArray","childVNode","outer","appendChild","nextSibling","insertBefore","value","unmount","applyRef","callback","flattened","Array","isArray","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","s","useCapture","nameLower","cssText","replace","toLowerCase","slice","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","e","event","newVNode","tmp","isNew","oldState","snapshot","clearProcessingException","provider","cctx","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","prototype","render","doRender","sub","state","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","_force","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","some","cb","call","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","_root","error","getDerivedStateFromError","setState","componentDidCatch","update","forceUpdate","Promise","then","bind","resolve","setTimeout","currentComponent","prevRaf","afterPaintEffects","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","flushAfterPaintEffects","__hooks","_pendingEffects","forEach","invokeCleanup","invokeEffect","hook","_cleanup","result","_value","hooks","requestAnimationFrame","raf","done","clearTimeout","timeout","cancelAnimationFrame","window","filter","_list","React.createElement","d3Format"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.js","../src/HTMLTooltip.ts","../src/SimpleTable.ts","../src/StyledTable.ts","../src/BreakdownTable.ts","../../../node_modules/preact/src/options.js","../../../node_modules/preact/src/component.js","../../../node_modules/preact/src/render.js","../../../node_modules/preact/src/create-context.js","../../../node_modules/preact/src/constants.js","../../../node_modules/preact/src/util.js","../../../node_modules/preact/src/create-element.js","../../../node_modules/preact/src/diff/children.js","../../../node_modules/preact/src/diff/props.js","../../../node_modules/preact/src/diff/index.js","../../../node_modules/preact/src/diff/catch-error.js","../../../node_modules/preact/hooks/src/index.js","../src/JSXWidget.ts","../src/reactD3.ts","../src/VizComponent.tsx","../src/VizInstance.tsx","../src/StatsTable.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/TitleBar.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/html\";\r\nexport const PKG_VERSION = \"2.35.0\";\r\nexport const BUILD_VERSION = \"2.94.0\";\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { scopedLogger, ScopedLogging } from \"@hpcc-js/util\";\nimport { select as d3Select } from \"d3-selection\";\n\ntype Direction = \"n\" | \"s\" | \"e\" | \"w\" | \"ne\" | \"nw\" | \"se\" | \"sw\";\ntype Position = { x: number, y: number };\ntype DirectionalBBox = { [key in Direction]: Position; };\n\ntype Rectangle = { top: number, left: number, width: number, height: number };\nexport class HTMLTooltip extends HTMLWidget {\n\n public _triggerElement;\n public _contentNode;\n protected _prevContentNode;\n\n protected _tooltipElement;\n protected _arrowElement;\n protected _tooltipHTMLCallback = (data?) => \"<b>_tooltipHTMLCallback is undefined</b>\";\n protected _logger: ScopedLogging = scopedLogger(\"html/HTMLTooltip\");\n constructor() {\n super();\n this.visible(false);\n }\n\n tooltipHTML(_: (data?) => string): this {\n this._tooltipHTMLCallback = _;\n return this;\n }\n\n tooltipContent(_): this {\n if (!arguments.length) return this._contentNode;\n this._contentNode = _;\n return this;\n }\n\n triggerElement(_): this {\n this._triggerElement = _;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const body = d3Select(\"body\");\n this._tooltipElement = body.append(\"div\")\n .attr(\"class\", \"tooltip-div\")\n .style(\"z-index\", \"2147483638\")\n .style(\"position\", \"fixed\")\n ;\n this._arrowElement = body.append(\"div\")\n .attr(\"class\", \"arrow-div\")\n .style(\"z-index\", \"2147483638\")\n .style(\"position\", \"fixed\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this._contentNode !== this._prevContentNode){\n const node = this._tooltipElement.node();\n [...node.querySelectorAll(\"*\")]\n .map(n=>n.__data__)\n .filter(n=>n)\n .forEach(w=>{\n if(typeof w.target === \"function\"){\n w.target(null);\n }\n if(typeof w.exit === \"function\"){\n w.exit();\n }\n });\n node.innerHTML = \"\";\n node.appendChild(this._contentNode);\n this._prevContentNode = this._contentNode;\n }\n\n if (this._contentNode) {\n this.onShowContent(this._contentNode);\n } else {\n this._tooltipElement\n .html(() => {\n return this._tooltipHTMLCallback(this.data());\n });\n }\n if(this.fitContent()){\n this._tooltipElement\n .style(\"width\", \"auto\")\n .style(\"height\", \"auto\")\n .style(\"padding\", \"0px\")\n .style(\"box-sizing\", \"content-box\")\n ;\n const rect = this._tooltipElement.node().getBoundingClientRect();\n this.tooltipWidth_default(rect.width);\n this.tooltipHeight_default(rect.height);\n }\n this._closing = false;\n this._tooltipElement\n .style(\"background-color\", this.tooltipColor())\n .style(\"color\", this.fontColor())\n .style(\"width\", this.tooltipWidth() + \"px\")\n .style(\"height\", this.tooltipHeight() + \"px\")\n .style(\"opacity\", 1)\n .style(\"padding\", this.padding() + \"px\")\n .style(\"pointer-events\", this.enablePointerEvents() ? \"all\" : \"none\")\n .style(\"box-sizing\", \"content-box\")\n ;\n this._arrowElement\n .style(\"opacity\", 1)\n .style(\"pointer-events\", \"none\")\n ;\n this.updateTooltipPosition();\n }\n\n onShowContent(node) {\n \n }\n\n protected updateTooltipPosition(): Position {\n const bbox = this.calcReferenceBBox();\n const direction = this.calcTooltipDirection(bbox);\n const box = bbox[direction];\n this._tooltipElement\n .style(\"top\", box.y + \"px\")\n .style(\"left\", box.x + \"px\")\n ;\n this.setArrowPosition(box, direction);\n return box;\n }\n\n protected calcTooltipDirection(bbox: DirectionalBBox): Direction {\n const directions: Direction[] = Object.keys(bbox) as Direction[];\n\n const defaultDirection = this.direction();\n directions.sort((a, b) => a === defaultDirection ? -1 : 1);\n const windowRect = {\n top: 0,\n left: 0,\n width: window.innerWidth,\n height: window.innerHeight\n };\n for (let i = 0; i < directions.length; i++) {\n const tooltipRect = {\n top: bbox[directions[i]].y,\n left: bbox[directions[i]].x,\n width: this.tooltipWidth(),\n height: this.tooltipHeight()\n };\n if (this.rectFits(tooltipRect, windowRect)) {\n return directions[i];\n }\n }\n this._logger.warning(`Tooltip doesn't fit in the window for any of the directions. Defaulting to '${defaultDirection}'`);\n this._logger.debug(windowRect);\n this._logger.debug({\n top: bbox[defaultDirection].y,\n left: bbox[defaultDirection].x,\n width: this.tooltipWidth(),\n height: this.tooltipHeight()\n });\n return defaultDirection;\n }\n\n protected rectFits(innerRect: Rectangle, outerRect: Rectangle): boolean {\n return (\n innerRect.top >= outerRect.top &&\n innerRect.left >= outerRect.left &&\n innerRect.width + innerRect.left <= outerRect.width + outerRect.left &&\n innerRect.height + innerRect.top <= outerRect.height + outerRect.top\n );\n }\n\n protected setArrowPosition(point: Position, direction: Direction) {\n let top;\n let left;\n let visibleBorderStyle = \"border-top-color\";\n this._arrowElement\n .style(\"border\", `${this.arrowHeight()}px solid ${this.tooltipColor()}`)\n .style(\"border-top-color\", \"transparent\")\n .style(\"border-right-color\", \"transparent\")\n .style(\"border-bottom-color\", \"transparent\")\n .style(\"border-left-color\", \"transparent\")\n ;\n switch (direction) {\n case \"n\":\n top = point.y + this.tooltipHeight() + (this.padding() * 2);\n left = point.x + (this.tooltipWidth() / 2) - (this.arrowWidth() / 2) + this.padding();\n visibleBorderStyle = \"border-top-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowHeight()}px`)\n .style(\"border-bottom-width\", \"0px\")\n .style(\"border-left-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-right-width\", `${this.arrowWidth() / 2}px`)\n ;\n break;\n case \"s\":\n top = point.y - this.arrowHeight();\n left = point.x + this.padding() + (this.tooltipWidth() / 2) - (this.arrowWidth() / 2);\n visibleBorderStyle = \"border-bottom-color\";\n this._arrowElement\n .style(\"border-top-width\", \"0px\")\n .style(\"border-bottom-width\", `${this.arrowHeight()}px`)\n .style(\"border-left-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-right-width\", `${this.arrowWidth() / 2}px`)\n ;\n break;\n case \"e\":\n top = point.y + (this.tooltipHeight() / 2) + this.padding() - (this.arrowWidth() / 2);\n left = point.x - this.arrowHeight();\n visibleBorderStyle = \"border-right-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-bottom-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-left-width\", \"0px\")\n .style(\"border-right-width\", `${this.arrowHeight()}px`)\n ;\n break;\n case \"w\":\n top = point.y + (this.tooltipHeight() / 2) - (this.arrowWidth() / 2) + this.padding();\n left = point.x + this.tooltipWidth() + (this.padding() * 2);\n visibleBorderStyle = \"border-left-color\";\n this._arrowElement\n .style(\"border-top-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-bottom-width\", `${this.arrowWidth() / 2}px`)\n .style(\"border-left-width\", `${this.arrowHeight()}px`)\n .style(\"border-right-width\", \"0px\")\n ;\n break;\n }\n if (typeof top !== \"undefined\" && typeof left !== \"undefined\") {\n this._arrowElement\n .style(\"top\", top + \"px\")\n .style(\"left\", left + \"px\")\n .style(visibleBorderStyle, this.tooltipColor())\n .style(\"opacity\", 1)\n ;\n } else {\n this._arrowElement\n .style(\"opacity\", 0)\n ;\n }\n return point;\n }\n\n protected getReferenceNode() {\n if (!this._triggerElement) {\n return this.element().node().parentNode.parentNode;\n }\n return this._triggerElement.node();\n }\n public _cursorLoc;\n protected calcReferenceBBox() {\n const node = this.getReferenceNode();\n let { top, left, width, height } = node.getBoundingClientRect();\n const wholeW = this.tooltipWidth();\n const wholeH = this.tooltipHeight();\n const halfW = wholeW / 2;\n const halfH = wholeH / 2;\n const arrowH = this.arrowHeight();\n const p = this.padding();\n const p2 = p * 2;\n\n if(this.followCursor() && this._cursorLoc) {\n \n left = this._cursorLoc[0];\n top = this._cursorLoc[1];\n width = 1;\n height = 1;\n }\n const bbox = {\n n: {\n x: left + (width / 2) - halfW - p,\n y: top - wholeH - arrowH - p2\n },\n e: {\n x: left + width + arrowH,\n y: top + (height / 2) - halfH - p\n },\n s: {\n x: left + (width / 2) - halfW - p,\n y: top + height + arrowH\n },\n w: {\n x: left - wholeW - arrowH - p2,\n y: top + (height / 2) - halfH - p\n },\n nw: {\n x: left - wholeW - p2,\n y: top - wholeH - p2\n },\n ne: {\n x: left + width,\n y: top - wholeH - p2\n },\n se: {\n x: left + width,\n y: top + height\n },\n sw: {\n x: left - wholeW - p2,\n y: top + height\n }\n };\n return bbox;\n }\n\n private _closing = false;\n mouseout() {\n this._closing = true;\n this._tooltipElement.on(\"mouseover\", () => {\n this._closing = false;\n });\n this._tooltipElement.on(\"mouseout\", () => {\n this.mouseout();\n });\n setTimeout(()=>{\n if(this._closing){\n this.visible(false);\n }\n }, this.closeDelay());\n }\n\n visible(): boolean;\n visible(_: boolean): this;\n visible(_?: boolean): boolean | this {\n if (!arguments.length) return super.visible();\n if (this._arrowElement) {\n this._arrowElement.style(\"visibility\", _ ? \"visible\" : \"hidden\");\n this._tooltipElement.style(\"visibility\", _ ? \"visible\" : \"hidden\");\n }\n super.visible(_);\n return this;\n }\n\n exit(domNode, element) {\n if (this._arrowElement) {\n this._arrowElement.remove();\n this._tooltipElement.remove();\n }\n super.exit(domNode, element);\n }\n}\nHTMLTooltip.prototype._class += \" html_HTMLTooltip\";\n\nexport interface HTMLTooltip {\n padding(): number;\n padding(_: number): this;\n direction(): Direction;\n direction(_: Direction): this;\n arrowHeight(): number;\n arrowHeight(_: number): this;\n arrowWidth(): number;\n arrowWidth(_: number): this;\n fontColor(): string;\n fontColor(_: string): this;\n tooltipColor(): string;\n tooltipColor(_: string): this;\n tooltipWidth(): number;\n tooltipWidth(_: number): this;\n tooltipWidth_default(_: number);\n tooltipHeight(): number;\n tooltipHeight(_: number): this;\n tooltipHeight_default(_: number);\n followCursor(): boolean;\n followCursor(_: boolean): this;\n enablePointerEvents(): boolean;\n enablePointerEvents(_: boolean): this;\n closeDelay(): number;\n closeDelay(_: number): this;\n fitContent(): boolean;\n fitContent(_: boolean): this;\n \n}\n\nHTMLTooltip.prototype.publish(\"fitContent\", false, \"boolean\", \"If true, tooltip will grow to fit its html content\");\nHTMLTooltip.prototype.publish(\"followCursor\", false, \"boolean\", \"If true, tooltip will display relative to cursor location\");\nHTMLTooltip.prototype.publish(\"closeDelay\", 400, \"number\", \"Number of milliseconds to wait before closing tooltip (cancelled on tooltip mouseover event)\");\nHTMLTooltip.prototype.publish(\"direction\", \"n\", \"set\", \"Direction in which to display the tooltip\", [\"n\", \"s\", \"e\", \"w\", \"ne\", \"nw\", \"se\", \"sw\"]);\nHTMLTooltip.prototype.publish(\"padding\", 8, \"number\", \"Padding (pixels)\");\nHTMLTooltip.prototype.publish(\"arrowWidth\", 16, \"number\", \"Width (or height depending on direction) of the tooltip arrow (pixels)\");\nHTMLTooltip.prototype.publish(\"arrowHeight\", 8, \"number\", \"Height (or width depending on direction) of the tooltip arrow (pixels)\");\nHTMLTooltip.prototype.publish(\"fontColor\", \"#FFF\", \"html-color\", \"The default font color for text in the tooltip\");\nHTMLTooltip.prototype.publish(\"tooltipColor\", \"#000000EE\", \"html-color\", \"Background color of the tooltip\");\nHTMLTooltip.prototype.publish(\"tooltipWidth\", 200, \"number\", \"Width of the tooltip (not including arrow) (pixels)\");\nHTMLTooltip.prototype.publish(\"tooltipHeight\", 200, \"number\", \"Height of the tooltip (not including arrow) (pixels)\");\nHTMLTooltip.prototype.publish(\"enablePointerEvents\", false, \"boolean\", \"If true, the 'pointer-events: all' style will be used\");\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nexport class SimpleTable extends HTMLWidget {\n protected _table;\n protected _tbody;\n protected _thead;\n protected _theadRow;\n constructor() {\n super();\n }\n\n protected transformData() {\n return this.data();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._table = element.append(\"table\");\n this._thead = this._table.append(\"thead\");\n this._theadRow = this._thead.append(\"tr\");\n this._tbody = this._table.append(\"tbody\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._table\n .style(\"width\", this.autoWidth() ? \"auto\" : \"100%\")\n ;\n const theadTrSelection = this._theadRow.selectAll(\"th\").data(this.columns());\n theadTrSelection.enter()\n .append(\"th\")\n .attr(\"class\", (n, i) => `th-${i}`)\n .merge(theadTrSelection)\n .text(_d => (_d).toString())\n ;\n theadTrSelection.exit().remove();\n const trSelection = this._tbody.selectAll(\"tr\").data(this.transformData());\n trSelection.enter()\n .append(\"tr\")\n .merge(trSelection)\n .each(function (this, d) {\n const tr = d3Select(this);\n const tdSelection = tr.selectAll(\"td\").data(d);\n tdSelection.enter()\n .append(\"td\")\n .attr(\"class\", (n, i) => `col-${i}`)\n .merge(tdSelection as any)\n .text(_d => (_d).toString())\n ;\n tdSelection.exit().remove();\n })\n ;\n trSelection.exit().remove();\n }\n}\nSimpleTable.prototype._class += \" html_SimpleTable\";\n\nexport interface SimpleTable {\n autoWidth(): boolean;\n autoWidth(_: boolean): this;\n}\nSimpleTable.prototype.publish(\"autoWidth\", false, \"boolean\", \"If true, table width will be set to 'auto'. If false, the width is set to '100%'\");\n","import { SimpleTable } from \"./SimpleTable\";\n\nexport class StyledTable extends SimpleTable {\n constructor() {\n super();\n }\n\n protected applyStyleObject(selection, styleObject) {\n Object.keys(styleObject).forEach(styleName => {\n selection.style(styleName, styleObject[styleName]);\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n element.selectAll(\"tr,th,td\")\n .attr(\"style\", \"\")\n .style(\"font-family\", this.fontFamily())\n .style(\"color\", this.fontColor())\n ;\n\n this.theadColumnStyles().forEach((styleObj, i) => {\n this.applyStyleObject(element.select(`.th-${i}`), styleObj);\n });\n this.tbodyColumnStyles().forEach((styleObj, i) => {\n this.applyStyleObject(element.selectAll(`.col-${i}`), styleObj);\n });\n const evenRowStylesExist = Object.keys(this.evenRowStyles()).length > 0;\n const lastRowStylesExist = Object.keys(this.lastRowStyles()).length > 0;\n const tbodyRows = element.selectAll(\"tbody > tr\");\n if (evenRowStylesExist) {\n const tbodyEvenRows = tbodyRows.select(function (d, i) { return i % 2 ? this : null; });\n this.applyStyleObject(tbodyEvenRows, this.evenRowStyles());\n }\n if (lastRowStylesExist) {\n const tbodyLastRow = tbodyRows.select(function (d, i, arr) { return i === arr.length - 1 ? this : null; });\n this.applyStyleObject(tbodyLastRow, this.lastRowStyles());\n }\n }\n}\nStyledTable.prototype._class += \" html_StyledTable\";\n\nexport interface StyledTable {\n fontFamily(): string;\n fontFamily(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n tbodyColumnStyles(): Array<{[styleID: string]: any}>;\n tbodyColumnStyles(_: Array<{[styleID: string]: any}>): this;\n tbodyColumnStyles_default(_: Array<{[styleID: string]: any}>): this;\n theadColumnStyles(): Array<{[styleID: string]: any}>;\n theadColumnStyles(_: Array<{[styleID: string]: any}>): this;\n theadColumnStyles_default(_: Array<{[styleID: string]: any}>): this;\n lastRowStyles(): {[styleID: string]: any};\n lastRowStyles(_: {[styleID: string]: any}): this;\n lastRowStyles_default(_: {[styleID: string]: any}): this;\n evenRowStyles(): {[styleID: string]: any};\n evenRowStyles(_: {[styleID: string]: any}): this;\n evenRowStyles_default(_: {[styleID: string]: any}): this;\n}\n\nStyledTable.prototype.publish(\"fontFamily\", \"Verdana\", \"string\", \"Base font-family used within the table\");\nStyledTable.prototype.publish(\"fontColor\", \"#333\", \"string\", \"Base font color used within the table\");\nStyledTable.prototype.publish(\"theadColumnStyles\", [], \"array\", 'Array of objects containing styles for the thead columns (ex: [{\"color\":\"red\"},{\"color\":\"blue\"}])');\nStyledTable.prototype.publish(\"tbodyColumnStyles\", [], \"array\", 'Array of objects containing styles for the tbody columns (ex: [{\"color\":\"red\"},{\"color\":\"blue\"}])');\nStyledTable.prototype.publish(\"lastRowStyles\", {}, \"object\", 'Object containing styles for the last row (ex: {\"color\":\"red\"})');\nStyledTable.prototype.publish(\"evenRowStyles\", {}, \"object\", 'Object containing styles for even rows (ex: {\"background-color\":\"#AAA\"})');\n","import { HTMLTooltip } from \"./HTMLTooltip\";\nimport { StyledTable } from \"./StyledTable\";\n\nexport class BreakdownTable extends StyledTable {\n protected _table;\n protected _tbody;\n protected _tooltip;\n constructor() {\n super();\n }\n\n protected transformData() {\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n return this.breakdownData(rowCount);\n }\n\n protected breakdownData(limit: number): any[] {\n const len = this.data().length;\n const sum = this.data().reduce((acc, row) => acc + row[1], 0);\n const data = [];\n let percSum = 0;\n this.data().sort((a, b) => a[1] > b[1] ? -1 : 1);\n const hiddenRowCount = len - limit;\n const showOther = hiddenRowCount > 0;\n this.data()\n .filter((_, i) => showOther ? i < limit - 1 : true)\n .forEach(row => {\n const perc = Math.round((row[1] / sum) * 100);\n percSum += perc;\n data.push([row[0], perc + \"%\"]);\n });\n if (showOther) {\n const otherLabel = `${this.otherLabel()} (${len - limit + 1})`;\n const otherPercentage = \"~\" + (100 - percSum) + \"%\";\n data.push([otherLabel, otherPercentage]);\n }\n return data;\n }\n\n protected calculateRowCount(): number {\n const theadRowHeight = this.columns().length > 0 ? this.thFontSize() + 5 : 0;\n const tbodyRowHeight = this.fontSize() + 5;\n const tbodyAvailableHeight = this.height() - theadRowHeight;\n const rowCount = Math.floor(tbodyAvailableHeight / tbodyRowHeight);\n return rowCount;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tooltip = new HTMLTooltip()\n .target(domNode)\n ;\n this._tooltip\n .tooltipHTML(data => {\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n const rowHeight = this.fontSize();\n const widestLabel = Math.max(...data.map(row => this.textSize(row[0], \"Verdana\", this.fontSize()).width));\n const widestPerc = 30;\n const colCount = 2;\n const w = colCount * (widestLabel + widestPerc) + (this._tooltip.padding() * 2);\n const h = rowHeight * Math.ceil((data.length - rowCount) / colCount) + (this._tooltip.padding() * 2);\n this._tooltip.tooltipWidth(w);\n this._tooltip.tooltipHeight(h);\n const otherData = this.breakdownData(this.data().length).slice(rowCount - 1);\n return `<div style=\"\n width: 100%;\n height: 100%;\n font-size: ${this.fontSize()}px\n \">${\n otherData.map(row => `<div style=\"\n float:left;\n width:${Math.floor(99 / colCount)}%;\n \">${row[0]}: ${row[1]}</div>`\n ).join(\"\")\n }</div>`;\n })\n ;\n }\n\n update(domNode, element) {\n this.theadColumnStyles_default([\n {\n \"color\": this.thFirstColor(),\n \"font-size\": this.thFontSize() + \"px\",\n \"font-weight\": this.thFontWeight(),\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"width\": \"1%\",\n \"font-size\": this.thFontSize() + \"px\",\n \"font-weight\": this.thFontWeight(),\n \"text-align\": this.percentageAlignment(),\n \"padding\": \"0px\"\n }\n ]);\n this.tbodyColumnStyles_default([\n {\n \"color\": this.topLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": \"normal\",\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"color\": this.topPercentageColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": \"normal\",\n \"text-align\": this.percentageAlignment(),\n \"width\": \"1%\",\n \"padding\": \"0px\"\n }\n ]);\n this.lastRowStyles_default([\n {\n \"color\": this.otherLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": this.otherLabelBold() ? \"bold\" : \"normal\",\n \"text-align\": this.labelAlignment(),\n \"width\": \"auto\",\n \"padding\": \"0px\"\n },\n {\n \"color\": this.otherLabelColor(),\n \"font-size\": this.fontSize() + \"px\",\n \"font-weight\": this.otherPercentageBold() ? \"bold\" : \"normal\",\n \"text-align\": this.percentageAlignment(),\n \"width\": \"1%\",\n \"padding\": \"0px\"\n }\n ]);\n\n super.update(domNode, element);\n\n const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();\n if (rowCount < this.data().length) {\n const lastRow = element.select(\"tbody > tr:last-child\");\n const context = this;\n lastRow\n .on(\"mouseout.tooltip\", d => {\n context._tooltip._triggerElement = lastRow;\n context._tooltip\n .visible(false)\n .render()\n ;\n })\n .on(\"mouseenter.tooltip\", d => {\n context._tooltip._triggerElement = lastRow;\n context._tooltip\n .direction(\"n\")\n .data(context.data())\n .visible(true)\n .render()\n ;\n })\n ;\n }\n }\n\n}\nBreakdownTable.prototype._class += \" html_BreakdownTable\";\n\nexport interface BreakdownTable {\n useCalculatedRowCount(): boolean;\n useCalculatedRowCount(_: boolean): this;\n rowCount(): number;\n rowCount(_: number): this;\n fontSize(): number;\n fontSize(_: number): this;\n thFirstColor(): string;\n thFirstColor(_: string): this;\n thLastColor(): string;\n thLastColor(_: string): this;\n thFontSize(): number;\n thFontSize(_: number): this;\n thFontWeight(): string;\n thFontWeight(_: string): this;\n labelAlignment(): \"left\" | \"center\" | \"right\";\n labelAlignment(_: \"left\" | \"center\" | \"right\"): this;\n percentageAlignment(): \"left\" | \"center\" | \"right\";\n percentageAlignment(_: \"left\" | \"center\" | \"right\"): this;\n topLabelColor(): string;\n topLabelColor(_: string): this;\n topPercentageColor(): string;\n topPercentageColor(_: string): this;\n topPercentageBold(): boolean;\n topPercentageBold(_: boolean): this;\n otherLabel(): string;\n otherLabel(_: string): this;\n otherLabelColor(): string;\n otherLabelColor(_: string): this;\n otherLabelBold(): boolean;\n otherLabelBold(_: boolean): this;\n otherPercentageColor(): string;\n otherPercentageColor(_: string): this;\n otherPercentageBold(): boolean;\n otherPercentageBold(_: boolean): this;\n}\n\nBreakdownTable.prototype.publish(\"useCalculatedRowCount\", true, \"boolean\", \"If true, rowCount will be calculated and its default will be overwritten\");\nBreakdownTable.prototype.publish(\"rowCount\", 5, \"number\", \"Number of total rows to display (including the 'other' row)\", undefined, { disable: w => w.useCalculatedRowCount() });\nBreakdownTable.prototype.publish(\"fontSize\", 14, \"number\", \"Font size (pixels)\");\nBreakdownTable.prototype.publish(\"labelAlignment\", \"left\", \"set\", \"Alignment of the label column text\", [\"left\", \"center\", \"right\"]);\nBreakdownTable.prototype.publish(\"percentageAlignment\", \"center\", \"set\", \"Alignment of the percentage column text\", [\"left\", \"center\", \"right\"]);\nBreakdownTable.prototype.publish(\"topLabelColor\", \"#333\", \"html-color\", \"Color of displayed 'top' labels\");\nBreakdownTable.prototype.publish(\"topPercentageColor\", \"#1A99D5\", \"html-color\", \"Color of displayed 'top' percentages\");\nBreakdownTable.prototype.publish(\"topPercentageBold\", true, \"html-color\", \"If true, the 'top' percentages will be bold\");\nBreakdownTable.prototype.publish(\"otherLabel\", \"Other\", \"string\", \"Label text for the 'other' row\");\nBreakdownTable.prototype.publish(\"otherLabelColor\", \"#AAA\", \"html-color\", \"Color of the 'other' label\");\nBreakdownTable.prototype.publish(\"otherLabelBold\", false, \"html-color\", \"If true, the 'other' label will be bold\");\nBreakdownTable.prototype.publish(\"otherPercentageColor\", \"#AAA\", \"html-color\", \"Color of the 'other' percentage\");\nBreakdownTable.prototype.publish(\"otherPercentageBold\", false, \"html-color\", \"If true, the 'other' percentage will be bold\");\nBreakdownTable.prototype.publish(\"thFontWeight\", \"bold\", \"string\", \"Font weight for th elements\");\nBreakdownTable.prototype.publish(\"thFontSize\", 26, \"number\", \"Font size for th elements\");\nBreakdownTable.prototype.publish(\"thFirstColor\", \"#333\", \"html-color\", \"Text color of the first th element\");\nBreakdownTable.prototype.publish(\"thLastColor\", \"#333\", \"html-color\", \"Text color of the last th element\");\n","import { _catchError } from './diff/catch-error';\n\n/** @type {import('./internal').Options} */\nconst options = {\n\t_catchError\n};\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}\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;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\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\tthis._force = false;\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-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\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 && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\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 * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._context,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\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) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: 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 consistently 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\nlet prevDebounce;\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 (\n\t\t(!c._dirty && (c._dirty = true) && q.push(c) === 1) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || 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) renderComponent(p);\n\t}\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\nconst IS_HYDRATE = EMPTY_OBJ;\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\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\tcommitRoot(commitQueue, 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\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\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\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\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","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","/**\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';\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\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type === 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\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 properties 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 * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\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>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\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 * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\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\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\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\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tcontext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (childVNode._lastDomChild != null) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-null _lastDomChild. Continue the diff from the end of\n\t\t\t\t\t\t// this Fragment's DOM tree.\n\t\t\t\t\t\tnewDom = childVNode._lastDomChild;\n\n\t\t\t\t\t\t// Eagerly cleanup _lastDomChild. We don't need to persist the value because\n\t\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\t// diffing Components and Fragments.\n\t\t\t\t\t\tchildVNode._lastDomChild = null;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tsibDom = oldDom, j = 0;\n\t\t\t\t\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildrenLength;\n\t\t\t\t\t\t\t\tj += 2\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t\t\t\t// there are probably some internal data structures that aren't\n\t\t\t\t\t\t// updated properly.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t\t\t\t// value check in `diff()` won't be skipped.\n\t\t\t\t\t\tif (newParentVNode.type == 'option') {\n\t\t\t\t\t\t\tparentDom.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\toldDom = newDom.nextSibling;\n\n\t\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t\t// At this point, if childVNode._lastDomChild existed, then\n\t\t\t\t\t\t// newDom = childVNode._lastDomChild per line 101. Else it is\n\t\t\t\t\t\t// the same as childVNode._dom, meaning this component returned\n\t\t\t\t\t\t// only a single DOM node\n\t\t\t\t\t\tnewParentVNode._lastDomChild = newDom;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t\treturn childVNode;\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') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\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], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @param {(vnode: import('../internal').VNode) => import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array<import('../internal').VNode | string | number>} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\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 * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\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\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\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} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (value == null || value === false) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\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\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { 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} 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 element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\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 * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = 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\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: 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} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && 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} else {\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\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\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\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, cctx);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, cctx) === false\n\t\t\t\t) {\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\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\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\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\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\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = toChildArray(\n\t\t\t\tisTopLevelFragment ? tmp.props.children : tmp\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(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = null;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\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>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\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\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t(newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type)\n\t\t\t) {\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\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: 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 (excessDomChildren != null) {\n\t\t\texcessDomChildren[excessDomChildren.indexOf(dom)] = null;\n\t\t}\n\n\t\tif (oldProps !== newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else 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\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\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} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\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} catch (e) {\n\t\t\t\toptions._catchError(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","import { enqueueRender } from '../component';\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 vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t} else if (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tif (currentComponent.__hooks) {\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\tcurrentComponent.__hooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\tif (hooks._pendingEffects.length) {\n\t\t\tafterPaint(afterPaintEffects.push(c));\n\t\t}\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t);\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\thooks._list.forEach(hook => hook._cleanup && hook._cleanup());\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index) {\n\tif (options._hook) options._hook(currentComponent);\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = { _list: [], _pendingEffects: [] });\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++);\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref === 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\tif (!provider) return context._defaultValue;\n\tconst state = getHookState(currentIndex++);\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window !== 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\n\t\t/* istanbul ignore next */\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (hook._cleanup) hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\tconst result = hook._value();\n\tif (typeof result === 'function') hook._cleanup = result;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f === 'function' ? f(arg) : f;\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Component, createElement, render } from \"@hpcc-js/preact-shim\";\n\nexport class JSXWidget extends HTMLWidget {\n static Component = Component;\n static createElement = createElement;\n protected rootNode;\n\n jsxRender(jsx, domNode) {\n this.rootNode = render(jsx, domNode, this.rootNode);\n }\n}\nJSXWidget.prototype._class += \" html_JSXWidget\";\n","import { select as d3Select } from \"d3-selection\";\n\nexport type ReactFn = (attrs: { [key: string]: string }) => VNode;\n\nexport type IVNode = new (attrs: { [key: string]: string }, children: VNode[]) => VNode;\n\nexport class VNode {\n protected _attrs: { [key: string]: string };\n protected _children: VNode[];\n\n constructor(attrs: { [key: string]: string }, children: VNode[]) {\n this._attrs = attrs;\n this._children = children;\n }\n\n type(): string {\n return \"div\";\n }\n\n attrs(): { [key: string]: string } {\n return this._attrs;\n }\n\n attr(key) {\n return this._attrs[key];\n }\n\n children(): VNode[] {\n return this._children;\n }\n\n update(targetElement) {\n for (const key in this._attrs) {\n targetElement.attr(key, this._attrs[key]);\n }\n }\n\n render(targetElement) {\n const thisElement = targetElement.selectAll(`${targetElement.node().tagName} > *`).data([this]);\n thisElement.exit()\n .each(d => console.log(`render: Exit - ${d.type()}`))\n .remove();\n return thisElement.enter().append(this.type())\n .each(d => console.log(`render: Enter - ${d.type()}`))\n .attr(\"reactd3\", 0)\n .merge(thisElement)\n .each(function (d: VNode) {\n const element = d3Select(this);\n d.update(element);\n d.renderChildren(element);\n })\n ;\n }\n\n renderChildren(targetElement) {\n const thisElement = targetElement.selectAll(`${targetElement.node().tagName} > *`).data(this._children);\n thisElement.exit()\n .each(d => console.log(`renderChildren: Exit - ${d.type()}`))\n .remove();\n return thisElement.enter().append(d => document.createElement(d.type()))\n .each(d => console.log(`renderChildren: Enter - ${d.type()}`))\n .attr(\"reactd3\", (_d, i) => i)\n .merge(thisElement)\n .each(function (d: VNode) {\n const element = d3Select(this);\n d.update(element);\n d.renderChildren(element);\n })\n ;\n }\n}\n\nclass ConstVNode extends VNode {\n protected _type: string;\n\n constructor(type: string, attrs: { [key: string]: string }, children: VNode[]) {\n super(attrs, children);\n this._type = type;\n }\n\n type(): string {\n return this._type;\n }\n}\n\nclass TextVNode extends VNode {\n protected _text: string;\n\n constructor(text: string) {\n super({}, []);\n this._text = text;\n }\n\n type(): string {\n return \"span\";\n }\n\n update(targetElement) {\n super.update(targetElement);\n targetElement.text(this._text);\n }\n}\n\nfunction isReactFn(_): _ is ReactFn {\n return typeof _ === \"function\";\n}\n\nfunction isIVNode(_: any): _ is IVNode {\n return _.prototype && _.prototype instanceof VNode;\n}\n\nexport class ReactD3 {\n // static createElementXXX(type: string | ReactFn | IVNode, attrs: { [key: string]: string }, ...children: Array<string | VNode>): VNode {\n static createElement(type: string | ReactFn | IVNode, attrs: { [key: string]: string }, ...children: Array<string | VNode>): VNode {\n if (isIVNode(type)) {\n return new (type as any)(attrs);\n } else if (isReactFn(type)) {\n return type(attrs);\n }\n return new ConstVNode(type, attrs, children.map(child => {\n if (typeof child === \"string\") {\n return new TextVNode(child);\n }\n return child;\n }));\n }\n\n static render(vdom: VNode, targetElement) {\n vdom.render(targetElement);\n }\n}\n","import * as React from \"@hpcc-js/preact-shim\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nexport class VizComponent extends JSXWidget.Component<any, any> {\n widget;\n\n refreshProps() {\n for (const key in (this as any).props) {\n if (this.widget[key] && typeof this.widget[key] === \"function\") {\n this.widget[key]((this as any).props[key]);\n }\n }\n }\n\n componentDidMount() {\n this.widget = new (this as any).props.type()\n .target((this as any).base)\n ;\n this.refreshProps();\n this.widget\n .render()\n ;\n }\n\n componentWillUnmount() {\n this.widget\n .target(null)\n .render()\n ;\n }\n\n render() {\n return <div style={(this as any).props.style} />;\n }\n\n componentDidUpdate() {\n this.refreshProps();\n this.widget.render();\n }\n}\n","import * as React from \"@hpcc-js/preact-shim\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nexport class VizInstance extends JSXWidget.Component<any, any> {\n widget;\n\n refreshProps() {\n for (const key in (this as any).props) {\n if (this.widget[key] && typeof this.widget[key] === \"function\") {\n this.widget[key]((this as any).props[key]);\n }\n }\n }\n\n componentDidMount() {\n this.widget = (this as any).props.instance\n .target((this as any).base)\n ;\n this.refreshProps();\n this.widget\n .render()\n ;\n }\n\n componentWillUnmount() {\n this.widget\n .target(null)\n .render()\n ;\n }\n\n render() {\n return <div style={(this as any).props.style} />;\n }\n\n componentDidUpdate() {\n this.refreshProps();\n this.widget.render();\n }\n}\n","import { format as d3Format } from \"d3-format\";\nimport { StyledTable } from \"./StyledTable\";\n\nexport class StatsTable extends StyledTable {\n\n protected transformData() {\n const totalRow = [[\"Total\", 0, 0]];\n const data = this.data();\n data.forEach(row => {\n totalRow[0][1] += row[1];\n totalRow[0][2] += row[2];\n });\n return data\n .concat(totalRow)\n .map(row => {\n return [\n row[0],\n this.secondColumnFormat_exists() ? d3Format(this.secondColumnFormat())(row[1]) : row[1],\n this.thirdColumnFormat_exists() ? d3Format(this.thirdColumnFormat())(row[2]) : row[2]\n ];\n })\n ;\n }\n\n update(domNode, element) {\n this.tbodyColumnStyles_default([\n {\n \"font-weight\": \"bold\",\n \"width\": this.firstColumnWidth(),\n \"text-align\": \"left\"\n },\n {\n \"width\": this.secondColumnWidth(),\n \"text-align\": \"right\"\n },\n {\n \"width\": this.thirdColumnWidth(),\n \"text-align\": \"right\"\n }\n ]);\n this.evenRowStyles_default([\n {\n \"font-weight\": \"bold\",\n \"width\": this.firstColumnWidth(),\n \"text-align\": \"left\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n },\n {\n \"width\": this.secondColumnWidth(),\n \"text-align\": \"right\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n },\n {\n \"width\": this.thirdColumnWidth(),\n \"text-align\": \"right\",\n \"font-color\": this.evenRowFontColor(),\n \"background-color\": this.evenRowBackgroundColor()\n }\n ]);\n this.lastRowStyles_default({\n \"font-weight\": \"bold\"\n });\n super.update(domNode, element);\n }\n}\nStatsTable.prototype._class += \" html_StatsTable\";\n\nexport interface StatsTable {\n labelColor(): string;\n labelColor(_: string): this;\n primaryValueColor(): string;\n primaryValueColor(_: string): this;\n secondaryValueColor(): string;\n secondaryValueColor(_: string): this;\n evenRowFontColor(): string;\n evenRowFontColor(_: string): this;\n evenRowBackgroundColor(): string;\n evenRowBackgroundColor(_: string): this;\n firstColumnWidth(): string;\n firstColumnWidth(_: string): this;\n secondColumnWidth(): string;\n secondColumnWidth(_: string): this;\n thirdColumnWidth(): string;\n thirdColumnWidth(_: string): this;\n secondColumnFormat(): string;\n secondColumnFormat(_: string): this;\n secondColumnFormat_exists(): boolean;\n thirdColumnFormat(): string;\n thirdColumnFormat(_: string): this;\n thirdColumnFormat_exists(): boolean;\n}\nStatsTable.prototype.publish(\"labelColor\", \"#333\", \"html-color\", \"Color of the text in the first column\");\nStatsTable.prototype.publish(\"primaryValueColor\", \"#333\", \"html-color\", \"Color of the text in the second column\");\nStatsTable.prototype.publish(\"secondaryValueColor\", \"#333\", \"html-color\", \"Color of the text in the third column\");\nStatsTable.prototype.publish(\"evenRowBackgroundColor\", \"#333\", \"html-color\", \"Background color of the even rows\");\nStatsTable.prototype.publish(\"evenRowFontColor\", \"#333\", \"html-color\", \"Font color of the even rows\");\nStatsTable.prototype.publish(\"firstColumnWidth\", \"auto\", \"string\", \"CSS style applied as the 'width' for the first column (ex: 40px)\");\nStatsTable.prototype.publish(\"secondColumnWidth\", \"1%\", \"string\", \"CSS style applied as the 'width' for the second column (ex: 40px)\");\nStatsTable.prototype.publish(\"thirdColumnWidth\", \"1%\", \"string\", \"CSS style applied as the 'width' for the third column (ex: 40px)\");\nStatsTable.prototype.publish(\"secondColumnFormat\", \"$,.0f\", \"string\", \"d3-format specifier applied to the second column's values\", undefined, {optional: true});\nStatsTable.prototype.publish(\"thirdColumnFormat\", null, \"string\", \"d3-format specifier applied to the third column's values\", undefined, {optional: true});\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { JSXWidget } from \"./JSXWidget\";\n\nimport \"../src/TitleBar.css\";\n\nexport interface IClickHandler {\n titleBarClick(src: Item, d, idx: number, groups): void;\n}\n\nexport class Item extends HTMLWidget {\n protected _owner: IClickHandler;\n protected _element;\n\n constructor(owner: IClickHandler) {\n super();\n this._owner = owner;\n this._tag = \"a\";\n }\n}\n\nexport class Button extends Item {\n private _icon: string;\n\n constructor(owner: IClickHandler, icon: string) {\n super(owner);\n this._icon = icon;\n }\n\n icon() {\n return this._icon;\n }\n\n enter(domNode: HTMLElement, element) {\n super.enter(domNode, element);\n element\n .attr(\"href\", \"#\")\n .on(\"click\", (d, idx, groups) => this._owner.titleBarClick(this, d, idx, groups))\n .append(\"i\")\n .attr(\"class\", `fa ${this._icon} fa-lg fa-fw`)\n ;\n }\n}\n\nexport class ToggleButton extends Button {\n\n enter(domNode: HTMLElement, element) {\n element.on(\"click.sel\", (d, idx, groups) => {\n this.selected(!this.selected());\n this.render();\n });\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._element.classed(\"selected\", this.selected());\n }\n}\nexport interface ToggleButton {\n selected(): boolean;\n selected(_: boolean): this;\n}\nToggleButton.prototype.publish(\"selected\", false, \"boolean\");\n\nexport class Spacer extends Item {\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .attr(\"class\", \"spacer\")\n .attr(\"href\", \"#\")\n .append(\"i\")\n ;\n }\n}\n\nexport class TitleBar extends JSXWidget {\n protected _divMain;\n protected _divIconBar;\n protected _divTitle;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._divMain = element.append(\"div\")\n .attr(\"class\", \"main\")\n ;\n this._divIconBar = this._divMain.append(\"div\")\n .attr(\"class\", \"icon-bar\")\n ;\n this._divTitle = this._divMain.append(\"div\")\n .attr(\"class\", \"title\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._divTitle.text(this.title());\n\n const icons = this._divIconBar.selectAll(\".icon-bar-item\").data(this.buttons());\n icons.enter().append(\"div\")\n .attr(\"class\", \"icon-bar-item\")\n .each(function (this: HTMLElement, d: Item) {\n d.target(this);\n })\n .merge(icons)\n .each(function (d: Item) {\n d.render();\n })\n ;\n icons.exit()\n .each(function (d: Item) {\n d.target(null);\n })\n .remove()\n ;\n icons.order();\n }\n}\nTitleBar.prototype._class += \" html_TitleBar\";\n\nexport interface TitleBar {\n title(): string;\n title(_: string): this;\n buttons(): Item[];\n buttons(items: Item[]): this;\n}\nTitleBar.prototype.publish(\"title\", \"\", \"string\");\nTitleBar.prototype.publish(\"buttons\", [], \"widgetArray\");\n"],"names":["scopedLogger","d3Select","HTMLWidget","options","q","defer","prevDebounce","IS_HYDRATE","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","normalizedProps","arguments","length","push","defaultProps","undefined","createVNode","key","ref","vnode","_children","_parent","_depth","_dom","_lastDomChild","_component","constructor","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","_dirty","debounceRendering","process","p","component","commitQueue","newDom","oldDom","parentDom","sort","a","b","_vnode","pop","_parentDom","diff","_context","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","isSvg","excessDomChildren","isHydrating","j","oldVNode","sibDom","firstChildDom","refs","oldChildren","oldChildrenLength","toChildArray","childVNode","outer","appendChild","nextSibling","insertBefore","value","unmount","applyRef","callback","flattened","Array","isArray","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","s","useCapture","nameLower","cssText","replace","toLowerCase","slice","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","e","event","newVNode","tmp","isNew","oldState","snapshot","clearProcessingException","provider","cctx","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","prototype","render","doRender","sub","state","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","_force","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","some","cb","call","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","_root","error","getDerivedStateFromError","setState","componentDidCatch","update","forceUpdate","Promise","then","bind","resolve","setTimeout","currentComponent","prevRaf","afterPaintEffects","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","flushAfterPaintEffects","__hooks","_pendingEffects","forEach","invokeCleanup","invokeEffect","hook","_cleanup","result","_value","hooks","requestAnimationFrame","raf","done","clearTimeout","timeout","cancelAnimationFrame","window","filter","_list","React.createElement","d3Format"],"mappings":"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"}
|