@hpcc-js/html 3.2.10 → 3.2.11
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.js +28 -37
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -9,17 +9,15 @@ const PKG_NAME = "@hpcc-js/html";
|
|
|
9
9
|
const PKG_VERSION = "3.1.1";
|
|
10
10
|
const BUILD_VERSION = "3.2.1";
|
|
11
11
|
const _HTMLTooltip = class _HTMLTooltip extends HTMLWidget {
|
|
12
|
+
_triggerElement;
|
|
13
|
+
_contentNode;
|
|
14
|
+
_prevContentNode;
|
|
15
|
+
_tooltipElement;
|
|
16
|
+
_arrowElement;
|
|
17
|
+
_tooltipHTMLCallback = /* @__PURE__ */ __name((data) => "<b>_tooltipHTMLCallback is undefined</b>", "_tooltipHTMLCallback");
|
|
18
|
+
_logger = scopedLogger("html/HTMLTooltip");
|
|
12
19
|
constructor() {
|
|
13
20
|
super();
|
|
14
|
-
__publicField(this, "_triggerElement");
|
|
15
|
-
__publicField(this, "_contentNode");
|
|
16
|
-
__publicField(this, "_prevContentNode");
|
|
17
|
-
__publicField(this, "_tooltipElement");
|
|
18
|
-
__publicField(this, "_arrowElement");
|
|
19
|
-
__publicField(this, "_tooltipHTMLCallback", /* @__PURE__ */ __name((data) => "<b>_tooltipHTMLCallback is undefined</b>", "_tooltipHTMLCallback"));
|
|
20
|
-
__publicField(this, "_logger", scopedLogger("html/HTMLTooltip"));
|
|
21
|
-
__publicField(this, "_cursorLoc");
|
|
22
|
-
__publicField(this, "_closing", false);
|
|
23
21
|
this.visible(false);
|
|
24
22
|
}
|
|
25
23
|
tooltipHTML(_) {
|
|
@@ -163,6 +161,7 @@ const _HTMLTooltip = class _HTMLTooltip extends HTMLWidget {
|
|
|
163
161
|
}
|
|
164
162
|
return this._triggerElement.node();
|
|
165
163
|
}
|
|
164
|
+
_cursorLoc;
|
|
166
165
|
calcReferenceBBox() {
|
|
167
166
|
const node = this.getReferenceNode();
|
|
168
167
|
let { top, left, width, height } = node.getBoundingClientRect();
|
|
@@ -215,6 +214,7 @@ const _HTMLTooltip = class _HTMLTooltip extends HTMLWidget {
|
|
|
215
214
|
};
|
|
216
215
|
return bbox;
|
|
217
216
|
}
|
|
217
|
+
_closing = false;
|
|
218
218
|
mouseout() {
|
|
219
219
|
this._closing = true;
|
|
220
220
|
this._tooltipElement.on("mouseover", () => {
|
|
@@ -262,12 +262,12 @@ HTMLTooltip.prototype.publish("tooltipWidth", 200, "number", "Width of the toolt
|
|
|
262
262
|
HTMLTooltip.prototype.publish("tooltipHeight", 200, "number", "Height of the tooltip (not including arrow) (pixels)");
|
|
263
263
|
HTMLTooltip.prototype.publish("enablePointerEvents", false, "boolean", "If true, the 'pointer-events: all' style will be used");
|
|
264
264
|
const _SimpleTable = class _SimpleTable extends HTMLWidget {
|
|
265
|
+
_table;
|
|
266
|
+
_tbody;
|
|
267
|
+
_thead;
|
|
268
|
+
_theadRow;
|
|
265
269
|
constructor() {
|
|
266
270
|
super();
|
|
267
|
-
__publicField(this, "_table");
|
|
268
|
-
__publicField(this, "_tbody");
|
|
269
|
-
__publicField(this, "_thead");
|
|
270
|
-
__publicField(this, "_theadRow");
|
|
271
271
|
}
|
|
272
272
|
transformData() {
|
|
273
273
|
return this.data();
|
|
@@ -344,11 +344,11 @@ StyledTable.prototype.publish("tbodyColumnStyles", [], "array", 'Array of object
|
|
|
344
344
|
StyledTable.prototype.publish("lastRowStyles", {}, "object", 'Object containing styles for the last row (ex: {"color":"red"})');
|
|
345
345
|
StyledTable.prototype.publish("evenRowStyles", {}, "object", 'Object containing styles for even rows (ex: {"background-color":"#AAA"})');
|
|
346
346
|
const _BreakdownTable = class _BreakdownTable extends StyledTable {
|
|
347
|
+
// protected _table;
|
|
348
|
+
// protected _tbody;
|
|
349
|
+
_tooltip;
|
|
347
350
|
constructor() {
|
|
348
351
|
super();
|
|
349
|
-
// protected _table;
|
|
350
|
-
// protected _tbody;
|
|
351
|
-
__publicField(this, "_tooltip");
|
|
352
352
|
}
|
|
353
353
|
transformData() {
|
|
354
354
|
const rowCount = this.useCalculatedRowCount() ? this.calculateRowCount() : this.rowCount();
|
|
@@ -497,10 +497,7 @@ BreakdownTable.prototype.publish("thFontSize", 26, "number", "Font size for th e
|
|
|
497
497
|
BreakdownTable.prototype.publish("thFirstColor", "#333", "html-color", "Text color of the first th element");
|
|
498
498
|
BreakdownTable.prototype.publish("thLastColor", "#333", "html-color", "Text color of the last th element");
|
|
499
499
|
const _JSXWidget = class _JSXWidget extends HTMLWidget {
|
|
500
|
-
|
|
501
|
-
super(...arguments);
|
|
502
|
-
__publicField(this, "rootNode");
|
|
503
|
-
}
|
|
500
|
+
rootNode;
|
|
504
501
|
jsxRender(jsx, domNode) {
|
|
505
502
|
this.rootNode = React.render(jsx, domNode, this.rootNode);
|
|
506
503
|
}
|
|
@@ -511,9 +508,9 @@ __publicField(_JSXWidget, "createElement", React.createElement);
|
|
|
511
508
|
let JSXWidget = _JSXWidget;
|
|
512
509
|
JSXWidget.prototype._class += " html_JSXWidget";
|
|
513
510
|
const _VNode = class _VNode {
|
|
511
|
+
_attrs;
|
|
512
|
+
_children;
|
|
514
513
|
constructor(attrs, children) {
|
|
515
|
-
__publicField(this, "_attrs");
|
|
516
|
-
__publicField(this, "_children");
|
|
517
514
|
this._attrs = attrs;
|
|
518
515
|
this._children = children;
|
|
519
516
|
}
|
|
@@ -556,9 +553,9 @@ const _VNode = class _VNode {
|
|
|
556
553
|
__name(_VNode, "VNode");
|
|
557
554
|
let VNode = _VNode;
|
|
558
555
|
const _ConstVNode = class _ConstVNode extends VNode {
|
|
556
|
+
_type;
|
|
559
557
|
constructor(type, attrs, children) {
|
|
560
558
|
super(attrs, children);
|
|
561
|
-
__publicField(this, "_type");
|
|
562
559
|
this._type = type;
|
|
563
560
|
}
|
|
564
561
|
type() {
|
|
@@ -568,9 +565,9 @@ const _ConstVNode = class _ConstVNode extends VNode {
|
|
|
568
565
|
__name(_ConstVNode, "ConstVNode");
|
|
569
566
|
let ConstVNode = _ConstVNode;
|
|
570
567
|
const _TextVNode = class _TextVNode extends VNode {
|
|
568
|
+
_text;
|
|
571
569
|
constructor(text) {
|
|
572
570
|
super({}, []);
|
|
573
|
-
__publicField(this, "_text");
|
|
574
571
|
this._text = text;
|
|
575
572
|
}
|
|
576
573
|
type() {
|
|
@@ -631,10 +628,7 @@ function u(e, t, n, o, i, u2) {
|
|
|
631
628
|
}
|
|
632
629
|
__name(u, "u");
|
|
633
630
|
const _VizComponent = class _VizComponent extends JSXWidget.Component {
|
|
634
|
-
|
|
635
|
-
super(...arguments);
|
|
636
|
-
__publicField(this, "widget");
|
|
637
|
-
}
|
|
631
|
+
widget;
|
|
638
632
|
refreshProps() {
|
|
639
633
|
for (const key in this.props) {
|
|
640
634
|
if (this.widget[key] && typeof this.widget[key] === "function") {
|
|
@@ -661,10 +655,7 @@ const _VizComponent = class _VizComponent extends JSXWidget.Component {
|
|
|
661
655
|
__name(_VizComponent, "VizComponent");
|
|
662
656
|
let VizComponent = _VizComponent;
|
|
663
657
|
const _VizInstance = class _VizInstance extends JSXWidget.Component {
|
|
664
|
-
|
|
665
|
-
super(...arguments);
|
|
666
|
-
__publicField(this, "widget");
|
|
667
|
-
}
|
|
658
|
+
widget;
|
|
668
659
|
refreshProps() {
|
|
669
660
|
for (const key in this.props) {
|
|
670
661
|
if (this.widget[key] && typeof this.widget[key] === "function") {
|
|
@@ -763,9 +754,9 @@ StatsTable.prototype.publish("thirdColumnWidth", "1%", "string", "CSS style appl
|
|
|
763
754
|
StatsTable.prototype.publish("secondColumnFormat", "$,.0f", "string", "d3-format specifier applied to the second column's values", void 0, { optional: true });
|
|
764
755
|
StatsTable.prototype.publish("thirdColumnFormat", null, "string", "d3-format specifier applied to the third column's values", void 0, { optional: true });
|
|
765
756
|
const _Item = class _Item extends HTMLWidget {
|
|
757
|
+
_owner;
|
|
766
758
|
constructor(owner) {
|
|
767
759
|
super();
|
|
768
|
-
__publicField(this, "_owner");
|
|
769
760
|
this._owner = owner;
|
|
770
761
|
this._tag = "a";
|
|
771
762
|
}
|
|
@@ -774,9 +765,9 @@ __name(_Item, "Item");
|
|
|
774
765
|
let Item = _Item;
|
|
775
766
|
Item.prototype._class += " html_Item";
|
|
776
767
|
const _Button = class _Button extends Item {
|
|
768
|
+
_icon;
|
|
777
769
|
constructor(owner, icon) {
|
|
778
770
|
super(owner);
|
|
779
|
-
__publicField(this, "_icon");
|
|
780
771
|
this._icon = icon;
|
|
781
772
|
}
|
|
782
773
|
icon() {
|
|
@@ -817,11 +808,11 @@ __name(_Spacer, "Spacer");
|
|
|
817
808
|
let Spacer = _Spacer;
|
|
818
809
|
Spacer.prototype._class += " html_Spacer";
|
|
819
810
|
const _TitleBar = class _TitleBar extends JSXWidget {
|
|
811
|
+
_divMain;
|
|
812
|
+
_divIconBar;
|
|
813
|
+
_divTitle;
|
|
820
814
|
constructor() {
|
|
821
815
|
super();
|
|
822
|
-
__publicField(this, "_divMain");
|
|
823
|
-
__publicField(this, "_divIconBar");
|
|
824
|
-
__publicField(this, "_divTitle");
|
|
825
816
|
}
|
|
826
817
|
enter(domNode, element) {
|
|
827
818
|
super.enter(domNode, element);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/HTMLTooltip.ts","../src/SimpleTable.ts","../src/StyledTable.ts","../src/BreakdownTable.ts","../src/JSXWidget.ts","../src/reactD3.ts","../../../node_modules/preact/dist/preact.module.js","../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../src/VizComponent.tsx","../src/VizInstance.tsx","../src/StatsTable.ts","../src/TitleBar.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/html\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n","import { HTMLWidget, select as d3Select } from \"@hpcc-js/common\";\nimport { scopedLogger, ScopedLogging } from \"@hpcc-js/util\";\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, select as d3Select } from \"@hpcc-js/common\";\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.ts\";\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 (this: HTMLElement, d, i) { return i % 2 ? this : null; });\n this.applyStyleObject(tbodyEvenRows, this.evenRowStyles());\n }\n if (lastRowStylesExist) {\n const tbodyLastRow = tbodyRows.select(function (this: HTMLElement, 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.ts\";\nimport { StyledTable } from \"./StyledTable.ts\";\n\nexport class BreakdownTable extends StyledTable {\n // protected _table;\n // protected _tbody;\n protected _tooltip: HTMLTooltip;\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 = Math.max(...data.map(row => this.textSize(row[0], this.fontFamily(), this.fontSize()).height)) ?? this.fontSize();\n const widestLabel = Math.max(...data.map(row => this.textSize(row[0], this.fontFamily(), 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 \">${otherData.map(row =>\n `<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 { HTMLWidget } from \"@hpcc-js/common\";\nimport { React } from \"@hpcc-js/react\";\n\nexport class JSXWidget extends HTMLWidget {\n static Component = React.Component;\n static createElement = React.createElement;\n protected rootNode;\n\n jsxRender(jsx, domNode) {\n this.rootNode = React.render(jsx, domNode, this.rootNode);\n }\n}\nJSXWidget.prototype._class += \" html_JSXWidget\";\n","import { select as d3Select } from \"@hpcc-js/common\";\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 .remove();\n return thisElement.enter().append(this.type())\n .attr(\"reactd3\", 0)\n .merge(thisElement)\n .each(function (this: HTMLElement, 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 .remove();\n return thisElement.enter().append(d => document.createElement(d.type()))\n .attr(\"reactd3\", (_d, i) => i)\n .merge(thisElement)\n .each(function (this: HTMLElement, 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","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_=t&&t.__k||v,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:_[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&q(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { JSXWidget } from \"./JSXWidget.ts\";\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 { JSXWidget } from \"./JSXWidget.ts\";\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.ts\";\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","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { JSXWidget } from \"./JSXWidget.ts\";\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\n constructor(owner: IClickHandler) {\n super();\n this._owner = owner;\n this._tag = \"a\";\n }\n}\nItem.prototype._class += \" html_Item\";\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}\nButton.prototype._class += \" html_Button\";\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}\nToggleButton.prototype._class += \" html_ToggleButton\";\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}\nSpacer.prototype._class += \" html_Spacer\";\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":["d3Select","l","u","r","jsx","d3Format"],"mappings":"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","x_google_ignoreList":[7,8]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/HTMLTooltip.ts","../src/SimpleTable.ts","../src/StyledTable.ts","../src/BreakdownTable.ts","../src/JSXWidget.ts","../src/reactD3.ts","../../../node_modules/preact/dist/preact.module.js","../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../src/VizComponent.tsx","../src/VizInstance.tsx","../src/StatsTable.ts","../src/TitleBar.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/html\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n","import { HTMLWidget, select as d3Select } from \"@hpcc-js/common\";\nimport { scopedLogger, ScopedLogging } from \"@hpcc-js/util\";\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, select as d3Select } from \"@hpcc-js/common\";\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.ts\";\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 (this: HTMLElement, d, i) { return i % 2 ? this : null; });\n this.applyStyleObject(tbodyEvenRows, this.evenRowStyles());\n }\n if (lastRowStylesExist) {\n const tbodyLastRow = tbodyRows.select(function (this: HTMLElement, 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.ts\";\nimport { StyledTable } from \"./StyledTable.ts\";\n\nexport class BreakdownTable extends StyledTable {\n // protected _table;\n // protected _tbody;\n protected _tooltip: HTMLTooltip;\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 = Math.max(...data.map(row => this.textSize(row[0], this.fontFamily(), this.fontSize()).height)) ?? this.fontSize();\n const widestLabel = Math.max(...data.map(row => this.textSize(row[0], this.fontFamily(), 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 \">${otherData.map(row =>\n `<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 { HTMLWidget } from \"@hpcc-js/common\";\nimport { React } from \"@hpcc-js/react\";\n\nexport class JSXWidget extends HTMLWidget {\n static Component = React.Component;\n static createElement = React.createElement;\n protected rootNode;\n\n jsxRender(jsx, domNode) {\n this.rootNode = React.render(jsx, domNode, this.rootNode);\n }\n}\nJSXWidget.prototype._class += \" html_JSXWidget\";\n","import { select as d3Select } from \"@hpcc-js/common\";\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 .remove();\n return thisElement.enter().append(this.type())\n .attr(\"reactd3\", 0)\n .merge(thisElement)\n .each(function (this: HTMLElement, 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 .remove();\n return thisElement.enter().append(d => document.createElement(d.type()))\n .attr(\"reactd3\", (_d, i) => i)\n .merge(thisElement)\n .each(function (this: HTMLElement, 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","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,N(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=A(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==n.key||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(T=o.length;T--;)g(o[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(V):d({},n)}function q(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&D(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { JSXWidget } from \"./JSXWidget.ts\";\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 { JSXWidget } from \"./JSXWidget.ts\";\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.ts\";\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","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { JSXWidget } from \"./JSXWidget.ts\";\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\n constructor(owner: IClickHandler) {\n super();\n this._owner = owner;\n this._tag = \"a\";\n }\n}\nItem.prototype._class += \" html_Item\";\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}\nButton.prototype._class += \" html_Button\";\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}\nToggleButton.prototype._class += \" html_ToggleButton\";\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}\nSpacer.prototype._class += \" html_Spacer\";\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":["d3Select","l","u","r","jsx","d3Format"],"mappings":"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","x_google_ignoreList":[7,8]}
|