@hpcc-js/composite 3.2.11 → 3.2.12

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../layout/dist/index.js","../src/Utility.ts","../src/MultiChart.ts","../src/ChartPanel.ts","../src/Dermatology.ts","../src/MegaChart.ts","../src/Persist.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/composite\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != \"symbol\" ? key + \"\" : key, value);\nimport { HTMLWidget, FAChar, select, selectAll, Utility, d3Event, Platform, drag, scaleLinear, dispatch, formatPrefix, format, formatLocale, formatSpecifier, sum, SVGWidget, Database, Palette, scaleOrdinal, ProgressBar, ToggleButton, Text, Button, Spacer, TitleBar, IconBar } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { instanceOfIHighlight } from \"@hpcc-js/api\";\nfunction _mergeNamespaces(n, m) {\n for (var i = 0; i < m.length; i++) {\n const e = m[i];\n if (typeof e != \"string\" && !Array.isArray(e)) {\n for (const k2 in e)\n if (k2 !== \"default\" && !(k2 in n)) {\n const d = Object.getOwnPropertyDescriptor(e, k2);\n d && Object.defineProperty(n, k2, d.get ? d : {\n enumerable: !0,\n get: () => e[k2]\n });\n }\n }\n }\n return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: \"Module\" }));\n}\nconst PKG_NAME = \"@hpcc-js/layout\", PKG_VERSION = \"3.1.1\", BUILD_VERSION = \"3.2.1\";\nclass AbsoluteSurface extends HTMLWidget {\n constructor() {\n super(), this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n super.update(domNode, element);\n let xPos = 0, yPos = 0, width = this.clientWidth(), height = this.clientHeight();\n switch (this.units()) {\n case \"pixels\":\n xPos = this.widgetX(), yPos = this.widgetY(), width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth()), height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight());\n break;\n case \"percent\":\n xPos = this.widgetX() * width / 100, yPos = this.widgetY() * height / 100, width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth()) * width / 100, height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight()) * height / 100;\n break;\n }\n element.style(\"opacity\", this.opacity());\n const widgets = element.selectAll(\"#\" + this._id + \" > .placeholder\").data(this.widget() ? [this.widget()] : [], function(d) {\n return d._id;\n });\n widgets.enter().append(\"div\").attr(\"class\", \"placeholder\").each(function(d) {\n d.target(this);\n }).merge(widgets).style(\"left\", xPos + \"px\").style(\"top\", yPos + \"px\").style(\"width\", width + \"px\").style(\"bottom\", height + \"px\").each(function(d) {\n d.resize({ width, height });\n }), widgets.exit().each(function(d) {\n d.target(null);\n }).remove();\n }\n exit(domNode, element) {\n this.widget() && this.widget().target(null), super.exit(domNode, element);\n }\n}\nAbsoluteSurface.prototype._class += \" layout_AbsoluteSurface\";\nAbsoluteSurface.prototype.publish(\"units\", \"percent\", \"set\", \"Units\", [\"pixels\", \"percent\"]);\nAbsoluteSurface.prototype.publish(\"widgetX\", 0, \"number\", \"Widget XPos\");\nAbsoluteSurface.prototype.publish(\"widgetY\", 0, \"number\", \"Widget YPos\");\nAbsoluteSurface.prototype.publish(\"widgetWidth\", \"100\", \"string\", \"Widget Width, omit for full\");\nAbsoluteSurface.prototype.publish(\"widgetHeight\", \"100\", \"string\", \"Widget Height, omit for full\");\nAbsoluteSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nAbsoluteSurface.prototype.publish(\"opacity\", 1, \"number\", \"Opacity\");\nclass Accordion extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_isClosed\");\n __publicField(this, \"titleSpan\");\n __publicField(this, \"iconDiv\");\n __publicField(this, \"ul\");\n __publicField(this, \"icon\");\n this._tag = \"div\", this._isClosed = !1;\n }\n pushListItem(widget, prepend = !1, protect = !1) {\n const contentArr = this.content();\n return widget._protected = protect, prepend ? contentArr.unshift(widget) : contentArr.push(widget), this.content(contentArr), this;\n }\n clearListItems() {\n const arr = [];\n for (const i in this.content())\n this.content()[i]._protected && arr.push(this.content()[i]);\n return this.content(arr), this;\n }\n collapseClick(element) {\n element.classed(\"closed\") ? (this._isClosed = !1, element.classed(\"open\", !0), element.classed(\"closed\", !1)) : (this._isClosed = !0, element.classed(\"open\", !1), element.classed(\"closed\", !0));\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n this._isClosed = this.defaultCollapsed(), element.classed(this._isClosed ? \"closed\" : \"open\", !0), this.titleSpan = element.append(\"span\").classed(\"collapsible-title\", !0), this.iconDiv = element.append(\"div\").classed(\"collapsible-icon\", !0), this.ul = element.append(\"ul\"), this.icon = new FAChar().size({ height: 24, width: 24 }).target(this.iconDiv.node()), this.iconDiv.on(\"click\", function() {\n context.collapseClick(element), context.render();\n }), this.titleSpan.on(\"click\", function() {\n context.collapseClick(element), context.render();\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this, this_id = \"\";\n this.titleSpan.text(context.title().length > 0 ? context.title() + this_id : \"Accordion [\" + context._id + \"]\" + this_id);\n const rows = this.ul.selectAll(\"#\" + context._id + \" > ul > li\").data(this.content(), function(d) {\n return d._id;\n });\n rows.enter().append(function(widget) {\n const li = document.createElement(\"li\");\n if (widget._target === null) {\n const wSize = widget.size();\n if (wSize.width === 0 || wSize.height === 0) {\n const cSize = context.size();\n widget.size({\n width: cSize.width,\n height: cSize.width\n });\n }\n widget.target(li);\n } else\n return widget._target;\n return li;\n }), rows.exit().remove(), this.icon.text_colorFill(this.titleFontColor()).char(this._isClosed ? this.closedIcon() : this.openIcon()).render();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n}\nAccordion.prototype._class += \" layout_Accordion\";\nAccordion.prototype.publish(\"content\", [], \"widgetArray\", \"Array of widgets\", null, { tags: [\"Basic\"] });\nAccordion.prototype.publish(\"title\", \"\", \"string\", \"Title of collapsible section\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"openIcon\", \"\", \"string\", \"Icon to display when list is open\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"closedIcon\", \"\", \"string\", \"Icon to display when list is closed\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleFontColor\", \"#FFFFFF\", \"html-color\", \"Title font color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleBackgroundColor\", \"#333333\", \"html-color\", \"Title background color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"defaultCollapsed\", !1, \"boolean\", \"Collapsed by default if true\", null, { tags: [\"Private\"] });\nclass Surface extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_surfaceButtons\");\n this._tag = \"div\", this._surfaceButtons = [];\n }\n widgetSize(titleDiv, widgetDiv) {\n let width = this.clientWidth(), height = this.clientHeight();\n return this.title() && (height -= this.calcHeight(titleDiv)), height -= this.calcFrameHeight(widgetDiv), width -= this.calcFrameWidth(widgetDiv), { width, height };\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element2) {\n super.update(domNode, element2);\n const context = this;\n element2.classed(\"shadow2\", this.surfaceShadow()).style(\"border-width\", this.surfaceBorderWidth_exists() ? this.surfaceBorderWidth() + \"px\" : null).style(\"border-color\", this.surfaceBorderColor()).style(\"border-radius\", this.surfaceBorderRadius_exists() ? this.surfaceBorderRadius() + \"px\" : null).style(\"background-color\", this.surfaceBackgroundColor());\n const titles = element2.selectAll(\".surfaceTitle\").data(this.title() ? [this.title()] : []);\n titles.enter().insert(\"h3\", \"div\").attr(\"class\", \"surfaceTitle\").merge(titles).text(function(d) {\n return d;\n }).style(\"text-align\", this.surfaceTitleAlignment()).style(\"color\", this.surfaceTitleFontColor()).style(\"font-size\", this.surfaceTitleFontSize_exists() ? this.surfaceTitleFontSize() + \"px\" : null).style(\"font-family\", this.surfaceTitleFontFamily()).style(\"font-weight\", this.surfaceTitleFontBold() ? \"bold\" : \"normal\").style(\"background-color\", this.surfaceTitleBackgroundColor()).style(\"padding\", this.surfaceTitlePadding_exists() ? this.surfaceTitlePadding() + \"px\" : null).style(\"title\", this.altText_exists() ? this.altText() : null), titles.exit().remove();\n const surfaceButtons = element2.select(\".surfaceTitle\").append(\"div\").attr(\"class\", \"html-button-container\").selectAll(\".surface-button\").data(this.buttonAnnotations());\n surfaceButtons.enter().append(\"button\").classed(\"surface-button\", !0).each(function(button, idx) {\n const el = context._surfaceButtons[idx] = select(this).attr(\"class\", \"surface-button\" + (button.class ? \" \" + button.class : \"\")).attr(\"id\", button.id).style(\"padding\", button.padding).style(\"width\", button.width).style(\"height\", button.height).style(\"cursor\", \"pointer\");\n button.font === \"FontAwesome\" ? el.style(\"background\", \"transparent\").style(\"border\", \"none\").on(\"click\", function(d) {\n context.click(d);\n }).append(\"i\").attr(\"class\", \"fa\").text(function() {\n return button.label;\n }) : el.text(function() {\n return button.label;\n }).on(\"click\", function(d) {\n context.click(d);\n });\n }), surfaceButtons.exit().each(function(_d, idx) {\n const element = select(this);\n delete context._surfaceButtons[idx], element.remove();\n });\n const widgets = element2.selectAll(\"#\" + this._id + \" > .surfaceWidget\").data(this.widget() ? [this.widget()] : [], function(d) {\n return d._id;\n });\n widgets.enter().append(\"div\").attr(\"class\", \"surfaceWidget\").each(function(d) {\n select(context.element().node().parentElement).classed(\"content-icon content-icon-\" + d.classID().split(\"_\")[1], !0), d.target(this);\n }).merge(widgets).style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null).each(function(d) {\n const widgetSize = context.widgetSize(element2.select(\"h3\"), select(this));\n widgetSize.width < 0 && (widgetSize.width = 0), widgetSize.height < 0 && (widgetSize.height = 0), d.resize({ width: widgetSize.width, height: widgetSize.height });\n }), widgets.exit().each(function(d) {\n d.target(null);\n }).remove();\n }\n exit(domNode, element) {\n this.widget() && this.widget().target(null), super.exit(domNode, element);\n }\n // Events ---\n click(obj) {\n }\n}\nSurface.prototype._class += \" layout_Surface\";\nSurface.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"altText\", null, \"string\", \"Alt text\", null, { optional: !0 });\nSurface.prototype.publish(\"surfaceTitlePadding\", null, \"number\", \"Title Padding (px)\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontBold\", !0, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleBackgroundColor\", null, \"html-color\", \"Title Background Color\", null, { tags: [\"Advanced\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleAlignment\", \"center\", \"set\", \"Title Alignment\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], disable: (w) => !w.title() });\nSurface.prototype.publish(\"surfaceShadow\", !1, \"boolean\", \"3D Shadow\");\nSurface.prototype.publish(\"surfacePadding\", null, \"string\", \"Surface Padding (px)\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderWidth\", null, \"number\", \"Surface Border Width (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderColor\", null, \"html-color\", \"Surface Border Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderRadius\", null, \"number\", \"Surface Border Radius (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Private\"] });\nSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"] });\nclass Cell extends Surface {\n constructor() {\n super();\n __publicField(this, \"_indicateTheseIds\");\n this._indicateTheseIds = [];\n }\n indicateTheseIds(_) {\n return arguments.length ? (this._indicateTheseIds = _, this) : this._indicateTheseIds;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.classed(\"layout_Surface\", !0).on(\"mouseenter\", function() {\n context.onMouseEnter();\n }).on(\"mouseleave\", function() {\n context.onMouseLeave();\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n }\n onMouseEnter() {\n const arr = this.indicateTheseIds(), opacity = this.indicatorOpacity(), indicatorBorderColor = this.indicatorBorderColor(), indicatorGlowColor = this.indicatorGlowColor();\n for (let i = 0; i < arr.length; i++) {\n const otherElement = select(\"#\" + arr[i]), otherWidget = otherElement.datum();\n otherElement && otherWidget && otherElement.append(\"div\").attr(\"class\", \"update-indicator\").style(\"width\", otherWidget.width() + \"px\").style(\"height\", otherWidget.height() + \"px\").style(\"opacity\", opacity).style(\"border-color\", indicatorBorderColor).style(\"-webkit-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor).style(\"-moz-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor).style(\"box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor);\n }\n }\n onMouseLeave() {\n const arr = this.indicateTheseIds();\n for (let i = 0; i < arr.length; i++)\n selectAll(\"#\" + arr[i] + \" > div.update-indicator\").remove();\n }\n}\nCell.prototype._class += \" layout_Cell\";\nCell.prototype.publish(\"gridRow\", 0, \"number\", \"Grid Row Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridCol\", 0, \"number\", \"Grid Column Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridRowSpan\", 1, \"number\", \"Grid Row Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridColSpan\", 1, \"number\", \"Grid Column Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"indicatorGlowColor\", \"#EEEE11\", \"html-color\", \"Glow color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorBorderColor\", \"#F48A00\", \"html-color\", \"Border color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorOpacity\", 0.8, \"number\", \"Opacity of update-indicator\", null, { tags: [\"Basic\"] });\nclass Border extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_colCount\");\n __publicField(this, \"_rowCount\");\n __publicField(this, \"_colSize\");\n __publicField(this, \"_rowSize\");\n __publicField(this, \"_shrinkWrapBoxes\");\n __publicField(this, \"_watch\");\n __publicField(this, \"_offsetX\");\n __publicField(this, \"_offsetY\");\n __publicField(this, \"_dragCell\");\n __publicField(this, \"_dragCellSize\");\n __publicField(this, \"_dragCellStartSize\");\n __publicField(this, \"_handleTop\");\n __publicField(this, \"_handleLeft\");\n __publicField(this, \"_dragPrevX\");\n __publicField(this, \"_dragPrevY\");\n __publicField(this, \"_cellSizes\");\n __publicField(this, \"contentDiv\");\n __publicField(this, \"_scrollBarWidth\");\n __publicField(this, \"_borderHandles\");\n __publicField(this, \"_sectionTypeArr\");\n __publicField(this, \"lazyPostUpdate\", Utility.debounce(function() {\n this.postUpdate();\n }, 100));\n this._tag = \"div\", this._colCount = 0, this._rowCount = 0, this._colSize = 0, this._rowSize = 0, this._shrinkWrapBoxes = {}, this.content([]), this.sectionTypes([]);\n }\n watchWidget(widget) {\n if (this._watch === void 0 && (this._watch = {}), this._watch[widget.id()] && (this._watch[widget.id()].remove(), delete this._watch[widget.id()]), widget) {\n const context = this;\n this._watch[widget.id()] = widget.monitor(function(paramId, newVal, oldVal) {\n oldVal !== newVal && context.lazyPostUpdate();\n });\n }\n }\n applyLayoutType() {\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function(cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left, cell._fixedTop = layoutObj[this.sectionTypes()[i]].top, cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width, cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height, cell._dragHandles = this.cellSpecificDragHandles(this.sectionTypes()[i]);\n }, this);\n }\n cellSpecificDragHandles(sectionType) {\n switch (sectionType) {\n case \"top\":\n return [\"s\"];\n case \"right\":\n return [\"w\"];\n case \"bottom\":\n return [\"n\"];\n case \"left\":\n return [\"e\"];\n case \"center\":\n return [];\n }\n }\n borderLayoutObject(layoutType) {\n const retObj = {}, context = this;\n let topSize, topPerc, bottomSize, bottomPerc, leftSize, leftPerc, rightSize, rightPerc;\n const bcRect = this.target().getBoundingClientRect();\n bcRect.top, bcRect.left, bcRect.bottom, bcRect.right, this.target() instanceof SVGElement ? (parseFloat(this.target().getAttribute(\"width\")), parseFloat(this.target().getAttribute(\"height\"))) : (bcRect.width, bcRect.height), this.sectionTypes().indexOf(\"top\") !== -1 && (topSize = this.topSize(), topPerc = this.topPercentage(), typeof this._shrinkWrapBoxes.top < \"u\" && (topSize = this._shrinkWrapBoxes.top.height + this.gutter(), topPerc = 0)), this.sectionTypes().indexOf(\"bottom\") !== -1 && (bottomSize = this.bottomSize(), bottomPerc = this.bottomPercentage(), typeof this._shrinkWrapBoxes.bottom < \"u\" && (bottomSize = this._shrinkWrapBoxes.bottom.height + this.gutter(), bottomPerc = 0)), this.sectionTypes().indexOf(\"left\") !== -1 && (leftSize = this.leftSize(), leftPerc = this.leftPercentage(), typeof this._shrinkWrapBoxes.left < \"u\" && (leftSize = this._shrinkWrapBoxes.left.width + this.gutter(), leftPerc = 0)), this.sectionTypes().indexOf(\"right\") !== -1 && (rightSize = this.rightSize(), rightPerc = this.rightPercentage(), typeof this._shrinkWrapBoxes.right < \"u\" && (rightSize = this._shrinkWrapBoxes.right.width + this.gutter(), rightPerc = 0));\n const t = _sectionPlacementObject({\n width: { px: 0, \"%\": 100 },\n height: { px: topSize, \"%\": topPerc },\n top: { px: 0, \"%\": 0 },\n left: { px: 0, \"%\": 0 }\n }), b = _sectionPlacementObject({\n width: { px: 0, \"%\": 100 },\n height: { px: bottomSize, \"%\": bottomPerc },\n top: { px: 0, \"%\": 100 },\n left: { px: 0, \"%\": 0 }\n });\n b.top -= b.height;\n const l = _sectionPlacementObject({\n width: { px: leftSize, \"%\": leftPerc },\n height: { px: -t.height - b.height, \"%\": 100 },\n top: { px: t.height, \"%\": 0 },\n left: { px: 0, \"%\": 0 }\n }), r = _sectionPlacementObject({\n width: { px: rightSize, \"%\": rightPerc },\n height: { px: -t.height - b.height, \"%\": 100 },\n top: { px: t.height, \"%\": 0 },\n left: { px: 0, \"%\": 100 }\n });\n r.left -= r.width;\n const c2 = _sectionPlacementObject({\n width: { px: -r.width - l.width, \"%\": 100 },\n height: { px: -t.height - b.height, \"%\": 100 },\n top: { px: t.height, \"%\": 0 },\n left: { px: l.width, \"%\": 0 }\n });\n return retObj.top = t, retObj.bottom = b, retObj.right = r, retObj.left = l, retObj.center = c2, retObj;\n function _sectionPlacementObject(obj) {\n return obj.width.px = typeof obj.width.px < \"u\" ? obj.width.px : 0, obj.width[\"%\"] = typeof obj.width[\"%\"] < \"u\" ? obj.width[\"%\"] : 0, obj.height.px = typeof obj.height.px < \"u\" ? obj.height.px : 0, obj.height[\"%\"] = typeof obj.height[\"%\"] < \"u\" ? obj.height[\"%\"] : 0, {\n width: obj.width.px + obj.width[\"%\"] / 100 * context.width(),\n height: obj.height.px + obj.height[\"%\"] / 100 * context.height(),\n top: obj.top.px + obj.top[\"%\"] / 100 * context.height() + context.gutter() / 2,\n left: obj.left.px + obj.left[\"%\"] / 100 * context.width() + context.gutter() / 2\n };\n }\n }\n clearContent(sectionType) {\n if (!sectionType)\n this.content().forEach(function(contentWidget) {\n return contentWidget.target(null), !1;\n }), select(\"#\" + this.id() + \" > div.borderHandle\").classed(\"borderHandleDisabled\", !0), delete this._watch, this.content([]), this.sectionTypes([]);\n else {\n const idx = this.sectionTypes().indexOf(sectionType);\n idx >= 0 && (this._watch && this.content()[idx] && delete this._watch[this.content()[idx].id()], this.content()[idx].target(null), select(\"#\" + this.id() + \" > div.borderHandle_\" + sectionType).classed(\"borderHandleDisabled\", !0), this.content().splice(idx, 1), this.sectionTypes().splice(idx, 1));\n }\n }\n hasContent(sectionType, widget, title) {\n return this.sectionTypes().indexOf(sectionType) >= 0;\n }\n setContent(sectionType, widget, title) {\n if (this.clearContent(sectionType), title = typeof title < \"u\" ? title : \"\", widget) {\n const cell = new Cell().surfaceBorderWidth(0).widget(widget).title(title);\n this.watchWidget(widget), this.content().push(cell), this.sectionTypes().push(sectionType);\n }\n return this;\n }\n getCell(id) {\n const idx = this.sectionTypes().indexOf(id);\n return idx >= 0 ? this.content()[idx] : null;\n }\n getContent(id) {\n const idx = this.sectionTypes().indexOf(id);\n return idx >= 0 ? this.content()[idx].widget() : null;\n }\n setLayoutOffsets() {\n this._offsetX = this._element.node().getBoundingClientRect().left + this.gutter() / 2, this._offsetY = this._element.node().getBoundingClientRect().top + this.gutter() / 2;\n }\n dragStart(handle) {\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const context = this;\n this._dragCell = handle, this._dragCellStartSize = this[handle + \"Size\"](), this[handle + \"ShrinkWrap\"]() && (this[handle + \"Percentage\"](0), this[handle + \"ShrinkWrap\"](!1));\n const handleElm = select(\"#\" + context.id() + \" > div.borderHandle_\" + handle);\n context._handleTop = parseFloat(handleElm.style(\"top\").split(\"px\")[0]), context._handleLeft = parseFloat(handleElm.style(\"left\").split(\"px\")[0]), this._dragPrevX = event.sourceEvent.clientX, this._dragPrevY = event.sourceEvent.clientY;\n }\n dragTick(handle) {\n const context = this, event = d3Event(), xDelta = this._dragPrevX - event.sourceEvent.clientX, yDelta = this._dragPrevY - event.sourceEvent.clientY;\n switch (handle) {\n case \"top\":\n case \"bottom\":\n _moveHandles(handle, yDelta);\n break;\n case \"right\":\n case \"left\":\n _moveHandles(handle, xDelta);\n break;\n }\n function _moveHandles(handle2, delta) {\n if (delta === 0) return;\n const handles = selectAll(\"#\" + context.id() + \" > div.borderHandle\"), grabbedHandle = select(\"#\" + context.id() + \" > div.borderHandle_\" + handle2);\n grabbedHandle.classed(\"borderHandle_top\") ? (grabbedHandle.style(\"top\", context._handleTop - delta + \"px\"), context._cellSizes.topHeight = context._handleTop - delta, context._cellSizes.leftHeight = context._cellSizes.height, context._cellSizes.leftHeight -= context._cellSizes.topHeight, context._cellSizes.leftHeight -= context._cellSizes.bottomHeight, context._cellSizes.rightHeight = context._cellSizes.leftHeight) : grabbedHandle.classed(\"borderHandle_right\") ? (grabbedHandle.style(\"left\", context._handleLeft - delta + \"px\"), context._cellSizes.rightWidth = context._cellSizes.width - context._handleLeft + delta) : grabbedHandle.classed(\"borderHandle_bottom\") ? (grabbedHandle.style(\"top\", context._handleTop - delta + \"px\"), context._cellSizes.bottomHeight = context._cellSizes.height - context._handleTop + delta, context._cellSizes.leftHeight = context._cellSizes.height, context._cellSizes.leftHeight -= context._cellSizes.bottomHeight, context._cellSizes.leftHeight -= context._cellSizes.topHeight, context._cellSizes.rightHeight = context._cellSizes.leftHeight) : grabbedHandle.classed(\"borderHandle_left\") && (grabbedHandle.style(\"left\", context._handleLeft - delta + \"px\"), context._cellSizes.leftWidth = context._handleLeft - delta), handles.each(function() {\n const handle3 = select(this);\n handle3.classed(\"borderHandle_top\") ? (handle3.style(\"width\", context._cellSizes.width + \"px\"), handle3.style(\"top\", context._cellSizes.topHeight - 3 + \"px\")) : handle3.classed(\"borderHandle_right\") ? (handle3.style(\"left\", context._cellSizes.width - context._cellSizes.rightWidth + \"px\"), handle3.style(\"top\", context._cellSizes.topHeight + 3 + \"px\"), handle3.style(\"height\", context._cellSizes.rightHeight + \"px\")) : handle3.classed(\"borderHandle_bottom\") ? (handle3.style(\"width\", context._cellSizes.width + \"px\"), handle3.style(\"top\", context._cellSizes.height - context._cellSizes.bottomHeight - 3 + \"px\")) : handle3.classed(\"borderHandle_left\") && (handle3.style(\"left\", context._cellSizes.leftWidth + \"px\"), handle3.style(\"height\", context._cellSizes.leftHeight + \"px\"), handle3.style(\"top\", context._cellSizes.topHeight + 3 + \"px\"));\n });\n }\n }\n dragEnd(handle) {\n if (handle) {\n const event = d3Event(), xDelta = this._dragPrevX - event.sourceEvent.clientX, yDelta = this._dragPrevY - event.sourceEvent.clientY;\n switch (handle) {\n case \"top\":\n yDelta !== 0 && (this.topPercentage(0), this.topSize(this.topSize() === 0 ? this.getContent(\"top\").getBBox().height - yDelta : this.topSize() - yDelta));\n break;\n case \"right\":\n xDelta !== 0 && (this.rightPercentage(0), this.rightSize(this.rightSize() === 0 ? this.getContent(\"right\").getBBox().width + xDelta : this.rightSize() + xDelta));\n break;\n case \"bottom\":\n yDelta !== 0 && (this.bottomPercentage(0), this.bottomSize(this.bottomSize() === 0 ? this.getContent(\"bottom\").getBBox().height + yDelta : this.bottomSize() + yDelta));\n break;\n case \"left\":\n xDelta !== 0 && (this.leftPercentage(0), this.leftSize(this.leftSize() === 0 ? this.getContent(\"left\").getBBox().width - xDelta : this.leftSize() - xDelta));\n break;\n }\n this._dragPrevX = event.sourceEvent.clientX, this._dragPrevY = event.sourceEvent.clientY;\n }\n this.render();\n }\n size(_) {\n const retVal = HTMLWidget.prototype.size.apply(this, arguments);\n return arguments.length && this.contentDiv && this.contentDiv.style(\"width\", this._size.width + \"px\").style(\"height\", this._size.height + \"px\"), retVal;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.style(\"position\", \"relative\"), this.contentDiv = element.append(\"div\").classed(\"border-content\", !0), this._scrollBarWidth = Platform.getScrollbarWidth(), this._borderHandles = [\"top\", \"left\", \"right\", \"bottom\"], element.selectAll(\"div.borderHandle\").data(this._borderHandles).enter().append(\"div\").classed(\"borderHandle\", !0).each(function(handle) {\n select(this).classed(\"borderHandle_\" + handle, !0).classed(\"borderHandleDisabled\", context.getContent(handle) === null);\n });\n }\n update(domNode, element) {\n super.update(domNode, element), this._sectionTypeArr = this.sectionTypes();\n const context = this;\n element.classed(\"design-mode\", this.designMode()), this.setLayoutOffsets();\n const rows = this.contentDiv.selectAll(\".cell_\" + this._id).data(this.content(), function(d) {\n return d._id;\n }), rowsUpdate = rows.enter().append(\"div\").classed(\"cell_\" + this._id, !0).style(\"position\", \"absolute\").each(function(d, i) {\n select(this).classed(\"border-cell border-cell-\" + context._sectionTypeArr[i], !0), d.target(this), select(\"#\" + context.id() + \" > div.borderHandle_\" + context._sectionTypeArr[i]).classed(\"borderHandleDisabled\", !1);\n }).merge(rows);\n rowsUpdate.each(function(d, idx) {\n const sectionType = context.sectionTypes()[idx];\n typeof context[sectionType + \"ShrinkWrap\"] < \"u\" && context[sectionType + \"ShrinkWrap\"]() ? (d.render(), context._shrinkWrapBoxes[sectionType] = d.widget().getBBox(!0)) : delete context._shrinkWrapBoxes[sectionType];\n });\n const drag$1 = drag().on(\"start\", function(d, i) {\n context.dragStart.call(context, d, i);\n }).on(\"drag\", function(d, i) {\n context.dragTick.call(context, d, i);\n }).on(\"end\", function(d, i) {\n context.dragEnd.call(context, d, i);\n });\n this.designMode() ? element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").call(drag$1) : element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").on(\".drag\", null);\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function(cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left, cell._fixedTop = layoutObj[this.sectionTypes()[i]].top, cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width, cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height, cell._dragHandles = [];\n }, this), rowsUpdate.style(\"left\", function(d) {\n return d._fixedLeft + \"px\";\n }).style(\"top\", function(d) {\n return d._fixedTop + \"px\";\n }).style(\"width\", function(d) {\n return d._fixedWidth - context.gutter() + \"px\";\n }).style(\"height\", function(d) {\n return d._fixedHeight - context.gutter() + \"px\";\n }).each(function(d) {\n d._placeholderElement.attr(\"draggable\", context.designMode()).selectAll(\".dragHandle\").attr(\"draggable\", context.designMode()), d.surfacePadding(context.surfacePadding()).resize();\n }), rows.exit().each(function(d) {\n d.target(null);\n }).remove(), this.getCellSizes(), element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").each(function() {\n const handle = select(this);\n handle.classed(\"borderHandle_top\") ? (handle.style(\"width\", context._cellSizes.width + \"px\"), handle.style(\"top\", context._cellSizes.topHeight - 3 + \"px\")) : handle.classed(\"borderHandle_right\") ? (handle.style(\"left\", context._cellSizes.width - context._cellSizes.rightWidth + \"px\"), handle.style(\"top\", context._cellSizes.topHeight + 3 + \"px\"), handle.style(\"height\", context._cellSizes.rightHeight + \"px\")) : handle.classed(\"borderHandle_bottom\") ? (handle.style(\"width\", context._cellSizes.width + \"px\"), handle.style(\"top\", context._cellSizes.height - context._cellSizes.bottomHeight - 3 + \"px\")) : handle.classed(\"borderHandle_left\") && (handle.style(\"left\", context._cellSizes.leftWidth + \"px\"), handle.style(\"height\", context._cellSizes.leftHeight + \"px\"), handle.style(\"top\", context._cellSizes.topHeight + 3 + \"px\"));\n });\n }\n getCellSizes() {\n const context = this;\n context._cellSizes = {};\n const contentRect = this.element().node().getBoundingClientRect();\n context._cellSizes.width = contentRect.width, context._cellSizes.height = contentRect.height, this.element().selectAll(\"#\" + this.id() + \" > div > div.border-cell\").each(function() {\n const cell = select(this);\n if (typeof cell.node == \"function\") {\n const rect = cell.node().getBoundingClientRect();\n cell.classed(\"border-cell-top\") ? context._cellSizes.topHeight = rect.height : cell.classed(\"border-cell-left\") ? (context._cellSizes.leftWidth = rect.width, context._cellSizes.leftHeight = rect.height) : cell.classed(\"border-cell-right\") ? (context._cellSizes.rightWidth = rect.width, context._cellSizes.rightHeight = rect.height) : cell.classed(\"border-cell-bottom\") && (context._cellSizes.bottomHeight = rect.height);\n }\n }), [\"height\", \"width\", \"topHeight\", \"bottomHeight\", \"leftHeight\", \"rightHeight\", \"leftWidth\", \"rightWidth\"].forEach(function(size) {\n context._cellSizes[size] = context._cellSizes[size] === void 0 ? 0 : context._cellSizes[size];\n });\n }\n postUpdate(domNode, element) {\n const context = this;\n this.content().forEach(function(n) {\n if (n._element.node() !== null && n.widget()) {\n const prevBox = n.widget().getBBox(!1, !0), currBox = n.widget().getBBox(!0, !0);\n (prevBox.width !== currBox.width || prevBox.height !== currBox.height) && context.lazyRender();\n }\n });\n }\n exit(domNode, element) {\n this.content().forEach((w) => w.target(null)), super.exit(domNode, element);\n }\n}\nBorder.prototype._class += \" layout_Border\";\nBorder.prototype.publish(\"designMode\", !1, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nBorder.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"gutter\", 0, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\nBorder.prototype.publish(\"topShrinkWrap\", !1, \"boolean\", \"'Top' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"leftShrinkWrap\", !1, \"boolean\", \"'Left' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"rightShrinkWrap\", !1, \"boolean\", \"'Right' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"bottomShrinkWrap\", !1, \"boolean\", \"'Bottom' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"topSize\", 0, \"number\", \"Height of the 'Top' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftSize\", 0, \"number\", \"Width of the 'Left' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightSize\", 0, \"number\", \"Width of the 'Right' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomSize\", 0, \"number\", \"Height of the 'Bottom' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"topPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Top' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Left' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Right' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Bottom' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"surfacePadding\", 0, \"number\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"sectionTypes\", [], \"array\", \"Section Types sharing an index with 'content' - Used to determine position/size.\", null, { tags: [\"Private\"] });\nclass WidgetDiv {\n constructor(div) {\n __publicField(this, \"_div\");\n __publicField(this, \"_overlay\", !1);\n __publicField(this, \"_overflowX\", \"visible\");\n __publicField(this, \"_overflowY\", \"visible\");\n __publicField(this, \"_widget\");\n this._div = div;\n }\n overlay(_) {\n return arguments.length ? (this._overlay = _, this) : this._overlay;\n }\n overflowX(_) {\n return arguments.length ? (this._overflowX = _, this._div.style(\"overflow-x\", _), this) : this._overflowX;\n }\n overflowY(_) {\n return arguments.length ? (this._overflowY = _, this._div.style(\"overflow-y\", _), this) : this._overflowY;\n }\n element() {\n return this._div;\n }\n node() {\n return this._div.node();\n }\n widget(_) {\n return arguments.length ? (this._widget !== _ && (this._widget && this._widget.target(null), this._widget = _, this._widget && this._widget.target(this._div.node())), this) : this._widget;\n }\n resize(size) {\n return this._widget && (this._div.style(\"width\", `${size.width}px`).style(\"height\", `${size.height}px`), this._widget.resize(size)), this;\n }\n async render(getBBox, availableHeight, availableWidth) {\n let overflowX = this.overflowX();\n !this.overlay() && overflowX === \"visible\" && (overflowX = null);\n let overflowY = this.overflowY();\n return !this.overlay() && overflowY === \"visible\" && (overflowY = null), this._div.style(\"height\", this.overlay() ? \"0px\" : null).style(\"overflow-x\", overflowX).style(\"overflow-y\", overflowY), this._widget ? this._widget.renderPromise().then((w) => {\n if (getBBox && this._widget.visible()) {\n const retVal = this._widget.getBBox();\n return retVal.width += 8, availableHeight !== void 0 && retVal.height > availableHeight && (retVal.width += Platform.getScrollbarWidth()), availableWidth !== void 0 && retVal.width > availableWidth && (retVal.height += Platform.getScrollbarWidth()), this.overlay() ? retVal.height = 0 : retVal.height += 4, retVal;\n }\n return getBBox ? { x: 0, y: 0, width: 0, height: 0 } : void 0;\n }) : Promise.resolve(getBBox ? { x: 0, y: 0, width: 0, height: 0 } : void 0);\n }\n}\nclass Border2 extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_bodyElement\");\n __publicField(this, \"_topWA\");\n __publicField(this, \"_leftWA\");\n __publicField(this, \"_centerWA\");\n __publicField(this, \"_rightWA\");\n __publicField(this, \"_bottomWA\");\n __publicField(this, \"_topPrevOverflow\");\n __publicField(this, \"_leftPrevOverflow\");\n __publicField(this, \"_rightPrevOverflow\");\n __publicField(this, \"_bottomPrevOverflow\");\n this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const topElement = element.append(\"header\");\n this._bodyElement = element.append(\"div\").attr(\"class\", \"body\");\n const centerElement = this._bodyElement.append(\"div\").attr(\"class\", \"center\"), leftElement = this._bodyElement.append(\"div\").attr(\"class\", \"lhs\"), rightElement = this._bodyElement.append(\"div\").attr(\"class\", \"rhs\"), bottomElement = element.append(\"div\").attr(\"class\", \"footer\");\n this._topWA = new WidgetDiv(topElement), this._centerWA = new WidgetDiv(centerElement), this._leftWA = new WidgetDiv(leftElement), this._rightWA = new WidgetDiv(rightElement), this._bottomWA = new WidgetDiv(bottomElement);\n }\n update(domNode, element) {\n super.update(domNode, element), this._topWA.element().style(\"display\", this.showTop() ? null : \"none\"), this._rightWA.element().style(\"display\", this.showRight() ? null : \"none\"), this._bottomWA.element().style(\"display\", this.showBottom() ? null : \"none\"), this._leftWA.element().style(\"display\", this.showLeft() ? null : \"none\"), this.topOverflowX() !== this._topWA.overflowX() && this._topWA.overflowX(this.topOverflowX()), this.rightOverflowX() !== this._rightWA.overflowX() && this._rightWA.overflowX(this.rightOverflowX()), this.bottomOverflowX() !== this._bottomWA.overflowX() && this._bottomWA.overflowX(this.bottomOverflowX()), this.leftOverflowX() !== this._leftWA.overflowX() && this._leftWA.overflowX(this.leftOverflowX()), this.topOverflowY() !== this._topWA.overflowY() && this._topWA.overflowY(this.topOverflowY()), this.rightOverflowY() !== this._rightWA.overflowY() && this._rightWA.overflowY(this.rightOverflowY()), this.bottomOverflowY() !== this._bottomWA.overflowY() && this._bottomWA.overflowY(this.bottomOverflowY()), this.leftOverflowY() !== this._leftWA.overflowY() && this._leftWA.overflowY(this.leftOverflowY()), this.element().style(\"width\", `${this.width()}px`).style(\"height\", `${this.height()}px`);\n }\n targetNull(w) {\n w && w.target(null);\n }\n exit(domNode, element) {\n this.targetNull(this.center()), this.targetNull(this.bottom()), this.targetNull(this.right()), this.targetNull(this.left()), this.targetNull(this.top()), super.exit(domNode, element);\n }\n swap(sectionA, sectionB) {\n const a2 = this[sectionA](), b = this[sectionB]();\n return this.targetNull(a2), this.targetNull(b), this[`_${sectionA}WA`].widget(null), this[`_${sectionB}WA`].widget(null), this[sectionA](b), this[sectionB](a2), this;\n }\n render(callback) {\n return super.render((w) => {\n this._topWA ? this._topWA.widget(this.top()).overlay(this.topOverlay()).render(!0).then(async (topBBox) => {\n const bottomBBox = await this._bottomWA.widget(this.bottom()).render(!0, void 0, this.width()), availableHeight = this.height() - (topBBox.height + bottomBBox.height), leftBBox = await this._leftWA.widget(this.left()).render(!0, availableHeight), rightBBox = await this._rightWA.widget(this.right()).render(!0, availableHeight);\n this.bottomHeight_exists() && (bottomBBox.height = this.bottomHeight());\n const bodyWidth = this.width() - (leftBBox.width + rightBBox.width), bodyHeight = this.height() - (topBBox.height + bottomBBox.height), centerOverflowX = this.centerOverflowX(), centerOverflowY = this.centerOverflowY(), scrollCenterX = [\"auto\", \"scroll\"].indexOf(centerOverflowX) !== -1, scrollCenterY = [\"auto\", \"scroll\"].indexOf(centerOverflowY) !== -1;\n (scrollCenterX || scrollCenterY) && this._centerWA.overflowX(this.centerOverflowX()).overflowY(this.centerOverflowY()).widget(this.center()).resize({\n width: bodyWidth,\n height: bodyHeight\n }).render(), this._bodyElement.style(\"height\", `${bodyHeight}px`);\n const promises = [\n this._topWA.overflowX(this.topOverflowX()).overflowY(this.topOverflowY()).resize({\n width: this.width(),\n height: topBBox.height\n }).render(),\n this._leftWA.overflowX(this.leftOverflowX()).overflowY(this.leftOverflowY()).resize({\n width: leftBBox.width,\n height: bodyHeight\n }).render(),\n this._rightWA.overflowX(this.rightOverflowX()).overflowY(this.rightOverflowY()).resize({\n width: rightBBox.width,\n height: bodyHeight\n }).render(),\n this._centerWA.overflowX(this.centerOverflowX()).overflowY(this.centerOverflowY()).widget(this.center()).resize({\n width: bodyWidth,\n height: bodyHeight\n }).render(),\n this._bottomWA.overflowX(this.bottomOverflowX()).overflowY(this.bottomOverflowY()).resize({\n width: this.width(),\n height: bottomBBox.height\n }).render()\n ];\n Promise.all(promises).then((promises2) => {\n callback && callback(this);\n });\n }) : callback && callback(this);\n });\n }\n}\nBorder2.prototype._class += \" layout_Border2\";\nBorder2.prototype.publish(\"showTop\", !0, \"boolean\", \"If true, top widget adapter will display\");\nBorder2.prototype.publish(\"showRight\", !0, \"boolean\", \"If true, right widget adapter will display\");\nBorder2.prototype.publish(\"showBottom\", !0, \"boolean\", \"If true, bottom widget adapter will display\");\nBorder2.prototype.publish(\"showLeft\", !0, \"boolean\", \"If true, left widget adapter will display\");\nBorder2.prototype.publish(\"topOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"topOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"top\", null, \"widget\", \"Top Widget\", void 0, { render: !1 });\nBorder2.prototype.publish(\"topOverlay\", !1, \"boolean\", \"Overlay Top Widget\");\nBorder2.prototype.publish(\"left\", null, \"widget\", \"Left Widget\", void 0, { render: !1 });\nBorder2.prototype.publish(\"center\", null, \"widget\", \"Center Widget\", void 0, { render: !1 });\nBorder2.prototype.publish(\"right\", null, \"widget\", \"Right Widget\", void 0, { render: !1 });\nBorder2.prototype.publish(\"bottom\", null, \"widget\", \"Bottom Widget\", void 0, { render: !1 });\nBorder2.prototype.publish(\"bottomHeight\", null, \"number\", \"Bottom Fixed Height\", void 0, { optional: !0 });\nclass Carousel extends HTMLWidget {\n constructor() {\n super(...arguments);\n __publicField(this, \"_prevActive\", 0);\n __publicField(this, \"_root\");\n }\n activeWidget() {\n return this.widgets()[this.active()];\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._root = element.append(\"div\").attr(\"id\", `${this.id()}_root`);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const active = this.active(), width = this.width();\n this._root.style(\"width\", `${width}px`).style(\"height\", `${this.height()}px`);\n const widgetElements = this._root.selectAll(`#${this.id()}_root > .carouselItem`).data(this.widgets(), (d) => d.id()), update = widgetElements.enter().append(\"div\").attr(\"class\", \"carouselItem\").each(function(w) {\n w.target(this);\n }).merge(widgetElements).style(\"left\", (d, i) => `${(i - this._prevActive) * width}px`).style(\"width\", `${width}px`);\n this._prevActive !== active && (update.style(\"display\", (d, i) => i === this._prevActive || i === active ? null : \"none\").transition().duration(this.transitionDuration()).style(\"left\", (d, i) => `${(i - active) * width}px`).on(\"end\", function(d, i) {\n select(this).style(\"display\", () => i === active ? null : \"none\");\n }), this._prevActive = active), widgetElements.exit().each(function(w) {\n w.target(null);\n }).remove();\n }\n exit(domNode, element) {\n this.widgets().forEach((w) => w.target(null)), super.exit(domNode, element);\n }\n render(callback) {\n return super.render((w) => {\n if (!this.visible() || this.isDOMHidden())\n callback && callback(w);\n else {\n const aw = this.activeWidget();\n aw && aw.resize(this.size()).render((w2) => {\n callback && callback(w);\n });\n }\n });\n }\n}\nCarousel.prototype._class += \" layout_Carousel\";\nCarousel.prototype.publish(\"widgets\", [], \"widgetArray\", \"Widgets\", null, { render: !1 });\nCarousel.prototype.publish(\"active\", 0, \"number\", \"Active widget\");\nCarousel.prototype.publish(\"transitionDuration\", 500, \"number\", \"Transition duration\");\nvar pi$1 = Math.PI, tau$1 = 2 * pi$1, epsilon = 1e-6, tauEpsilon = tau$1 - epsilon;\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null, this._ = \"\";\n}\nfunction path() {\n return new Path();\n}\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n this._x1 !== null && (this._x1 = this._x0, this._y1 = this._y0, this._ += \"Z\");\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null)\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n else if (l01_2 > epsilon) if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r)\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n else {\n var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;\n Math.abs(t01 - 1) > epsilon && (this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01)), this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n this._x1 === null ? this._ += \"M\" + x0 + \",\" + y0 : (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) && (this._ += \"L\" + x0 + \",\" + y0), r && (da < 0 && (da = da % tau$1 + tau$1), da > tauEpsilon ? this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0) : da > epsilon && (this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi$1) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1))));\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\nfunction constant(x) {\n return function() {\n return x;\n };\n}\nvar pi = Math.PI, tau = 2 * pi;\nconst d3SymbolCircle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0), context.arc(0, 0, r, 0, tau);\n }\n}, d3SymbolCross = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r), context.lineTo(-r, -r), context.lineTo(-r, -3 * r), context.lineTo(r, -3 * r), context.lineTo(r, -r), context.lineTo(3 * r, -r), context.lineTo(3 * r, r), context.lineTo(r, r), context.lineTo(r, 3 * r), context.lineTo(-r, 3 * r), context.lineTo(-r, r), context.lineTo(-3 * r, r), context.closePath();\n }\n};\nvar tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2;\nconst d3SymbolDiamond = {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2), x = y * tan30;\n context.moveTo(0, -y), context.lineTo(x, 0), context.lineTo(0, y), context.lineTo(-x, 0), context.closePath();\n }\n};\nvar ka = 0.8908130915292852, kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), kx = Math.sin(tau / 10) * kr, ky = -Math.cos(tau / 10) * kr;\nconst d3SymbolStar = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka), x = kx * r, y = ky * r;\n context.moveTo(0, -r), context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a2 = tau * i / 5, c2 = Math.cos(a2), s2 = Math.sin(a2);\n context.lineTo(s2 * r, -c2 * r), context.lineTo(c2 * x - s2 * y, s2 * x + c2 * y);\n }\n context.closePath();\n }\n}, d3SymbolSquare = {\n draw: function(context, size) {\n var w = Math.sqrt(size), x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\nvar sqrt3 = Math.sqrt(3);\nconst d3SymbolTriangle = {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2), context.lineTo(-sqrt3 * y, -y), context.lineTo(sqrt3 * y, -y), context.closePath();\n }\n};\nvar c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3;\nconst d3SymbolWye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1;\n context.moveTo(x0, y0), context.lineTo(x1, y1), context.lineTo(x2, y2), context.lineTo(c * x0 - s * y0, s * x0 + c * y0), context.lineTo(c * x1 - s * y1, s * x1 + c * y1), context.lineTo(c * x2 - s * y2, s * x2 + c * y2), context.lineTo(c * x0 + s * y0, c * y0 - s * x0), context.lineTo(c * x1 + s * y1, c * y1 - s * x1), context.lineTo(c * x2 + s * y2, c * y2 - s * x2), context.closePath();\n }\n};\nfunction d3Symbol() {\n var type = constant(d3SymbolCircle), size = constant(64), context = null;\n function symbol() {\n var buffer;\n if (context || (context = buffer = path()), type.apply(this, arguments).draw(context, +size.apply(this, arguments)), buffer) return context = null, buffer + \"\" || null;\n }\n return symbol.type = function(_) {\n return arguments.length ? (type = typeof _ == \"function\" ? _ : constant(_), symbol) : type;\n }, symbol.size = function(_) {\n return arguments.length ? (size = typeof _ == \"function\" ? _ : constant(+_), symbol) : size;\n }, symbol.context = function(_) {\n return arguments.length ? (context = _ ?? null, symbol) : context;\n }, symbol;\n}\nvar _typeof = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(obj) {\n return typeof obj;\n} : function(obj) {\n return obj && typeof Symbol == \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n}, d3_identity = function(d) {\n return d;\n}, d3_reverse = function(arr) {\n for (var mirror = [], i = 0, l = arr.length; i < l; i++)\n mirror[i] = arr[l - i - 1];\n return mirror;\n}, d3_textWrapping = function(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/\\s+/).reverse(), word, line = [], lineHeight = 1.2;\n text2.attr(\"y\");\n for (var dy = parseFloat(text2.attr(\"dy\")) || 0, tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"dy\", dy + \"em\"); word = words.pop(); )\n line.push(word), tspan.text(line.join(\" \")), tspan.node().getComputedTextLength() > width && line.length > 1 && (line.pop(), tspan.text(line.join(\" \")), line = [word], tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"dy\", lineHeight + dy + \"em\").text(word));\n });\n}, d3_mergeLabels = function() {\n var gen = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], labels = arguments[1], domain = arguments[2], range = arguments[3], labelDelimiter = arguments[4];\n if ((typeof labels > \"u\" ? \"undefined\" : _typeof(labels)) === \"object\") {\n if (labels.length === 0) return gen;\n for (var i = labels.length; i < gen.length; i++)\n labels.push(gen[i]);\n return labels;\n } else if (typeof labels == \"function\") {\n for (var customLabels = [], genLength = gen.length, _i = 0; _i < genLength; _i++)\n customLabels.push(labels({\n i: _i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n }));\n return customLabels;\n }\n return gen;\n}, d3_linearLegend = function(scale, cells, labelFormat) {\n var data = [];\n if (cells.length > 1)\n data = cells;\n else\n for (var domain = scale.domain(), increment = (domain[domain.length - 1] - domain[0]) / (cells - 1), i = 0; i < cells; i++)\n data.push(domain[0] + i * increment);\n var labels = data.map(labelFormat);\n return {\n data,\n labels,\n feature: function(d) {\n return scale(d);\n }\n };\n}, d3_quantLegend = function(scale, labelFormat, labelDelimiter) {\n var labels = scale.range().map(function(d) {\n var invert = scale.invertExtent(d);\n return labelFormat(invert[0]) + \" \" + labelDelimiter + \" \" + labelFormat(invert[1]);\n });\n return {\n data: scale.range(),\n labels,\n feature: d3_identity\n };\n}, d3_ordinalLegend = function(scale) {\n return {\n data: scale.domain(),\n labels: scale.domain(),\n feature: function(d) {\n return scale(d);\n }\n };\n}, d3_cellOver = function(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellover\", obj, d);\n}, d3_cellOut = function(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellout\", obj, d);\n}, d3_cellClick = function(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellclick\", obj, d);\n}, helper = {\n d3_drawShapes: function(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path2) {\n shape === \"rect\" ? shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth) : shape === \"circle\" ? shapes.attr(\"r\", shapeRadius) : shape === \"line\" ? shapes.attr(\"x1\", 0).attr(\"x2\", shapeWidth).attr(\"y1\", 0).attr(\"y2\", 0) : shape === \"path\" && shapes.attr(\"d\", path2);\n },\n d3_addText: function(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\");\n var text = svg.selectAll(\"g.\" + classPrefix + \"cell text.\" + classPrefix + \"label\").data(labels).text(d3_identity);\n return labelWidth && svg.selectAll(\"g.\" + classPrefix + \"cell text.\" + classPrefix + \"label\").call(d3_textWrapping, labelWidth), text;\n },\n d3_calcType: function(scale, ascending, cells, labels, labelFormat, labelDelimiter) {\n var type = scale.invertExtent ? d3_quantLegend(scale, labelFormat, labelDelimiter) : scale.ticks ? d3_linearLegend(scale, cells, labelFormat) : d3_ordinalLegend(scale), range = scale.range && scale.range() || scale.domain();\n return type.labels = d3_mergeLabels(type.labels, labels, scale.domain(), range, labelDelimiter), ascending && (type.labels = d3_reverse(type.labels), type.data = d3_reverse(type.data)), type;\n },\n d3_filterCells: function(type, cellFilter) {\n var filterCells = type.data.map(function(d, i) {\n return { data: d, label: type.labels[i] };\n }).filter(cellFilter), dataValues = filterCells.map(function(d) {\n return d.data;\n }), labelValues = filterCells.map(function(d) {\n return d.label;\n });\n return type.data = type.data.filter(function(d) {\n return dataValues.indexOf(d) !== -1;\n }), type.labels = type.labels.filter(function(d) {\n return labelValues.indexOf(d) !== -1;\n }), type;\n },\n d3_placement: function(orient, cell, cellTrans, text, textTrans, labelAlign) {\n cell.attr(\"transform\", cellTrans), text.attr(\"transform\", textTrans), orient === \"horizontal\" && text.style(\"text-anchor\", labelAlign);\n },\n d3_addEvents: function(cells, dispatcher) {\n cells.on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this);\n }).on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this);\n }).on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this);\n });\n },\n d3_title: function(svg, title, classPrefix, titleWidth) {\n if (title !== \"\") {\n var titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\");\n titleText.data([title]).enter().append(\"text\").attr(\"class\", classPrefix + \"legendTitle\"), svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title), titleWidth && svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").call(d3_textWrapping, titleWidth);\n var cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\"), yOffset = svg.select(\".\" + classPrefix + \"legendTitle\").nodes().map(function(d) {\n return d.getBBox().height;\n })[0], xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x;\n })[0];\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\");\n }\n },\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n d3_defaultFormatSpecifier: \".01f\",\n d3_defaultDelimiter: \"to\"\n};\nfunction color() {\n var scale = scaleLinear(), shape = \"rect\", shapeWidth = 15, shapeHeight = 15, shapeRadius = 10, shapePadding = 2, cells = [5], cellFilter = void 0, labels = [], classPrefix = \"\", useClass = !1, title = \"\", locale = helper.d3_defaultLocale, specifier = helper.d3_defaultFormatSpecifier, labelOffset = 10, labelAlign = \"middle\", labelDelimiter = helper.d3_defaultDelimiter, labelWrap = void 0, orient = \"vertical\", ascending = !1, path2 = void 0, titleWidth = void 0, legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\");\n function legend(svg) {\n var type = helper.d3_calcType(scale, ascending, cells, labels, locale.format(specifier), labelDelimiter), legendG = svg.selectAll(\"g\").data([scale]);\n legendG.enter().append(\"g\").attr(\"class\", classPrefix + \"legendCells\"), cellFilter && helper.d3_filterCells(type, cellFilter);\n var cell = svg.select(\".\" + classPrefix + \"legendCells\").selectAll(\".\" + classPrefix + \"cell\").data(type.data), cellEnter = cell.enter().append(\"g\").attr(\"class\", classPrefix + \"cell\");\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\");\n var shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\").data(type.data);\n helper.d3_addEvents(cellEnter, legendDispatcher), cell.exit().transition().style(\"opacity\", 0).remove(), shapes.exit().transition().style(\"opacity\", 0).remove(), shapes = shapes.merge(shapes), helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path2);\n var text = helper.d3_addText(svg, cellEnter, type.labels, classPrefix, labelWrap);\n cell = cellEnter.merge(cell);\n var textSize = text.nodes().map(function(d) {\n return d.getBBox();\n }), shapeSize = shapes.nodes().map(function(d) {\n return d.getBBox();\n });\n useClass ? shapes.attr(\"class\", function(d) {\n return classPrefix + \"swatch \" + type.feature(d);\n }) : shape == \"line\" ? shapes.style(\"stroke\", type.feature) : shapes.style(\"fill\", type.feature);\n var cellTrans = void 0, textTrans = void 0, textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1;\n orient === \"vertical\" ? function() {\n var cellSize = textSize.map(function(d, i) {\n return Math.max(d.height, shapeSize[i].height);\n });\n cellTrans = function(d, i) {\n var height = sum(cellSize.slice(0, i));\n return \"translate(0, \" + (height + i * shapePadding) + \")\";\n }, textTrans = function(d, i) {\n return \"translate( \" + (shapeSize[i].width + shapeSize[i].x + labelOffset) + \", \" + (shapeSize[i].y + shapeSize[i].height / 2 + 5) + \")\";\n };\n }() : orient === \"horizontal\" && (cellTrans = function(d, i) {\n return \"translate(\" + i * (shapeSize[i].width + shapePadding) + \",0)\";\n }, textTrans = function(d, i) {\n return \"translate(\" + (shapeSize[i].width * textAlign + shapeSize[i].x) + `,\n ` + (shapeSize[i].height + shapeSize[i].y + labelOffset + 8) + \")\";\n }), helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign), helper.d3_title(svg, title, classPrefix, titleWidth), cell.transition().style(\"opacity\", 1);\n }\n return legend.scale = function(_) {\n return arguments.length ? (scale = _, legend) : scale;\n }, legend.cells = function(_) {\n return arguments.length ? ((_.length > 1 || _ >= 2) && (cells = _), legend) : cells;\n }, legend.cellFilter = function(_) {\n return arguments.length ? (cellFilter = _, legend) : cellFilter;\n }, legend.shape = function(_, d) {\n return arguments.length ? ((_ == \"rect\" || _ == \"circle\" || _ == \"line\" || _ == \"path\" && typeof d == \"string\") && (shape = _, path2 = d), legend) : shape;\n }, legend.shapeWidth = function(_) {\n return arguments.length ? (shapeWidth = +_, legend) : shapeWidth;\n }, legend.shapeHeight = function(_) {\n return arguments.length ? (shapeHeight = +_, legend) : shapeHeight;\n }, legend.shapeRadius = function(_) {\n return arguments.length ? (shapeRadius = +_, legend) : shapeRadius;\n }, legend.shapePadding = function(_) {\n return arguments.length ? (shapePadding = +_, legend) : shapePadding;\n }, legend.labels = function(_) {\n return arguments.length ? (labels = _, legend) : labels;\n }, legend.labelAlign = function(_) {\n return arguments.length ? ((_ == \"start\" || _ == \"end\" || _ == \"middle\") && (labelAlign = _), legend) : labelAlign;\n }, legend.locale = function(_) {\n return arguments.length ? (locale = formatLocale(_), legend) : locale;\n }, legend.labelFormat = function(_) {\n return arguments.length ? (specifier = formatSpecifier(_), legend) : legend.locale().format(specifier);\n }, legend.labelOffset = function(_) {\n return arguments.length ? (labelOffset = +_, legend) : labelOffset;\n }, legend.labelDelimiter = function(_) {\n return arguments.length ? (labelDelimiter = _, legend) : labelDelimiter;\n }, legend.labelWrap = function(_) {\n return arguments.length ? (labelWrap = _, legend) : labelWrap;\n }, legend.useClass = function(_) {\n return arguments.length ? ((_ === !0 || _ === !1) && (useClass = _), legend) : useClass;\n }, legend.orient = function(_) {\n return arguments.length ? (_ = _.toLowerCase(), (_ == \"horizontal\" || _ == \"vertical\") && (orient = _), legend) : orient;\n }, legend.ascending = function(_) {\n return arguments.length ? (ascending = !!_, legend) : ascending;\n }, legend.classPrefix = function(_) {\n return arguments.length ? (classPrefix = _, legend) : classPrefix;\n }, legend.title = function(_) {\n return arguments.length ? (title = _, legend) : title;\n }, legend.titleWidth = function(_) {\n return arguments.length ? (titleWidth = _, legend) : titleWidth;\n }, legend.textWrap = function(_) {\n return arguments.length ? (textWrap = _, legend) : textWrap;\n }, legend.on = function() {\n var value = legendDispatcher.on.apply(legendDispatcher, arguments);\n return value === legendDispatcher ? legend : value;\n }, legend;\n}\nclass Legend extends SVGWidget {\n constructor(owner) {\n super();\n __publicField(this, \"_owner\");\n __publicField(this, \"_targetWidget\");\n __publicField(this, \"_targetWidgetMonitor\");\n __publicField(this, \"_legendOrdinal\");\n __publicField(this, \"_disabled\", []);\n __publicField(this, \"_symbolTypeMap\", {\n circle: d3SymbolCircle,\n cross: d3SymbolCross,\n diamond: d3SymbolDiamond,\n square: d3SymbolSquare,\n star: d3SymbolStar,\n triangle: d3SymbolTriangle,\n wye: d3SymbolWye\n });\n __publicField(this, \"_g\");\n __publicField(this, \"_containerSize\");\n this._owner = owner, this._drawStartPos = \"origin\";\n const context = this;\n this._legendOrdinal = color().shape(\"path\", d3Symbol().type(d3SymbolCircle).size(150)()).shapePadding(10).shapeRadius(10).on(\"cellclick\", function(d) {\n context.onClick(d, this);\n }).on(\"cellover\", (d) => {\n context.onOver(d, this);\n }).on(\"cellout\", (d) => {\n context.onOut(d, this);\n });\n }\n isDisabled(d) {\n return typeof d > \"u\" ? !1 : typeof d == \"string\" ? d.indexOf(\"__\") === 0 || this._disabled.indexOf(d) >= 0 : d instanceof Database.Field ? d.id().indexOf(\"__\") === 0 || this._disabled.indexOf(d.id()) >= 0 : this._disabled.indexOf(d) >= 0;\n }\n filteredFields() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.fields();\n case \"ND\":\n return this.fields().filter((d) => !this.isDisabled(d));\n }\n return this.fields();\n }\n filteredColumns() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.columns();\n case \"ND\":\n return this.columns().filter((d) => !this.isDisabled(d));\n }\n return this.columns();\n }\n filteredData() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.data().filter((row) => !this.isDisabled(row[0]));\n case \"ND\":\n const disabledCols = {};\n let anyDisabled = !1;\n return this.columns().forEach((col, idx) => {\n const disabled = this.isDisabled(col);\n disabledCols[idx] = disabled, disabled && (anyDisabled = !0);\n }), anyDisabled ? this.data().map((row) => row.filter((cell, idx) => !disabledCols[idx])) : this.data();\n }\n return this.data();\n }\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n targetWidget(_) {\n if (!arguments.length) return this._targetWidget;\n if (this._targetWidget = _, this._targetWidgetMonitor && (this._targetWidgetMonitor.remove(), delete this._targetWidgetMonitor), this._targetWidget) {\n const context = this;\n this._targetWidgetMonitor = this._targetWidget.monitor(function(key, newProp, oldProp, source) {\n switch (key) {\n case \"chart\":\n case \"columns\":\n case \"data\":\n case \"paletteID\":\n context.lazyRender();\n break;\n }\n });\n }\n return this;\n }\n getWidget() {\n if (this._targetWidget)\n switch (this._targetWidget.classID()) {\n case \"composite_MultiChart\":\n return this._targetWidget.chart();\n }\n return this._targetWidget;\n }\n getPalette() {\n const widget = this.getWidget();\n if (widget && widget._palette)\n switch (widget._palette.type()) {\n case \"ordinal\":\n return Palette.ordinal(widget._palette.id());\n case \"rainbow\":\n return Palette.rainbow(widget._palette.id());\n }\n return Palette.ordinal(\"default\");\n }\n getPaletteType() {\n return this.getPalette().type();\n }\n fillColorFunc() {\n const widget = this.getWidget();\n if (widget && widget.fillColor)\n return widget._palette && widget.paletteID && widget._palette.name !== widget.paletteID() && (widget._palette = widget._palette.switch(widget.paletteID())), (row, col, sel) => widget.fillColor(row, col, sel);\n const palette = Palette.ordinal(widget && widget.paletteID && widget.paletteID() || \"default\");\n return (row, col, sel) => palette(col);\n }\n fillColor(row, col, sel) {\n return this.fillColorFunc()(row, col, sel);\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._g = element.append(\"g\").attr(\"class\", \"legendOrdinal\");\n }\n calcMetaData() {\n let dataArr = [], total = 0, maxLabelWidth = 0;\n const colLength = this.columns().length;\n if (this._targetWidget) {\n const columns = this.columns();\n switch (this.getPaletteType()) {\n case \"ordinal\":\n const fillColor = this.fillColorFunc();\n let val = 0;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this.data().map(function(n, i) {\n val = this.data()[i].slice(1, colLength).reduce((acc, n2) => acc + n2, 0);\n const disabled = this.isDisabled(n[0]);\n disabled || (total += val);\n const label = n[0] + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\"), textSize = this.textSize(label);\n return maxLabelWidth < textSize.width && (maxLabelWidth = textSize.width), [fillColor(n, n[0], !1), n[0], label];\n }, this);\n break;\n case \"ND\":\n dataArr = this.columns().filter((col) => col.indexOf(\"__\") !== 0).filter(function(n, i) {\n return i > 0;\n }).map(function(n, i) {\n val = this.data().reduce((acc, n2) => acc + n2[i + 1], 0);\n const disabled = this.isDisabled(columns[i + 1]), label = n + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n disabled || (total += val);\n const textSize = this.textSize(label);\n return maxLabelWidth < textSize.width && (maxLabelWidth = textSize.width), [fillColor(void 0, n, !1), n, label];\n }, this);\n break;\n default:\n dataArr = this.columns().map(function(n) {\n return [fillColor(void 0, n, !1), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const palette = this.getPalette(), format$1 = format(this.rainbowFormat()), widget = this.getWidget(), steps = this.rainbowBins(), weightMin = widget._dataMinWeight, weightMax = widget._dataMaxWeight, stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([palette(weightMin, weightMin, weightMax), format$1(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n let mid = stepWeightDiff * x;\n Math.floor(mid) > parseInt(dataArr[0][1]) && (mid = Math.floor(mid)), dataArr.push([palette(mid, weightMin, weightMax), format$1(mid)]);\n }\n dataArr.push([palette(weightMax, weightMin, weightMax), format$1(weightMax)]);\n break;\n }\n }\n return {\n dataArr,\n total,\n maxLabelWidth\n };\n }\n update(domNode, element) {\n super.update(domNode, element);\n const { dataArr, maxLabelWidth, total } = this.calcMetaData(), radius = this.shapeRadius(), size = this.radiusToSymbolSize(radius), strokeWidth = 1;\n let shapePadding = this.itemPadding();\n this.orientation() === \"horizontal\" && (shapePadding += maxLabelWidth - radius * 2);\n const ordinal = scaleOrdinal().domain(dataArr.map((row) => row[1])).range(dataArr.map((row) => row[0]));\n this._legendOrdinal.shape(\"path\", d3Symbol().type(this._symbolTypeMap[this.symbolType()]).size(size)()).orient(this.orientation()).title(this.title()).labelWrap(this.labelMaxWidth()).labelAlign(this.labelAlign()).shapePadding(shapePadding).scale(ordinal).labels((d) => dataArr[d.i][2]), this._g.call(this._legendOrdinal), this.updateDisabled(element, dataArr);\n const legendCellsBbox = this._g.select(\".legendCells\").node().getBBox();\n let offsetX = Math.abs(legendCellsBbox.x), offsetY = Math.abs(legendCellsBbox.y) + strokeWidth;\n if (this.orientation() === \"horizontal\") {\n if (this.labelAlign() === \"start\" ? offsetX += strokeWidth : this.labelAlign() === \"end\" && (offsetX -= strokeWidth), this.width() > legendCellsBbox.width) {\n const extraWidth = this.width() - legendCellsBbox.width;\n offsetX += extraWidth / 2;\n }\n } else if (this.orientation() === \"vertical\" && (offsetX += strokeWidth, this._containerSize.height > legendCellsBbox.height)) {\n const extraHeight = this.height() - legendCellsBbox.height;\n offsetY += extraHeight / 2;\n }\n this._g.attr(\"transform\", `translate(${offsetX}, ${offsetY})`), this.pos({\n x: 0,\n y: 0\n }), this._legendOrdinal.labelOffset(this.itemPadding());\n const legendTotal = this._g.selectAll(\".legendTotal\").data(dataArr.length && this.showLegendTotal() ? [total] : []), totalText = `Total: ${total}`, totalOffsetX = -offsetX, totalOffsetY = legendCellsBbox.height + this.itemPadding() + strokeWidth;\n this.enableOverflowScroll(!1), this.enableOverflow(!0), legendTotal.enter().append(\"text\").classed(\"legendTotal\", !0).merge(legendTotal).attr(\"transform\", `translate(${totalOffsetX}, ${totalOffsetY})`).text(totalText), legendTotal.exit().remove();\n }\n updateDisabled(element, dataArr) {\n element.style(\"cursor\", \"pointer\").selectAll(\"path.swatch\").filter((d, i) => i < dataArr.length).style(\"stroke\", (d, i) => dataArr[i][0]).style(\n \"fill\",\n (d, i) => this._disabled.indexOf(d) < 0 ? dataArr[i][0] : \"white\"\n );\n }\n postUpdate(domNode, element) {\n let w;\n this._boundingBox && (w = this._boundingBox.width, this._boundingBox.width = this._size.width), super.postUpdate(domNode, element), w !== void 0 && (this._boundingBox.width = w), this._parentRelativeDiv.style(\"overflow\", \"hidden\");\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n radiusToSymbolSize(radius) {\n const circleSize = Math.pow(radius, 2) * Math.PI;\n switch (this.symbolType()) {\n case \"star\":\n return circleSize * 0.45;\n case \"triangle\":\n return circleSize * 0.65;\n case \"cross\":\n case \"diamond\":\n case \"wye\":\n return circleSize * 0.75;\n case \"circle\":\n return circleSize;\n case \"square\":\n return circleSize * 1.3;\n }\n }\n onClick(d, domNode) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n const disabledIdx = this._disabled.indexOf(d);\n disabledIdx < 0 ? this._disabled.push(d) : this._disabled.splice(disabledIdx, 1), this._owner.refreshColumns(), this._owner.refreshData(), this._owner.render();\n break;\n }\n break;\n }\n }\n onOver(d, domNode) {\n if (instanceOfIHighlight(this._owner))\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n this._disabled.indexOf(d) < 0 && this._owner.highlightColumn(d);\n break;\n }\n break;\n }\n }\n onOut(d, domNode) {\n if (instanceOfIHighlight(this._owner))\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n this._owner.highlightColumn();\n break;\n }\n break;\n }\n }\n onDblClick(rowData, rowIdx) {\n }\n onMouseOver(rowData, rowIdx) {\n }\n resize(_size) {\n let retVal;\n if (this.fitToContent()) {\n this._containerSize = _size;\n const bbox = this.getBBox();\n _size.width > bbox.width && (bbox.width = _size.width), _size.height > bbox.height && (bbox.height = _size.height), retVal = super.resize.apply(this, [{ ...bbox }]);\n } else\n retVal = super.resize.apply(this, arguments);\n return retVal;\n }\n}\nLegend.prototype._class += \" layout_Legend\";\nLegend.prototype.publish(\"title\", \"\", \"string\", \"Title\");\nLegend.prototype.publish(\"symbolType\", \"circle\", \"set\", \"Shape of each legend item\", [\"circle\", \"cross\", \"diamond\", \"square\", \"star\", \"triangle\", \"wye\"]);\nLegend.prototype.publish(\"labelMaxWidth\", null, \"number\", \"Max Label Width (pixels)\", null, { optional: !0 });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"graph\", \"any\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"rainbowFormat\", \",\", \"string\", \"Rainbow number formatting\", null, { tags: [\"Private\"], optional: !0, disable: (w) => !w.isRainbow() });\nLegend.prototype.publish(\"rainbowBins\", 8, \"number\", \"Number of rainbow bins\", null, { tags: [\"Private\"], disable: (w) => !w.isRainbow() });\nLegend.prototype.publish(\"showSeriesTotal\", !1, \"boolean\", \"Show value next to series\");\nLegend.prototype.publish(\"showLegendTotal\", !1, \"boolean\", \"Show a total of the series values under the legend\", null);\nLegend.prototype.publish(\"itemPadding\", 8, \"number\", \"Padding between legend items (pixels)\");\nLegend.prototype.publish(\"shapeRadius\", 7, \"number\", \"Radius of legend shape (pixels)\");\nLegend.prototype.publish(\"fitToContent\", !0, \"boolean\", \"If true, resize will simply reapply the bounding box dimensions\");\nLegend.prototype.publish(\"labelAlign\", \"start\", \"set\", \"Horizontal alignment of legend item label (for horizontal orientation only)\", [\"start\", \"middle\", \"end\"], { optional: !0, disable: (w) => w.orientation() === \"vertical\" });\nclass Modal extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_widget\");\n __publicField(this, \"_relativeTarget\");\n __publicField(this, \"_fade\");\n __publicField(this, \"_modal\");\n __publicField(this, \"_modalHeader\");\n __publicField(this, \"_modalBody\");\n __publicField(this, \"_modalHeaderAnnotations\");\n __publicField(this, \"_modalHeaderCloseButton\");\n __publicField(this, \"_close\");\n this._tag = \"div\";\n }\n closeModal() {\n this.visible(!1);\n }\n getRelativeTarget() {\n let relativeTarget;\n return this.relativeTargetId() && (relativeTarget = document.getElementById(this.relativeTargetId()), relativeTarget) ? relativeTarget : !relativeTarget && (relativeTarget = this.locateAncestor(\"layout_Grid\"), relativeTarget && relativeTarget.element) ? relativeTarget.element().node() : document.body;\n }\n setModalSize() {\n this.fixedHeight() !== null && this.fixedWidth() !== null ? this._modal.style(\"height\", this.fixedHeight()).style(\"width\", this.fixedWidth()).style(\"min-height\", null).style(\"min-width\", null).style(\"max-height\", null).style(\"max-width\", null) : (this.minHeight() || this.minWidth()) && this._modal.style(\"min-height\", this.minHeight()).style(\"min-width\", this.minWidth()).style(\"max-height\", this.maxHeight()).style(\"max-width\", this.maxWidth());\n const modalRect = this._modal.node().getBoundingClientRect(), headerRect = this._modalHeader.node().getBoundingClientRect();\n return this._modalBody.style(\"height\", modalRect.height - headerRect.height + \"px\").style(\"width\", modalRect.width), modalRect;\n }\n setFadePosition(rect) {\n this._fade.style(\"top\", rect.top + \"px\").style(\"left\", rect.left + \"px\").style(\"width\", rect.width + \"px\").style(\"height\", rect.height + \"px\");\n }\n setModalPosition(rect) {\n const modalRect = this.setModalSize();\n if (this.fixedTop() !== null && this.fixedLeft() !== null)\n this._modal.style(\"top\", `calc(${this.fixedTop()} + ${rect.top}px)`).style(\"left\", `calc(${this.fixedLeft()} + ${rect.left}px)`);\n else if (this.fixedHeight() !== null && this.fixedWidth() !== null)\n this._modal.style(\"top\", rect.top + rect.height / 2 - modalRect.height / 2 + \"px\").style(\"left\", rect.left + rect.width / 2 - modalRect.width / 2 + \"px\");\n else if (this.minHeight() || this.minWidth()) {\n const contentRect = this._modal.node().getBoundingClientRect();\n this._modal.style(\"top\", rect.top + rect.height / 2 - contentRect.height / 2 + \"px\").style(\"left\", rect.left + rect.width / 2 - contentRect.width / 2 + \"px\");\n }\n }\n resize(size) {\n return super.resize(), this._modal && this.setModalSize(), this;\n }\n resizeBodySync(width, height) {\n const headerRect = this._modalHeader.node().getBoundingClientRect();\n return this._modal.style(\"width\", width + \"px\").style(\"height\", height + headerRect.height + \"px\").style(\"min-width\", width + \"px\").style(\"min-height\", height + headerRect.height + \"px\"), this._modalHeader.style(\"width\", width + \"px\"), this._modalBody.style(\"width\", width + \"px\").style(\"height\", height + \"px\"), this.minWidth(width + \"px\").minHeight(height + headerRect.height + \"px\").resize({\n height: height + headerRect.height,\n width\n });\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._fade = element.append(\"div\").classed(\"layout_Modal-fade\", !0).classed(\"layout_Modal-fadeClickable\", this.enableClickFadeToClose()).classed(\"layout_Modal-fade-hidden\", !this.showFade());\n const header_h = this.titleFontSize() * 2;\n this._modal = element.append(\"div\").classed(\"layout_Modal-content\", !0), this._modalHeader = this._modal.append(\"div\").classed(\"layout_Modal-header\", !0).style(\"color\", this.titleFontColor()).style(\"font-size\", this.titleFontSize() + \"px\").style(\"height\", header_h + \"px\"), this._modalBody = this._modal.append(\"div\").classed(\"layout_Modal-body\", !0).style(\"height\", `calc( 100% - ${header_h}px )`).style(\"overflow-x\", this.overflowX()).style(\"overflow-y\", this.overflowY()), this._modalHeader.append(\"div\").classed(\"layout_Modal-title\", !0).style(\"line-height\", this.titleFontSize() + \"px\").style(\"top\", this.titleFontSize() / 2 + \"px\").style(\"left\", this.titleFontSize() / 2 + \"px\").text(this.formattedTitle()), this._modalHeaderAnnotations = this._modalHeader.append(\"div\").classed(\"layout_Modal-annotations\", !0), this._modalHeaderCloseButton = this._modalHeaderAnnotations.append(\"div\").classed(\"layout_Modal-closeButton\", !0).html('<i class=\"fa fa-close\"></i>'), this._modalHeaderAnnotations.style(\"line-height\", this.titleFontSize() + \"px\").style(\"right\", this.titleFontSize() / 2 + \"px\").style(\"top\", this.titleFontSize() / 2 + \"px\"), this._modalHeaderCloseButton.on(\"click\", () => {\n this.closeModal();\n }), this._fade.on(\"click\", (n) => {\n this.enableClickFadeToClose() && this.closeModal();\n });\n }\n update(domNode, element) {\n super.update(domNode, element), element.style(\"display\", this.show() ? null : \"none\"), this._fade.classed(\"layout_Modal-fade-hidden\", !this.showFade()), this._relativeTarget = this.getRelativeTarget(), this.setModalSize();\n const rect = this._relativeTarget.getBoundingClientRect();\n this.setFadePosition(rect), this.setModalPosition(rect), this.show() ? (this._widget.target() || this._widget.target(this._modalBody.node()), this._widget.resize().render()) : this._widget.target(null).render();\n }\n exit(domNode, element) {\n this._widget && this._widget.target(null), super.exit(domNode, element);\n }\n formattedTitle() {\n const title = this.title_exists() ? this.title().trim() : \"\";\n return title.length > 0 && title.slice(0, 1) === \"(\" && title.slice(-1) === \")\" ? title.slice(1, -1) : this.title();\n }\n}\nModal.prototype._class += \" layout_Modal\";\nModal.prototype.publish(\"title\", null, \"string\", \"title\");\nModal.prototype.publish(\"widget\", null, \"widget\", \"widget\");\nModal.prototype.publish(\"titleFontSize\", 18, \"number\", \"titleFontSize (in pixels)\");\nModal.prototype.publish(\"titleFontColor\", \"#ffffff\", \"html-color\", \"titleFontColor\");\nModal.prototype.publish(\"relativeTargetId\", null, \"string\", \"relativeTargetId\");\nModal.prototype.publish(\"show\", !0, \"boolean\", \"show\");\nModal.prototype.publish(\"showFade\", !0, \"boolean\", \"showFade\");\nModal.prototype.publish(\"enableClickFadeToClose\", !0, \"boolean\", \"enableClickFadeToClose\");\nModal.prototype.publish(\"minWidth\", \"400px\", \"string\", \"minWidth\");\nModal.prototype.publish(\"minHeight\", \"400px\", \"string\", \"minHeight\");\nModal.prototype.publish(\"maxWidth\", \"800px\", \"string\", \"maxWidth\");\nModal.prototype.publish(\"maxHeight\", \"800px\", \"string\", \"maxHeight\");\nModal.prototype.publish(\"fixedWidth\", null, \"string\", \"fixedWidth\");\nModal.prototype.publish(\"fixedHeight\", null, \"string\", \"fixedHeight\");\nModal.prototype.publish(\"fixedTop\", null, \"string\", \"fixedTop\");\nModal.prototype.publish(\"fixedLeft\", null, \"string\", \"fixedLeft\");\nModal.prototype.publish(\"overflowX\", \"hidden\", \"string\", \"overflowX\");\nModal.prototype.publish(\"overflowY\", \"scroll\", \"string\", \"overflowY\");\nclass ChartPanel extends Border2 {\n constructor() {\n super();\n __publicField(this, \"_legend\", new Legend(this).enableOverflow(!0));\n __publicField(this, \"_progressBar\", new ProgressBar());\n __publicField(this, \"_autoScale\", !1);\n __publicField(this, \"_resolutions\", {\n tiny: { width: 100, height: 100 },\n small: { width: 300, height: 300 }\n });\n __publicField(this, \"_modal\", new Modal());\n __publicField(this, \"_highlight\");\n __publicField(this, \"_scale\");\n __publicField(this, \"_orig_size\");\n __publicField(this, \"_toggleInfo\", new ToggleButton().faChar(\"fa-info-circle\").tooltip(\".Description\").selected(!1).on(\"enabled\", () => this.description() !== \"\").on(\"click\", () => {\n if (this._toggleInfo.selected()) {\n this._modal.title(this.title()).widget(new Text().text(this.description())).show(!0).render();\n const origCloseFunc = this._modal._close;\n this._modal._close = () => {\n this._toggleInfo.selected(!1).render(), this._modal._close = origCloseFunc;\n };\n }\n }).on(\"mouseMove\", () => {\n }).on(\"mouseOut\", () => {\n }));\n __publicField(this, \"_toggleData\", new ToggleButton().faChar(\"fa-table\").tooltip(\"Data\").on(\"click\", () => {\n this.dataVisible(this._toggleData.selected()), this.render();\n }));\n __publicField(this, \"_buttonDownload\", new Button().faChar(\"fa-download\").tooltip(\"Download\").on(\"click\", () => {\n this.downloadCSV();\n }));\n __publicField(this, \"_buttonDownloadImage\", new Button().faChar(\"fa-image\").tooltip(\"Download Image\").on(\"click\", () => {\n this.downloadPNG();\n }));\n __publicField(this, \"_toggleLegend\", new ToggleButton().faChar(\"fa-list-ul\").tooltip(\"Legend\").selected(!1).on(\"click\", () => {\n const selected = this._toggleLegend.selected();\n this.legendPosition() === \"bottom\" ? this.showBottom(selected) : this.legendPosition() === \"right\" && this.showRight(selected), this.legendVisible(selected), this.render();\n }));\n __publicField(this, \"_spacer\", new Spacer());\n __publicField(this, \"_titleBar\", new TitleBar().buttons([this._toggleData, this._buttonDownload, this._buttonDownloadImage, this._spacer, this._toggleLegend]));\n __publicField(this, \"_carousel\", new Carousel());\n __publicField(this, \"_table\", new Table());\n __publicField(this, \"_widget\");\n __publicField(this, \"_hideLegendToggleList\", [\"dgrid_Table\"]);\n __publicField(this, \"_prevdataVisible\");\n __publicField(this, \"_prevlegendVisible\");\n __publicField(this, \"_prevLegendPosition\");\n __publicField(this, \"_prevChartDataFamily\");\n __publicField(this, \"_prevChart\");\n __publicField(this, \"_prevButtons\");\n this._tag = \"div\";\n }\n fields(_) {\n return arguments.length ? (super.fields(_), this._legend.fields(_), this.refreshFields(), this) : super.fields();\n }\n refreshFields() {\n return this._widget.fields(this._legend.filteredFields()), this._table.fields(this._legend.filteredFields()), this;\n }\n columns(_, asDefault) {\n return arguments.length ? (super.columns(_, asDefault), this._legend.columns(_, asDefault), this.refreshColumns(), this) : super.columns();\n }\n refreshColumns() {\n return this._widget.columns(this._legend.filteredColumns()), this._table.columns(this._legend.filteredColumns()), this;\n }\n data(_) {\n return arguments.length ? (super.data(_), this._legend.data(_), this.refreshData(), this) : super.data();\n }\n refreshData() {\n return this._widget.data(this._legend.filteredData()), this._table.data(this._legend.filteredData()), this;\n }\n highlight(_) {\n return arguments.length ? (this._highlight = _, this) : this._highlight;\n }\n startProgress() {\n this._progressBar.start();\n }\n finishProgress() {\n this._progressBar.finish();\n }\n buttons(_) {\n return arguments.length ? (this._titleBar.buttons(_), this) : this._titleBar.buttons();\n }\n downloadCSV() {\n const namePrefix = this.downloadTitle() ? this.downloadTitle() : this.title() ? this.title() : \"data\", nameSuffix = this.downloadTimestampSuffix() ? \"_\" + Utility.timestamp() : \"\";\n return Utility.downloadString(\"CSV\", this._widget.export(\"CSV\"), namePrefix + nameSuffix), this;\n }\n downloadPNG() {\n const widget = this.widget();\n return widget instanceof SVGWidget && (this.legendVisible() ? widget.downloadPNG(this.title(), void 0, this._legend) : widget.downloadPNG(this.title())), this;\n }\n highlightColumn(column) {\n if (column) {\n const cssTag = `series-${this.cssTag(column)}`;\n this._centerWA.element().selectAll(\".series\").each(function() {\n const element = select(this), highlight = element.classed(cssTag);\n element.classed(\"highlight\", highlight).classed(\"lowlight\", !highlight);\n });\n } else\n this._centerWA.element().selectAll(\".series\").classed(\"highlight\", !1).classed(\"lowlight\", !1);\n return this;\n }\n getResponsiveMode() {\n return this.enableAutoscaling() ? this._autoScale ? this.size().width <= this._resolutions.tiny.width || this.size().height <= this._resolutions.tiny.height ? \"tiny\" : this.size().width <= this._resolutions.small.width || this.size().height <= this._resolutions.small.height ? \"small\" : \"regular\" : \"regular\" : \"none\";\n }\n setOrigSize() {\n this._orig_size = JSON.parse(JSON.stringify(this.size()));\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._modal.target(this.target()).relativeTargetId(this.id()), this.top(this._titleBar), this.center(this._carousel), this._legend.targetWidget(this._widget).orientation(\"vertical\").title(\"\").visible(!1), this._progressBar.enter(domNode, element), this.setOrigSize();\n }\n preUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n }\n preUpdateSmall(element) {\n const scale_x = this._orig_size.width / this._resolutions.small.width, scale_y = this._orig_size.height / this._resolutions.small.height;\n this._scale = Math.min(scale_x, scale_y);\n const x_is_smaller = this._scale === scale_x;\n this.size({\n width: x_is_smaller ? this._resolutions.small.width : this._orig_size.width * (1 / this._scale),\n height: x_is_smaller ? this._orig_size.height * (1 / this._scale) : this._resolutions.small.height\n }), element.select(\"div.title-icon\").style(\"position\", \"static\"), element.selectAll(\"lhs\").style(\"display\", \"none\"), element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\"), element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\"), element.style(\"transform\", `scale(${this._scale})`);\n }\n preUpdateRegular(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\"), element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\"), element.select(\"div.title-icon\").style(\"position\", \"static\"), element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n }\n preUpdate(domNode, element) {\n switch (super.preUpdate(domNode, element), this._prevLegendPosition !== this.legendPosition() && (this._legend.target() !== null && this._legend.target(null), this._prevLegendPosition !== void 0 ? this.swap(this._prevLegendPosition, this.legendPosition()) : this[this.legendPosition()](this._legend), this.legendPosition() === \"right\" ? (this.rightOverflowX(\"hidden\"), this.rightOverflowY(\"auto\"), this.bottomOverflowX(\"visible\"), this.bottomOverflowY(\"visible\")) : (this.rightOverflowX(\"visible\"), this.rightOverflowY(\"visible\"), this.bottomOverflowX(\"auto\"), this.bottomOverflowY(\"hidden\")), this._prevLegendPosition = this.legendPosition()), this._prevdataVisible !== this.dataVisible() && (this._prevdataVisible = this.dataVisible(), this._toggleData.selected(this._prevdataVisible), this._legend.visible(this._prevlegendVisible && !this._prevdataVisible), this._carousel.active(this._prevdataVisible ? 1 : 0)), this._prevlegendVisible !== this.legendVisible() && (this._prevlegendVisible = this.legendVisible(), this._toggleLegend.selected(this._prevlegendVisible), this._legend.visible(this._prevlegendVisible && !this._prevdataVisible)), this._legend.orientation(this.legendPosition() === \"bottom\" ? \"horizontal\" : \"vertical\"), this.showLeft(!this.left()), this.getResponsiveMode()) {\n case \"tiny\":\n this.preUpdateTiny(element);\n break;\n case \"small\":\n this.preUpdateSmall(element);\n break;\n case \"regular\":\n this.preUpdateRegular(element);\n break;\n }\n const chart = this._widget.classID() === \"composite_MultiChart\" ? this._widget.chart() : this._widget;\n if (this._legend.dataFamily(chart._dataFamily || \"any\"), this._prevChartDataFamily !== this._legend.dataFamily())\n switch (this._prevChartDataFamily = this._legend.dataFamily(), this._prevChartDataFamily) {\n case \"any\":\n this._toggleLegend.selected(!1), this._legend.visible(!1);\n break;\n }\n if (element.style(\"box-shadow\", this.highlight() ? `inset 0px 0px 0px ${this.highlightSize()}px ${this.highlightColor()}` : \"none\"), this._hideLegendToggleList.indexOf(chart.classID()) !== -1 ? (this._spacer.visible(!1), this._toggleLegend.visible(!1)) : (this._spacer.visible(!0), this._toggleLegend.visible(!0)), this._prevChart !== chart) {\n this._prevChart = chart;\n const widgetIconBar = chart ? chart._titleBar || chart._iconBar : void 0;\n if (widgetIconBar && widgetIconBar instanceof IconBar) {\n this._prevButtons = this._prevButtons || [...this.buttons()];\n const buttons = [\n ...widgetIconBar.buttons(),\n new Spacer(),\n ...this._prevButtons\n ];\n widgetIconBar.buttons([]).render(), this.buttons(buttons);\n } else this._prevButtons && this.buttons(this._prevButtons);\n }\n const hiddenButtons = [];\n this.dataButtonVisible() || hiddenButtons.push(this._toggleData), this.downloadButtonVisible() || hiddenButtons.push(this._buttonDownload), this.downloadImageButtonVisible() || hiddenButtons.push(this._buttonDownloadImage), this.legendButtonVisible() || hiddenButtons.push(this._toggleLegend), this._buttonDownloadImage.enabled(this.widget() instanceof SVGWidget), this._titleBar.hiddenButtons(hiddenButtons).visible(this.titleVisible()), this.topOverlay(this.titleOverlay() || !this.titleVisible());\n }\n postUpdate(domNode, element) {\n switch (super.postUpdate(domNode, element), this.getResponsiveMode()) {\n case \"tiny\":\n this.postUpdateTiny(element);\n break;\n case \"small\":\n this.postUpdateSmall(element);\n break;\n case \"regular\":\n this.postUpdateRegular(element);\n break;\n }\n }\n postUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\"), element.selectAll(\"div.data-count\").style(\"visibility\", \"visible\").style(\"font-size\", this.titleIconFontSize() / 3 + \"px\").style(\"line-height\", this.titleIconFontSize() / 3 + \"px\").style(\"left\", this.titleIconFontSize() + \"px\").text(this.data().length), element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n const iconDiv = element.selectAll(\"div.title-icon\"), _node = iconDiv.node(), containerRect = element.node().parentElement.getBoundingClientRect();\n if (_node) {\n const rect = iconDiv.node().getBoundingClientRect(), icon_top = containerRect.height / 2;\n iconDiv.style(\"position\", \"absolute\").style(\"left\", `calc(50% - ${rect.width / 2}px)`).style(\"top\", `${icon_top - rect.height / 2}px`), element.selectAll(\"div.data-count\").style(\"position\", \"absolute\").style(\"left\", `calc(50% + ${rect.width / 2}px)`).style(\"top\", `${icon_top - rect.height / 2}px`);\n }\n }\n postUpdateSmall(element) {\n element.selectAll(\"lhs\").style(\"display\", \"none\"), element.selectAll(\"div.title-icon\").style(\"position\", \"static\"), element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\"), element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n const rect = element.node().getBoundingClientRect(), parentRect = element.node().parentElement.getBoundingClientRect();\n element.style(\"transform\", `translate(${parentRect.x - rect.x}px, ${parentRect.y - rect.y}px) scale(${this._scale})`);\n }\n postUpdateRegular(element) {\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\"), element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\"), element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n }\n exit(domNode, element) {\n this._progressBar.exit(domNode, element), this.right(null), this._legend.target(null), this.center(null), this._carousel.target(null), this.top(null), this._titleBar.target(null), this._modal.target(null), delete this._prevChart, delete this._prevButtons, delete this._prevChartDataFamily, delete this._prevPos, delete this._prevdataVisible, delete this._prevlegendVisible, super.exit(domNode, element);\n }\n // Event Handlers ---\n // Events ---\n click(row, column, selected) {\n }\n dblclick(row, column, selected) {\n }\n vertex_click(row, col, sel, more) {\n more && more.vertex;\n }\n vertex_dblclick(row, col, sel, more) {\n more && more.vertex;\n }\n edge_click(row, col, sel, more) {\n more && more.edge;\n }\n edge_dblclick(row, col, sel, more) {\n more && more.edge;\n }\n}\nChartPanel.prototype._class += \" layout_ChartPanel\";\nChartPanel.prototype.publishReset();\nChartPanel.prototype.publishProxy(\"title\", \"_titleBar\");\nChartPanel.prototype.publish(\"titleVisible\", !0, \"boolean\");\nChartPanel.prototype.publish(\"titleOverlay\", !1, \"boolean\");\nChartPanel.prototype.publishProxy(\"titleIcon\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"description\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFontSize\", \"_titleBar\");\nChartPanel.prototype.publish(\"dataVisible\", !1, \"boolean\", \"Show data table\");\nChartPanel.prototype.publish(\"dataButtonVisible\", !0, \"boolean\", \"Show data table button\");\nChartPanel.prototype.publish(\"downloadButtonVisible\", !0, \"boolean\", \"Show data download button\");\nChartPanel.prototype.publish(\"downloadImageButtonVisible\", !1, \"boolean\", \"Show image download button\");\nChartPanel.prototype.publish(\"downloadTitle\", \"\", \"string\", \"File name when downloaded\");\nChartPanel.prototype.publish(\"downloadTimestampSuffix\", !0, \"boolean\", \"Use timestamp as file name suffix\");\nChartPanel.prototype.publish(\"legendVisible\", !1, \"boolean\", \"Show legend\");\nChartPanel.prototype.publish(\"legendButtonVisible\", !0, \"boolean\", \"Show legend button\");\nChartPanel.prototype.publish(\"legendPosition\", \"right\", \"set\", \"Position of legend\", [\"right\", \"bottom\"]);\nChartPanel.prototype.publishProxy(\"legend_labelMaxWidth\", \"_legend\", \"labelMaxWidth\");\nChartPanel.prototype.publishProxy(\"legend_showSeriesTotal\", \"_legend\", \"showSeriesTotal\");\nChartPanel.prototype.publishProxy(\"legend_showLegendTotal\", \"_legend\", \"showLegendTotal\");\nChartPanel.prototype.publishProxy(\"legend_itemPadding\", \"_legend\", \"itemPadding\");\nChartPanel.prototype.publishProxy(\"legend_shapeRadius\", \"_legend\", \"shapeRadius\");\nChartPanel.prototype.publishProxy(\"legend_symbolType\", \"_legend\", \"symbolType\");\nChartPanel.prototype.publishProxy(\"legend_labelAlign\", \"_legend\", \"labelAlign\");\nChartPanel.prototype.publish(\"widget\", null, \"widget\", \"Widget\", void 0, { render: !1 });\nChartPanel.prototype.publish(\"enableAutoscaling\", !1, \"boolean\");\nChartPanel.prototype.publish(\"highlightSize\", 4, \"number\");\nChartPanel.prototype.publish(\"highlightColor\", \"#e67e22\", \"html-color\");\nChartPanel.prototype.publishProxy(\"progress_halfLife\", \"_progressBar\", \"halfLife\");\nChartPanel.prototype.publishProxy(\"progress_decay\", \"_progressBar\", \"decay\");\nChartPanel.prototype.publishProxy(\"progress_size\", \"_progressBar\", \"size\");\nChartPanel.prototype.publishProxy(\"progress_color\", \"_progressBar\", \"color\");\nChartPanel.prototype.publishProxy(\"progress_blurBar\", \"_progressBar\", \"blurBar\");\nChartPanel.prototype.publishProxy(\"progress_blurSize\", \"_progressBar\", \"blurSize\");\nChartPanel.prototype.publishProxy(\"progress_blurColor\", \"_progressBar\", \"blurColor\");\nChartPanel.prototype.publishProxy(\"progress_blurOpacity\", \"_progressBar\", \"blurOpacity\");\nChartPanel.prototype.widget = function(_) {\n if (!arguments.length) return this._widget;\n this._carousel.widgets([_, this._table]), this._widget = _, this._widget.fields(this._legend.filteredFields()).data(this._legend.filteredData());\n const context = this, tmpAny = this._widget;\n return tmpAny.click = function() {\n context.click.apply(context, arguments);\n }, tmpAny.dblclick = function() {\n context.dblclick.apply(context, arguments);\n }, tmpAny.vertex_click = function() {\n context.vertex_click.apply(context, arguments);\n }, tmpAny.vertex_dblclick = function() {\n context.vertex_dblclick.apply(context, arguments);\n }, tmpAny.edge_click = function() {\n context.edge_click.apply(context, arguments);\n }, tmpAny.edge_dblclick = function() {\n context.edge_dblclick.apply(context, arguments);\n }, this;\n};\nclass FlexGrid extends HTMLWidget {\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element), select(domNode.parentNode).style(\"height\", \"100%\").style(\"width\", \"100%\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this, cachedSizes = [];\n this.updateFlexParent(element);\n const listItems = element.selectAll(\".FlexGrid-list-item\").data(this.widgets(), (w) => w.id());\n listItems.enter().append(\"div\").classed(\"FlexGrid-list-item\", !0).each(function(w) {\n w.target(this);\n }).merge(listItems).style(\"min-height\", this.itemMinHeight() + \"px\").style(\"min-width\", this.itemMinWidth() + \"px\").style(\"flex-basis\", (n, i) => {\n const flexBasis = this.widgetsFlexBasis()[i];\n return typeof flexBasis < \"u\" ? flexBasis : this.flexBasis();\n }).style(\"flex-grow\", (n, i) => {\n const flexGrow = this.widgetsFlexGrow()[i];\n return typeof flexGrow < \"u\" ? flexGrow : this.flexGrow();\n }).style(\"border-width\", this.borderWidth() + \"px\").style(\"border-color\", this.itemBorderColor()).each(function() {\n this.firstChild.style.display = \"none\";\n }).each(function() {\n const rect = this.getBoundingClientRect();\n cachedSizes.push([\n rect.width,\n rect.height\n ]);\n }).each(function(w, i) {\n this.firstChild.style.display = \"block\", w.resize({\n width: cachedSizes[i][0] - 2 * context.borderWidth(),\n height: cachedSizes[i][1] - 2 * context.borderWidth()\n });\n }), listItems.exit().remove();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n updateFlexParent(element) {\n element.style(\"height\", \"100%\").style(\"flex-direction\", this.orientation() === \"horizontal\" ? \"row\" : \"column\").style(\"flex-wrap\", this.flexWrap()).style(\"align-items\", this.alignItems()).style(\"align-content\", this.alignContent()).style(\"overflow-x\", () => this.forceXScroll() || this.orientation() === \"horizontal\" && this.flexWrap() === \"nowrap\" && !this.disableScroll() ? \"scroll\" : \"hidden\").style(\"overflow-y\", () => this.forceYScroll() || this.orientation() === \"vertical\" && this.flexWrap() === \"nowrap\" && !this.disableScroll() ? \"scroll\" : \"hidden\");\n }\n}\nFlexGrid.prototype._class += \" layout_FlexGrid\";\nFlexGrid.prototype.publish(\"itemBorderColor\", \"transparent\", \"html-color\", \"Color of list item borders\");\nFlexGrid.prototype.publish(\"borderWidth\", 0, \"number\", \"Width of list item borders (pixels)\");\nFlexGrid.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Controls the flex-direction of the list items\", [\"horizontal\", \"vertical\"]);\nFlexGrid.prototype.publish(\"flexWrap\", \"wrap\", \"set\", \"Controls the line wrap when overflow occurs\", [\"nowrap\", \"wrap\", \"wrap-reverse\"]);\nFlexGrid.prototype.publish(\"disableScroll\", !1, \"boolean\", \"If false, scrollbar will show (when flexWrap is set to 'nowrap')\", null, { disable: (w) => w.flexWrap() !== \"nowrap\" });\nFlexGrid.prototype.publish(\"forceXScroll\", !1, \"boolean\", \"If true, horzontal scrollbar will show\");\nFlexGrid.prototype.publish(\"forceYScroll\", !1, \"boolean\", \"If true, vertical scrollbar will show\");\nFlexGrid.prototype.publish(\"itemMinHeight\", 64, \"number\", \"Minimum height of a list item (pixels)\");\nFlexGrid.prototype.publish(\"itemMinWidth\", 64, \"number\", \"Minimum width of a list item (pixels)\");\nFlexGrid.prototype.publish(\"alignItems\", \"stretch\", \"set\", \"Controls normal alignment of items\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\"]);\nFlexGrid.prototype.publish(\"alignContent\", \"stretch\", \"set\", \"Controls normal alignment of item rows\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"space-between\", \"space-around\"]);\nFlexGrid.prototype.publish(\"flexGrow\", 1, \"number\", \"Default flex-grow style for all list items\");\nFlexGrid.prototype.publish(\"flexBasis\", \"10%\", \"string\", \"Default flex-basis style for all list items\");\nFlexGrid.prototype.publish(\"widgetsFlexGrow\", [], \"array\", \"Array of flex-grow values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgetsFlexBasis\", [], \"array\", \"Array of flex-basis values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgets\", [], \"widgetArray\", \"Array of widgets to be rendered as list items\");\nvar commonjsGlobal = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x.default : x;\n}\nvar gridList$1 = { exports: {} };\n(function(module, exports) {\n (function(root, factory) {\n module.exports = factory();\n })(commonjsGlobal, function() {\n var GridList2 = function(items, options) {\n this._options = options;\n for (var k2 in this.defaults)\n this._options.hasOwnProperty(k2) || (this._options[k2] = this.defaults[k2]);\n this.items = items, this._adjustSizeOfItems(), this.generateGrid();\n };\n GridList2.cloneItems = function(items, _items) {\n var i, k2;\n for (_items === void 0 && (_items = []), i = 0; i < items.length; i++) {\n _items[i] || (_items[i] = {});\n for (k2 in items[i])\n _items[i][k2] = items[i][k2];\n }\n return _items;\n }, GridList2.prototype = {\n defaults: {\n lanes: 5,\n direction: \"horizontal\"\n },\n /**\n * Illustates grid as text-based table, using a number identifier for each\n * item. E.g.\n *\n * #| 0 1 2 3 4 5 6 7 8 9 10 11 12 13\n * --------------------------------------------\n * 0| 00 02 03 04 04 06 08 08 08 12 12 13 14 16\n * 1| 01 -- 03 05 05 07 09 10 11 11 -- 13 15 --\n *\n * Warn: Does not work if items don't have a width or height specified\n * besides their position in the grid.\n */\n toString: function() {\n var widthOfGrid = this.grid.length, output = `\n #|`, border = `\n --`, item, i, j;\n for (i = 0; i < widthOfGrid; i++)\n output += \" \" + this._padNumber(i, \" \"), border += \"---\";\n for (output += border, i = 0; i < this._options.lanes; i++)\n for (output += `\n` + this._padNumber(i, \" \") + \"|\", j = 0; j < widthOfGrid; j++)\n output += \" \", item = this.grid[j][i], output += item ? this._padNumber(this.items.indexOf(item), \"0\") : \"--\";\n return output += `\n`, output;\n },\n generateGrid: function() {\n var i;\n for (this._resetGrid(), i = 0; i < this.items.length; i++)\n this._markItemPositionToGrid(this.items[i]);\n },\n resizeGrid: function(lanes) {\n var currentColumn = 0;\n this._options.lanes = lanes, this._adjustSizeOfItems(), this._sortItemsByPosition(), this._resetGrid();\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i], position = this._getItemPosition(item);\n this._updateItemPosition(\n item,\n this.findPositionForItem(item, { x: currentColumn, y: 0 })\n ), currentColumn = Math.max(currentColumn, position.x);\n }\n this._pullItemsToLeft();\n },\n findPositionForItem: function(item, start, fixedRow) {\n var x, y, position;\n for (x = start.x; x < this.grid.length; x++)\n if (fixedRow !== void 0) {\n if (position = [x, fixedRow], this._itemFitsAtPosition(item, position))\n return position;\n } else\n for (y = start.y; y < this._options.lanes; y++)\n if (position = [x, y], this._itemFitsAtPosition(item, position))\n return position;\n var newCol = this.grid.length, newRow = 0;\n return fixedRow !== void 0 && this._itemFitsAtPosition(item, [newCol, fixedRow]) && (newRow = fixedRow), [newCol, newRow];\n },\n moveItemToPosition: function(item, newPosition) {\n var position = this._getItemPosition({\n x: newPosition[0],\n y: newPosition[1],\n w: item.w,\n h: item.h\n });\n this._updateItemPosition(item, [position.x, position.y]), this._resolveCollisions(item);\n },\n resizeItem: function(item, size) {\n var width = size.w || item.w, height = size.h || item.h;\n this._updateItemSize(item, width, height), this._resolveCollisions(item), this._pullItemsToLeft();\n },\n getChangedItems: function(initialItems, idAttribute) {\n for (var changedItems = [], i = 0; i < initialItems.length; i++) {\n var item = this._getItemByAttribute(\n idAttribute,\n initialItems[i][idAttribute]\n );\n (item.x !== initialItems[i].x || item.y !== initialItems[i].y || item.w !== initialItems[i].w || item.h !== initialItems[i].h) && changedItems.push(item);\n }\n return changedItems;\n },\n _sortItemsByPosition: function() {\n this.items.sort((function(item1, item2) {\n var position1 = this._getItemPosition(item1), position2 = this._getItemPosition(item2);\n return position1.x != position2.x ? position1.x - position2.x : position1.y != position2.y ? position1.y - position2.y : 0;\n }).bind(this));\n },\n _adjustSizeOfItems: function() {\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n item.autoSize === void 0 && (item.autoSize = item.w === 0 || item.h === 0), item.autoSize && (this._options.direction === \"horizontal\" ? item.h = this._options.lanes : item.w = this._options.lanes);\n }\n },\n _resetGrid: function() {\n this.grid = [];\n },\n _itemFitsAtPosition: function(item, newPosition) {\n var position = this._getItemPosition(item), x, y;\n if (newPosition[0] < 0 || newPosition[1] < 0 || newPosition[1] + position.h > this._options.lanes)\n return !1;\n for (x = newPosition[0]; x < newPosition[0] + position.w; x++) {\n var col = this.grid[x];\n if (col) {\n for (y = newPosition[1]; y < newPosition[1] + position.h; y++)\n if (col[y] && col[y] !== item)\n return !1;\n }\n }\n return !0;\n },\n _updateItemPosition: function(item, position) {\n item.x !== null && item.y !== null && this._deleteItemPositionFromGrid(item), this._setItemPosition(item, position), this._markItemPositionToGrid(item);\n },\n _updateItemSize: function(item, width, height) {\n item.x !== null && item.y !== null && this._deleteItemPositionFromGrid(item), item.w = width, item.h = height, this._markItemPositionToGrid(item);\n },\n _markItemPositionToGrid: function(item) {\n var position = this._getItemPosition(item), x, y;\n for (this._ensureColumns(position.x + position.w), x = position.x; x < position.x + position.w; x++)\n for (y = position.y; y < position.y + position.h; y++)\n this.grid[x][y] = item;\n },\n _deleteItemPositionFromGrid: function(item) {\n var position = this._getItemPosition(item), x, y;\n for (x = position.x; x < position.x + position.w; x++)\n if (this.grid[x])\n for (y = position.y; y < position.y + position.h; y++)\n this.grid[x][y] == item && (this.grid[x][y] = null);\n },\n _ensureColumns: function(N) {\n var i;\n for (i = 0; i < N; i++)\n this.grid[i] || this.grid.push(new GridCol(this._options.lanes));\n },\n _getItemsCollidingWithItem: function(item) {\n for (var collidingItems = [], i = 0; i < this.items.length; i++)\n item != this.items[i] && this._itemsAreColliding(item, this.items[i]) && collidingItems.push(i);\n return collidingItems;\n },\n _itemsAreColliding: function(item1, item2) {\n var position1 = this._getItemPosition(item1), position2 = this._getItemPosition(item2);\n return !(position2.x >= position1.x + position1.w || position2.x + position2.w <= position1.x || position2.y >= position1.y + position1.h || position2.y + position2.h <= position1.y);\n },\n _resolveCollisions: function(item) {\n this._tryToResolveCollisionsLocally(item) || this._pullItemsToLeft(item), this._pullItemsToLeft();\n },\n _tryToResolveCollisionsLocally: function(item) {\n var collidingItems = this._getItemsCollidingWithItem(item);\n if (!collidingItems.length)\n return !0;\n var _gridList = new GridList2([], this._options), leftOfItem, rightOfItem, aboveOfItem, belowOfItem;\n GridList2.cloneItems(this.items, _gridList.items), _gridList.generateGrid();\n for (var i = 0; i < collidingItems.length; i++) {\n var collidingItem = _gridList.items[collidingItems[i]], collidingPosition = this._getItemPosition(collidingItem), position = this._getItemPosition(item);\n if (leftOfItem = [position.x - collidingPosition.w, collidingPosition.y], rightOfItem = [position.x + position.w, collidingPosition.y], aboveOfItem = [collidingPosition.x, position.y - collidingPosition.h], belowOfItem = [collidingPosition.x, position.y + position.h], _gridList._itemFitsAtPosition(collidingItem, leftOfItem))\n _gridList._updateItemPosition(collidingItem, leftOfItem);\n else if (_gridList._itemFitsAtPosition(collidingItem, aboveOfItem))\n _gridList._updateItemPosition(collidingItem, aboveOfItem);\n else if (_gridList._itemFitsAtPosition(collidingItem, belowOfItem))\n _gridList._updateItemPosition(collidingItem, belowOfItem);\n else if (_gridList._itemFitsAtPosition(collidingItem, rightOfItem))\n _gridList._updateItemPosition(collidingItem, rightOfItem);\n else\n return !1;\n }\n return GridList2.cloneItems(_gridList.items, this.items), this.generateGrid(), !0;\n },\n _pullItemsToLeft: function(fixedItem) {\n if (this._sortItemsByPosition(), this._resetGrid(), fixedItem) {\n var fixedPosition = this._getItemPosition(fixedItem);\n this._updateItemPosition(fixedItem, [fixedPosition.x, fixedPosition.y]);\n }\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i], position = this._getItemPosition(item);\n if (!(fixedItem && item == fixedItem)) {\n var x = this._findLeftMostPositionForItem(item), newPosition = this.findPositionForItem(\n item,\n { x, y: 0 },\n position.y\n );\n this._updateItemPosition(item, newPosition);\n }\n }\n },\n _findLeftMostPositionForItem: function(item) {\n for (var tail = 0, position = this._getItemPosition(item), i = 0; i < this.grid.length; i++)\n for (var j = position.y; j < position.y + position.h; j++) {\n var otherItem = this.grid[i][j];\n if (otherItem) {\n var otherPosition = this._getItemPosition(otherItem);\n this.items.indexOf(otherItem) < this.items.indexOf(item) && (tail = otherPosition.x + otherPosition.w);\n }\n }\n return tail;\n },\n _getItemByAttribute: function(key, value) {\n for (var i = 0; i < this.items.length; i++)\n if (this.items[i][key] === value)\n return this.items[i];\n return null;\n },\n _padNumber: function(nr, prefix) {\n return nr >= 10 ? nr : prefix + nr;\n },\n _getItemPosition: function(item) {\n return this._options.direction === \"horizontal\" ? item : {\n x: item.y,\n y: item.x,\n w: item.h,\n h: item.w\n };\n },\n _setItemPosition: function(item, position) {\n this._options.direction === \"horizontal\" ? (item.x = position[0], item.y = position[1]) : (item.x = position[1], item.y = position[0]);\n }\n };\n var GridCol = function(lanes) {\n for (var i = 0; i < lanes; i++)\n this.push(null);\n };\n return GridCol.prototype = [], GridList2;\n });\n})(gridList$1);\nvar gridListExports = gridList$1.exports;\nconst gridList = /* @__PURE__ */ getDefaultExportFromCjs(gridListExports), _GridList = /* @__PURE__ */ _mergeNamespaces({\n __proto__: null,\n default: gridList\n}, [gridListExports]), GridList = _GridList && gridList || _GridList;\nclass Grid extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"divItems\");\n __publicField(this, \"gridList\");\n __publicField(this, \"items\");\n __publicField(this, \"itemsMap\");\n __publicField(this, \"origItems\");\n __publicField(this, \"cellWidth\");\n __publicField(this, \"cellHeight\");\n __publicField(this, \"dragItem\");\n __publicField(this, \"dragItemPos\");\n __publicField(this, \"_d3Drag\");\n __publicField(this, \"_d3DragResize\");\n __publicField(this, \"_selectionBag\");\n __publicField(this, \"_scrollBarWidth\");\n this._tag = \"div\", this._selectionBag = new Utility.Selection(this), this.content([]);\n }\n getDimensions() {\n const size = { width: 0, height: 0 };\n return this.content().forEach(function(cell) {\n size.width < cell.gridCol() + cell.gridColSpan() && (size.width = cell.gridCol() + cell.gridColSpan()), size.height < cell.gridRow() + cell.gridRowSpan() && (size.height = cell.gridRow() + cell.gridRowSpan());\n }, this), size;\n }\n clearContent(widget) {\n this.content(this.content().filter(function(contentWidget) {\n if (!widget)\n return contentWidget.target(null), !1;\n let w = contentWidget;\n for (; w; ) {\n if (widget === w)\n return contentWidget.target(null), !1;\n w = w.widget ? w.widget() : null;\n }\n return !0;\n }));\n }\n setContent(row, col, widget, title, rowSpan, colSpan) {\n if (rowSpan = rowSpan || 1, colSpan = colSpan || 1, title = title || \"\", this.content(this.content().filter(function(contentWidget) {\n return contentWidget.gridRow() === row && contentWidget.gridCol() === col ? (contentWidget.target(null), !1) : !0;\n })), widget) {\n const cell = new Cell().gridRow(row).gridCol(col).widget(widget).title(title).gridRowSpan(rowSpan).gridColSpan(colSpan);\n this.content().push(cell);\n }\n return this;\n }\n sortedContent() {\n return this.content().sort(function(l, r) {\n return l.gridRow() === r.gridRow() ? l.gridCol() - r.gridCol() : l.gridRow() - r.gridRow();\n });\n }\n getCell(row, col) {\n let retVal = null;\n return this.content().some(function(cell) {\n return row >= cell.gridRow() && row < cell.gridRow() + cell.gridRowSpan() && col >= cell.gridCol() && col < cell.gridCol() + cell.gridColSpan() ? (retVal = cell, !0) : !1;\n }), retVal;\n }\n getWidgetCell(id) {\n let retVal = null;\n return this.content().some(function(cell) {\n return cell.widget().id() === id ? (retVal = cell, !0) : !1;\n }), retVal;\n }\n getContent(id) {\n let retVal = null;\n return this.content().some(function(cell) {\n return cell.widget().id() === id ? (retVal = cell.widget(), !0) : !1;\n }), retVal;\n }\n cellToGridItem(cell) {\n return {\n x: cell.gridCol(),\n y: cell.gridRow(),\n w: cell.gridColSpan(),\n h: cell.gridRowSpan(),\n id: cell.id(),\n cell\n };\n }\n gridItemToCell(item) {\n item.cell.gridCol(item.x).gridRow(item.y).gridColSpan(item.w).gridRowSpan(item.h);\n }\n resetItemsPos() {\n this.origItems.forEach(function(origItem) {\n const item = this.itemsMap[origItem.id];\n item.x = origItem.x, item.y = origItem.y;\n }, this);\n }\n initGridList() {\n this.itemsMap = {}, this.items = this.content().map(function(cell) {\n const retVal = this.cellToGridItem(cell);\n return this.itemsMap[retVal.id] = retVal, retVal;\n }, this), this.origItems = this.content().map(this.cellToGridItem), this.gridList = new GridList(this.items, {\n direction: this.snapping(),\n lanes: this.snapping() === \"horizontal\" ? this.snappingRows() : this.snappingColumns()\n });\n }\n killGridList() {\n this.gridList = null, delete this.items, delete this.itemsMap;\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._scrollBarWidth = Platform.getScrollbarWidth();\n const context = this;\n this._d3Drag = drag().subject(function(_d) {\n const d = context.cellToGridItem(_d);\n return { x: d.x * context.cellWidth, y: d.y * context.cellHeight };\n }).on(\"start\", function(_d) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation(), context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\").attr(\"class\", \"dragging\").style(\"transform\", function() {\n return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight - context.gutter() + \"px\";\n }), context.selectionBagClick(_d);\n }).on(\"drag\", function(_d) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n event.x < 0 && (event.x = 0), event.x + d.w * context.cellWidth > context.snappingColumns() * context.cellWidth && (event.x = context.snappingColumns() * context.cellWidth - d.w * context.cellWidth), event.y < 0 && (event.y = 0), event.y + d.h * context.cellWidth > context.snappingRows() * context.cellWidth && (event.y = context.snappingRows() * context.cellWidth - d.h * context.cellWidth);\n const pos = [Math.max(0, Math.floor((event.x + context.cellWidth / 2) / context.cellWidth)), Math.max(0, Math.floor((event.y + context.cellHeight / 2) / context.cellHeight))];\n (d.x !== pos[0] || d.y !== pos[1]) && (context.snapping() !== \"none\" ? (context.resetItemsPos(), context.gridList.moveItemToPosition(d, pos)) : (d.x = pos[0], d.y = pos[1]), (_d.gridCol() !== d.x || _d.gridRow() !== d.y) && (context.items.forEach(context.gridItemToCell), context.updateGrid(!1, 100))), context.dragItem.style(\"transform\", function() {\n return \"translate(\" + event.x + \"px, \" + event.y + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight + \"px\";\n });\n }).on(\"end\", function() {\n context.designMode() && (d3Event().sourceEvent.stopPropagation(), context.dragItem.remove(), context.dragItem = null, context.killGridList());\n }), this._d3DragResize = drag().subject(function(_d) {\n const d = context.cellToGridItem(_d);\n return { x: (d.x + d.w - 1) * context.cellWidth, y: (d.y + d.h - 1) * context.cellHeight };\n }).on(\"start\", function(_d) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation(), context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\").attr(\"class\", \"resizing\").style(\"transform\", function() {\n return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight - context.gutter() + \"px\";\n }), context.dragItemPos = { x: d.x, y: d.y };\n }).on(\"drag\", function(_d) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()], pos = [Math.max(0, Math.round(event.x / context.cellWidth)), Math.max(0, Math.round(event.y / context.cellHeight))], size = {\n w: Math.max(1, pos[0] - d.x + 1),\n h: Math.max(1, pos[1] - d.y + 1)\n };\n (d.w !== size.w || d.h !== size.h) && (context.snapping() !== \"none\" ? (context.resetItemsPos(), context.gridList.resizeItem(d, size)) : (d.w = size.w, d.h = size.h), (_d.gridColSpan() !== d.w || _d.gridRowSpan() !== d.h) && (context.items.forEach(context.gridItemToCell), context.updateGrid(d.id, 100))), context.dragItem.style(\"width\", function() {\n return (-d.x + 1) * context.cellWidth + event.x - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return (-d.y + 1) * context.cellHeight + event.y - context.gutter() + \"px\";\n });\n }).on(\"end\", function() {\n context.designMode() && (d3Event().sourceEvent.stopPropagation(), context.dragItem.remove(), context.dragItem = null, context.killGridList());\n });\n }\n updateGrid(resize, transitionDuration = 0, _noRender = !1) {\n transitionDuration = transitionDuration || 0;\n const context = this;\n this.divItems.classed(\"draggable\", this.designMode()).transition().duration(transitionDuration).style(\"left\", function(d) {\n return d.gridCol() * context.cellWidth + context.gutter() / 2 + \"px\";\n }).style(\"top\", function(d) {\n return d.gridRow() * context.cellHeight + context.gutter() / 2 + \"px\";\n }).style(\"width\", function(d) {\n return d.gridColSpan() * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function(d) {\n return d.gridRowSpan() * context.cellHeight - context.gutter() + \"px\";\n }).on(\"end\", function(d) {\n d.surfaceShadow_default(context.surfaceShadow()).surfacePadding_default(context.surfacePadding()).surfaceBorderWidth_default(context.surfaceBorderWidth()).surfaceBackgroundColor_default(context.surfaceBackgroundColor()), (resize === !0 || resize === d.id()) && d.resize().lazyRender();\n });\n }\n update(domNode, element2) {\n super.update(domNode, element2), this._placeholderElement.style(\"overflow-x\", this.fitTo() === \"width\" ? \"hidden\" : null), this._placeholderElement.style(\"overflow-y\", this.fitTo() === \"width\" ? \"scroll\" : null);\n const dimensions = this.getDimensions(), clientWidth = this.width() - (this.fitTo() === \"width\" ? this._scrollBarWidth : 0);\n if (this.cellWidth = clientWidth / dimensions.width, this.cellHeight = this.fitTo() === \"all\" ? this.height() / dimensions.height : this.cellWidth, this.designMode()) {\n const cellLaneRatio = Math.min(this.width() / this.snappingColumns(), this.height() / this.snappingRows()), laneWidth = Math.floor(cellLaneRatio);\n this.cellWidth = laneWidth, this.cellHeight = this.cellWidth;\n }\n const context = this, divItems = element2.selectAll(\"#\" + this.id() + \" > .ddCell\").data(this.content(), function(d) {\n return d.id();\n });\n this.divItems = divItems.enter().append(\"div\").attr(\"class\", \"ddCell\").each(function(d) {\n d.target(this), d.__grid_watch = d.monitor(function(key, newVal, oldVal) {\n context._renderCount && (key === \"snapping\" || key.indexOf(\"grid\") === 0) && newVal !== oldVal && (context.gridList || (context.initGridList(), context.snapping() !== \"none\" && context.gridList.resizeGrid(context.snapping() === \"horizontal\" ? context.snappingRows() : context.snappingColumns()), context.items.forEach(context.gridItemToCell), context.updateGrid(d.id(), 100), context.killGridList()));\n }), select(this).append(\"div\").attr(\"class\", \"resizeHandle\").call(context._d3DragResize).append(\"div\").attr(\"class\", \"resizeHandleDisplay\");\n }).merge(divItems), this.divItems.each(function(d) {\n const element = select(this);\n context.designMode() ? element.call(context._d3Drag) : element.on(\"mousedown.drag\", null).on(\"touchstart.drag\", null);\n }), this.divItems.select(\".resizeHandle\").style(\"display\", this.designMode() ? null : \"none\"), this.updateGrid(!0), divItems.exit().each(function(d) {\n d.target(null), d.__grid_watch && d.__grid_watch.remove();\n }).remove();\n const lanesBackground = element2.selectAll(\"#\" + this.id() + \" > .laneBackground\").data(this.designMode() ? [\"\"] : []);\n lanesBackground.enter().insert(\"div\", \":first-child\").attr(\"class\", \"laneBackground\").style(\"left\", \"1px\").style(\"top\", \"1px\").on(\"click\", function() {\n context.selectionBagClear();\n }).merge(lanesBackground).style(\"width\", this.snappingColumns() * this.cellWidth + \"px\").style(\"height\", this.snappingRows() * this.cellHeight + \"px\"), lanesBackground.exit().each(function() {\n context.selectionBagClear();\n }).remove();\n const lanes = element2.selectAll(\"#\" + this.id() + \" > .lane\").data(this.designMode() ? [\"\"] : []);\n lanes.enter().append(\"div\").attr(\"class\", \"lane\").style(\"left\", \"1px\").style(\"top\", \"1px\"), lanes.style(\"display\", this.showLanes() ? null : \"none\").style(\"width\", this.snappingColumns() * this.cellWidth + \"px\").style(\"height\", this.snappingRows() * this.cellHeight + \"px\").style(\"background-image\", \"linear-gradient(to right, grey 1px, transparent 1px), linear-gradient(to bottom, grey 1px, transparent 1px)\").style(\"background-size\", this.cellWidth + \"px \" + this.cellHeight + \"px\"), lanes.exit().remove();\n }\n exit(domNode, element) {\n this.content().forEach((w) => w.target(null)), super.exit(domNode, element);\n }\n _createSelectionObject(d) {\n return {\n _id: d._id,\n element: () => d._element,\n widget: d\n };\n }\n selection(_) {\n return arguments.length ? (this._selectionBag.set(_.map(function(row) {\n return this._createSelectionObject(row);\n }, this)), this) : this._selectionBag.get().map(function(d) {\n return d._id;\n });\n }\n selectionBagClear() {\n this._selectionBag.isEmpty() || (this._selectionBag.clear(), this.postSelectionChange());\n }\n selectionBagClick(d) {\n if (d !== null) {\n const selectionObj = this._createSelectionObject(d);\n if (d3Event().sourceEvent.ctrlKey)\n this._selectionBag.isSelected(selectionObj) ? (this._selectionBag.remove(selectionObj), this.postSelectionChange()) : (this._selectionBag.append(selectionObj), this.postSelectionChange());\n else {\n const selected = this._selectionBag.get();\n selected.length === 1 && selected[0]._id === selectionObj._id ? this.selectionBagClear() : this._selectionBag.set([selectionObj]), this.postSelectionChange();\n }\n }\n }\n postSelectionChange() {\n }\n applyLayout(layoutArr) {\n this.divItems.each((d, i) => {\n if (layoutArr[i]) {\n const [x, y, w, h] = layoutArr[i];\n d.gridCol(x).gridRow(y).gridColSpan(w).gridRowSpan(h);\n }\n }), this.updateGrid(!0);\n }\n vizActivation(elem) {\n }\n}\nGrid.prototype._class += \" layout_Grid\";\nGrid.prototype.publish(\"designMode\", !1, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"showLanes\", !0, \"boolean\", \"Show snapping lanes when in design mode\", null, { tags: [\"Basic\"], disable: (w) => !w.designMode() });\nGrid.prototype.publish(\"fitTo\", \"all\", \"set\", \"Sizing Strategy\", [\"all\", \"width\"], { tags: [\"Basic\"] });\nGrid.prototype.publish(\"snapping\", \"vertical\", \"set\", \"Snapping Strategy\", [\"vertical\", \"horizontal\", \"none\"]);\nGrid.prototype.publish(\"snappingColumns\", 12, \"number\", \"Snapping Columns\");\nGrid.prototype.publish(\"snappingRows\", 16, \"number\", \"Snapping Rows\");\nGrid.prototype.publish(\"gutter\", 6, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"surfaceShadow\", !0, \"boolean\", \"3D Shadow\");\nGrid.prototype.publish(\"surfacePadding\", null, \"string\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBorderWidth\", 1, \"number\", \"Width (px) of Cell Border\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nGrid.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Basic\"], render: !1 });\nclass HorizontalList extends FlexGrid {\n constructor() {\n super(), this.orientation_default(\"horizontal\"), this.flexWrap_default(\"nowrap\");\n }\n}\nHorizontalList.prototype._class += \" layout_HorizontalList\";\nclass Layered extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_contentContainer\");\n __publicField(this, \"_widgetPlacements\");\n __publicField(this, \"_widgetRatios\");\n this._tag = \"div\", this._widgetPlacements = [], this._widgetRatios = [];\n }\n addLayer(widget, placement = \"default\", widthRatio = 1, heightRatio = 1) {\n const widgets = this.widgets();\n return widgets.push(widget || new Text().text(\"No widget defined for layer.\")), this.widgets(widgets), this._widgetPlacements.push(placement), this._widgetRatios.push([widthRatio, heightRatio]), this;\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._contentContainer = element.append(\"div\").attr(\"class\", \"container\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.style(\"padding\", this.surfacePadding() + \"px\");\n const content = this._contentContainer.selectAll(\".content.id\" + this.id()).data(this.widgets(), function(d) {\n return d.id();\n });\n content.enter().append(\"div\").attr(\"class\", \"content id\" + this.id()).each(function(widget, idx) {\n widget.target(this);\n }).merge(content).each(function(widget, idx) {\n const clientSize = {\n width: context.clientWidth(),\n height: context.clientHeight()\n }, widgetSize = context.widgetSize(idx, clientSize), widgetPosition = context.widgetPosition(idx, clientSize, widgetSize);\n this.style.top = widgetPosition.y + \"px\", this.style.left = widgetPosition.x + \"px\", widget.resize(widgetSize).render();\n }), content.exit().each(function(widget, idx) {\n widget.target(null);\n }).remove(), content.order();\n }\n widgetSize(idx, clientSize) {\n return this._widgetPlacements[idx] === \"default\" ? {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n } : {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n }\n widgetPosition(idx, clientSize, widgetSize) {\n switch (this._widgetPlacements[idx]) {\n default:\n return {\n x: 0,\n y: 0\n };\n case \"top\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: 0\n };\n case \"bottom\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: clientSize.height - widgetSize.height\n };\n case \"left\":\n return {\n x: 0,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n case \"right\":\n return {\n x: clientSize.width - widgetSize.width,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n case \"center\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n }\n }\n}\nLayered.prototype._class += \" layout_Layered\";\nLayered.prototype.publish(\"surfacePadding\", 0, \"number\", \"Padding\");\nLayered.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\nclass Popup extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_surfaceButtons\");\n __publicField(this, \"_originalPosition\");\n this._tag = \"div\", this._surfaceButtons = [];\n }\n updateState(visible) {\n visible = visible || !this.popupState(), this.popupState(visible).render();\n }\n enter(domNode, element) {\n super.enter(domNode, element), this.widget().target(domNode), this._originalPosition = this.position();\n }\n update(domNode, element) {\n super.update(domNode, element), element.style(\"visibility\", this.popupState() ? null : \"hidden\").style(\"opacity\", this.popupState() ? null : 0).style(\"width\", this.shrinkWrap() ? this.widget().width() + \"px\" : this._size.width + \"px\").style(\"height\", this.shrinkWrap() ? this.widget().height() + \"px\" : this._size.height + \"px\"), this.widget().size().height === 0 && this.widget().resize(this.size());\n }\n postUpdate(domNode, element) {\n let left, top;\n switch (this.centerPopup()) {\n case \"container\":\n this._placeholderElement && (left = parseInt(this._placeholderElement.style(\"width\")) / 2 - this.widget().width() / 2, top = parseInt(this._placeholderElement.style(\"height\")) / 2 - this.widget().height() / 2), this.position(\"absolute\");\n break;\n case \"window\":\n left = window.innerWidth / 2 - this.widget().width() / 2, top = window.innerHeight / 2 - this.widget().height() / 2, this.position(\"fixed\");\n break;\n default:\n left = 0, top = 0, this.position(this._originalPosition);\n break;\n }\n this.pos({ x: left, y: top }), super.postUpdate(domNode, element), element.style(\"position\", this.position()).style(\"left\", this.left() + \"px\").style(\"right\", this.right() + \"px\").style(\"top\", this.top() + \"px\").style(\"bottom\", this.bottom() + \"px\");\n }\n exit(domNode, element) {\n this.widget() && this.widget().target(null), super.exit(domNode, element);\n }\n click(obj) {\n }\n}\nPopup.prototype._class += \" layout_Popup\";\nPopup.prototype.publish(\"popupState\", !1, \"boolean\", \"State of the popup, visible (true) or hidden (false)\", null, {});\nPopup.prototype.publish(\"shrinkWrap\", !1, \"boolean\", \"The popup parent container either shrinks to the size of its contents (true) or expands to fit thge popup's parentDiv (false)\", null, {});\nPopup.prototype.publish(\"centerPopup\", \"none\", \"set\", \"Center the widget in its container element (target) or in the window\", [\"none\", \"container\", \"window\"], {});\nPopup.prototype.publish(\"top\", null, \"number\", \"Top position property of popup\", null, {});\nPopup.prototype.publish(\"bottom\", null, \"number\", \"Bottom position property of popup\", null, {});\nPopup.prototype.publish(\"left\", null, \"number\", \"Left position property of popup\", null, {});\nPopup.prototype.publish(\"right\", null, \"number\", \"Right position property of popup\", null, {});\nPopup.prototype.publish(\"position\", \"relative\", \"set\", \"Value of the 'position' property\", [\"absolute\", \"relative\", \"fixed\", \"static\", \"initial\", \"inherit\"], { tags: [\"Private\"] });\nPopup.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nclass Tabbed extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_tabContainer\");\n __publicField(this, \"_contentContainer\");\n this._tag = \"div\";\n }\n clearTabs() {\n return this.labels([]), this.widgets([]), this;\n }\n addTab(widget, label, isActive, callback) {\n const widgetSize = widget.size();\n widgetSize.width === 0 && widgetSize.height === 0 && widget.size({ width: \"100%\", height: \"100%\" });\n const labels = this.labels(), widgets = this.widgets();\n isActive && this.activeTabIdx(this.widgets().length), labels.push(label);\n const surface = new Surface().widget(widget || new Text().text(\"No widget defined for tab\"));\n return widgets.push(surface), this.labels(labels), this.widgets(widgets), callback && callback(surface), this;\n }\n widgetSize(widgetDiv) {\n const width = this.clientWidth();\n let height = this.clientHeight();\n const tcBox = this._tabContainer.node().getBoundingClientRect();\n return typeof tcBox.height < \"u\" && (height -= tcBox.height), { width, height };\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._tabContainer = element.append(\"div\"), this._contentContainer = element.append(\"div\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null);\n const tabs = this._tabContainer.selectAll(\".tab-button.id\" + this.id()).data(this.showTabs() ? this.labels() : [], function(d) {\n return d;\n });\n tabs.enter().append(\"span\").attr(\"class\", \"tab-button id\" + this.id()).style(\"cursor\", \"pointer\").on(\"click\", function(d, idx) {\n context.click(context.widgets()[idx].widget(), d, idx), context.activeTabIdx(idx).render();\n }).merge(tabs).classed(\"active\", function(d, idx) {\n return context.activeTabIdx() === idx;\n }).text(function(d) {\n return d;\n }), tabs.exit().remove();\n const content = this._contentContainer.selectAll(\".tab-content.id\" + this.id()).data(this.widgets(), function(d) {\n return d.id();\n });\n switch (content.enter().append(\"div\").attr(\"class\", \"tab-content id\" + this.id()).each(function(widget, idx) {\n widget.target(this);\n }).merge(content).classed(\"active\", function(d, idx) {\n return context.activeTabIdx() === idx;\n }).style(\"display\", function(d, idx) {\n return context.activeTabIdx() === idx ? \"block\" : \"none\";\n }).each(function(surface, idx) {\n if (surface.visible(context.activeTabIdx() === idx), context.activeTabIdx() === idx) {\n const wSize = context.widgetSize(select(this));\n surface.surfaceBorderWidth(context.showTabs() ? null : 0).surfacePadding(context.showTabs() ? null : 0).resize(wSize);\n }\n }), content.exit().each(function(widget, idx) {\n widget.target(null);\n }).remove(), this.tabLocation()) {\n case \"bottom\":\n this._tabContainer.attr(\"class\", \"on_bottom\").style(\"top\", this._contentContainer.node().offsetHeight + this.surfacePadding() + \"px\").style(\"position\", \"absolute\"), this._contentContainer.style(\"top\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null).style(\"position\", \"absolute\");\n break;\n default:\n this._tabContainer.attr(\"class\", \"on_top\").style(\"top\", null).style(\"position\", \"relative\"), this._contentContainer.style(\"top\", this._tabContainer.node().offsetHeight + this.surfacePadding() + \"px\").style(\"position\", \"absolute\");\n break;\n }\n }\n click(widget, column, idx) {\n }\n}\nTabbed.prototype._class += \" layout_Tabbed\";\nTabbed.prototype.publish(\"showTabs\", !0, \"boolean\", \"Show Tabs\", null, {});\nTabbed.prototype.publish(\"surfacePadding\", 4, \"number\", \"Padding\");\nTabbed.prototype.publish(\"activeTabIdx\", 0, \"number\", \"Index of active tab\", null, {});\nTabbed.prototype.publish(\"labels\", [], \"array\", \"Array of tab labels sharing an index with \", null, { tags: [\"Private\"] });\nTabbed.prototype.publish(\"tabLocation\", \"top\", \"set\", \"Position the tabs at the bottom of the widget\", [\"top\", \"bottom\"], { tags: [\"Private\"] });\nTabbed.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\nclass Toolbar extends HTMLWidget {\n constructor() {\n super(), this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.attr(\"title\", context.title()).style(\"background-color\", this.backgroundColor());\n const title = element.selectAll(\"div.toolbar-title\").data(this.title() ? [this.title()] : []);\n title.enter().append(\"div\").classed(\"toolbar-title\", !0).append(\"span\"), title.selectAll(\"div.toolbar-title > span\").style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null).style(\"color\", this.fontColor_exists() ? this.fontColor() : null).style(\"font-family\", this.fontFamily_exists() ? this.fontFamily() : null).style(\"font-weight\", this.fontBold_exists() ? this.fontBold() ? \"bold\" : \"normal\" : null).style(\"background-color\", this.backgroundColor_exists() ? this.backgroundColor() : null).text(context.title()), title.exit().remove();\n const childWidgets = element.selectAll(\"div.toolbar-child\").data(this.widgets() !== null ? this.widgets() : [], function(d) {\n return d.id();\n });\n childWidgets.enter().insert(\"div\", \"div.toolbar-title\").each(function(d, i) {\n const widgetClass = context.widgetClasses()[i] ? context.widgetClasses()[i] + \" toolbar-child\" : \"toolbar-child\";\n select(this).classed(widgetClass, !0), d.target(this);\n }), childWidgets.exit().each(function(d) {\n d.target(null);\n }).remove(), childWidgets.order();\n }\n render(callback) {\n const context = this;\n return super.render(function(w) {\n const toolbarBBox = context.element().node().getBoundingClientRect();\n let minX = toolbarBBox.left + toolbarBBox.width;\n context.element().selectAll(\"div.toolbar-child\").each(function(d, i) {\n const childBBox = this.getBoundingClientRect();\n minX > childBBox.left && (minX = childBBox.left);\n }), context.element().select(\".toolbar-title\").style(\"width\", minX - toolbarBBox.left - 4 + \"px\"), callback && callback(w);\n });\n }\n exit(domNode, element) {\n this.widgets().forEach(function(w) {\n w.target(null);\n }), super.exit(domNode, element);\n }\n}\nToolbar.prototype._class += \" layout_Toolbar\";\nToolbar.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nToolbar.prototype.publish(\"fontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: !0 });\nToolbar.prototype.publish(\"fontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: !0 });\nToolbar.prototype.publish(\"fontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: !0 });\nToolbar.prototype.publish(\"fontBold\", !0, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: !0 });\nToolbar.prototype.publish(\"backgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: !0 });\nToolbar.prototype.publish(\"responsive\", !0, \"boolean\", \"Adapts to pixel width\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgets\", [], \"widgetArray\", \"Child widgets of the toolbar\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgetClasses\", [], \"array\", \"Array of Html Element classes to be assigned to the child widgets (shares index with widgets param)\", null, { tags: [\"Basic\"] });\nclass VerticalList extends FlexGrid {\n constructor() {\n super(), this.orientation_default(\"vertical\"), this.flexWrap_default(\"nowrap\");\n }\n}\nVerticalList.prototype._class += \" layout_VerticalList\";\nexport {\n AbsoluteSurface,\n Accordion,\n BUILD_VERSION,\n Border,\n Border2,\n Carousel,\n Cell,\n ChartPanel,\n FlexGrid,\n Grid,\n HorizontalList,\n Layered,\n Legend,\n Modal,\n PKG_NAME,\n PKG_VERSION,\n Popup,\n Surface,\n Tabbed,\n Toolbar,\n VerticalList,\n WidgetDiv\n};\n//# sourceMappingURL=index.js.map\n(function(){\"use strict\";try{if(typeof document<\"u\"){var o=document.createElement(\"style\");o.appendChild(document.createTextNode('.layout_AbsoluteSurface{pointer-events:none!important}.layout_AbsoluteSurface>.placeholder{position:relative;overflow:hidden;pointer-events:all}.layout_Accordion>ul{position:relative}.layout_Accordion.open>span{font-style:italic}.layout_Accordion.closed>ul{height:0px;overflow:hidden}.layout_Accordion.open>ul{display:block}.layout_Accordion>.collapsible-icon,.layout_Accordion>.collapsible-title{cursor:pointer;box-sizing:border-box}.layout_Accordion>.collapsible-title{display:block;width:100%}.layout_Accordion>.collapsible-title{font-size:13px;color:#fff;padding:4px 8px;height:26px;-webkit-box-shadow:inset 0px -1px 1px 0px rgba(0,0,0,.2);-moz-box-shadow:inset 0px -1px 1px 0px rgba(0,0,0,.2);box-shadow:inset 0 -1px 1px #0003}.layout_Accordion li{background-color:#fff}.layout_Accordion>ul,.layout_Accordion>.collapsible-title{background-color:#333}.layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion>.collapsible-title{background-color:#555}.layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#777}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#999}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#bbb}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#ccc}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#ddd}.layout_Accordion>ul,.layout_Accordion>span{padding-left:0}.layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion>span{padding-left:12px}.layout_Accordion>.collapsible-title:before{padding:4px 8px;position:absolute;left:0;top:0}.layout_Accordion>.collapsible-icon{position:absolute;top:0;right:0;width:24px;height:24px;color:#fff}.layout_Surface{box-sizing:border-box;margin:0;border:1px solid #e5e5e5;overflow:hidden;height:100%;width:100%}.layout_Surface.shadow2{box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f}.layout_Surface>h3{margin:0;padding:2px;background-color:#e5e5e5}.layout_Surface .html-button-container{position:absolute;right:0;top:3px}.layout_Surface>div{padding:8px}.layout_Surface .html-button-container .surface-button{margin-right:5px}.layout_Surface .html-button-container .surface-button i{opacity:.8}.layout_Surface .html-button-container .surface-button:hover{opacity:1}.layout_Surface .html-button-container .surface-button:active{opacity:.5}div[draggable=true].hideDragCellContent.content-icon:before{content:\"\";font-family:FontAwesome;position:absolute;top:calc(50% - 74px);left:calc(50% - 56px);font-size:100px}div[draggable=true].hideDragCellContent.content-icon-Line:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Pie:before{top:calc(50% - 72px);left:calc(50% - 45px);content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Area:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Gauge:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Table:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Form:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Grid:before,div[draggable=true].hideDragCellContent.content-icon-Graph:before,div[draggable=true].hideDragCellContent.content-icon-Border:before,div[draggable=true].hideDragCellContent.content-icon-Tabbed:before,div[draggable=true].hideDragCellContent.content-icon-Accordion:before,div[draggable=true].hideDragCellContent.content-icon-MultiChart:before,div[draggable=true].hideDragCellContent.content-icon-MultiChartSurface:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-ChoroplethStates:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethStatesHeat:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethCounties:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethCountries:before,div[draggable=true].hideDragCellContent.content-icon-GMap:before,div[draggable=true].hideDragCellContent.content-icon-GMapHeat:before,div[draggable=true].hideDragCellContent.content-icon-GMapGraph:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Text:before,div[draggable=true].hideDragCellContent.content-icon-TextBox:before,div[draggable=true].hideDragCellContent.content-icon-FAChar:before{content:\"\"}.layout_Cell .update-indicator{box-sizing:border-box;position:absolute;top:0;left:0;padding:0;z-index:1000;border-width:0px;border-style:solid;pointer-events:none}.layout_Border{width:100%;height:100%}.layout_Border>.border-content{width:100%;height:100%;position:relative}.layout_Border>.borderHandle{width:6px;height:6px;background-color:#444;opacity:.3;position:absolute;visibility:hidden}.layout_Border.design-mode>.borderHandle{visibility:visible}.layout_Border>.borderHandle:hover{background-color:#666}.layout_Border>.borderHandle.borderHandleDisabled{display:none}.layout_Border>.borderHandle_top,.layout_Border>.borderHandle_bottom{cursor:ns-resize}.layout_Border>.borderHandle_left,.layout_Border>.borderHandle_right{cursor:ew-resize}.layout_Border .cell{border-radius:5px;border:1px solid #e5e5e5;display:inline-block;overflow:hidden}.layout_Border .cell h2{margin:0;padding-top:4px;-webkit-margin:0px;text-align:center}.layout_Border .layout_BorderCell.over{border:2px dashed #000}.layout_Border .dragItem{z-index:-1;opacity:.33}.layout_Border .notDragItem{z-index:-1;opacity:1}.layout_Border div[draggable=true]{opacity:.75;cursor:default}.layout_Border div[draggable=true] .dragHandle{opacity:1}.layout_Border div[draggable=true] .dragHandle_n,.layout_Border div[draggable=true] .dragHandle_e,.layout_Border div[draggable=true] .dragHandle_s,.layout_Border div[draggable=true] .dragHandle_w{background-color:#aaa}.layout_Border div[draggable=true] .dragHandle_nw,.layout_Border div[draggable=true] .dragHandle_ne,.layout_Border div[draggable=true] .dragHandle_se,.layout_Border div[draggable=true] .dragHandle_sw{background-color:#333}.layout_Border div[draggable=true] .dragHandle_nw{cursor:nw-resize}.layout_Border div[draggable=true] .dragHandle_n{cursor:n-resize}.layout_Border div[draggable=true] .dragHandle_ne{cursor:ne-resize}.layout_Border div[draggable=true] .dragHandle_e{cursor:e-resize}.layout_Border div[draggable=true] .dragHandle_se{cursor:se-resize}.layout_Border div[draggable=true] .dragHandle_s{cursor:s-resize}.layout_Border div[draggable=true] .dragHandle_sw{cursor:sw-resize}.layout_Border div[draggable=true] .dragHandle_w{cursor:w-resize}.layout_Border div[draggable=false]>div>.dragHandle{display:none}.layout_Border .grid-drop-target{position:fixed;box-sizing:border-box;border:2px dashed #7f8c8d;border-radius:0;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6464641a 4px,#6464641a 8px)}.layout_Border .grid-drop-target.drop-target-over{border:2px dashed #179BD7;background:repeating-linear-gradient(-45deg,#0000,#0000 6px,#119bd71a 6px,#119bd71a 12px)}.layout_Border2{display:flex;flex-direction:column}.layout_Border2>.body{margin:0;padding:0;display:flex;flex-flow:row}.layout_Border2>.body>.center{flex:1}.layout_Border2>.header{display:block}.layout_Border2>.footer{display:block}.layout_Carousel>div{position:relative;overflow:hidden}.layout_Carousel>div>.carouselItem{position:absolute}.layout_Modal-header{background-color:#3f51b5;overflow:hidden}.layout_Modal-body{background-color:#fff;overflow-y:scroll;overflow-x:hidden}.layout_Modal-title,.layout_Modal-annotations{position:absolute}.layout_Modal-closeButton{cursor:pointer}.layout_Modal-closeButton:hover{opacity:.7}.layout_Modal-closeButton:active{opacity:.5}.layout_Modal-fade{position:fixed;background-color:#000;opacity:.5;z-index:10000}.layout_Modal-content{position:fixed;background-color:#fff;z-index:10100}.layout_Modal-fade-hidden{display:none}.layout_Modal-fadeClickable{cursor:pointer}.layout_ChartPanel .series.highlight{stroke-width:2px;opacity:1}.layout_ChartPanel .series.lowlight{opacity:.3!important}.layout_FlexGrid{display:flex}.FlexGrid-list-item{overflow:hidden;border-style:solid;flex-grow:1}.layout_Grid>.ddCell{position:absolute}.layout_Grid>.laneBackground{position:absolute;border-style:solid;border-width:1px;background:#f5f5f5}.layout_Grid>.lane{position:absolute;border-style:none;opacity:.25;border-radius:0;pointer-events:none}.layout_Grid>.ddCell.draggable{border-style:solid;border-width:1px;background-color:#f8f8ff;border-radius:0;cursor:move}.layout_Grid>.ddCell.draggable>.resizeHandle{bottom:0;right:0;width:8px;height:8px;border-style:none;position:absolute;cursor:nwse-resize}.layout_Grid>.ddCell.draggable .resizeHandleDisplay{bottom:2px;right:2px;width:4px;height:4px;border-style:solid;border-left-width:0px;border-top-width:0px;border-right-width:2px;border-bottom-width:2px;border-color:#a9a9a9;background-color:none;position:absolute}.layout_Grid>.ddCell.draggable .resizeHandleDisplay:hover{border-color:orange}.layout_Grid>.dragging{border-style:solid;border-width:1px;border-color:gray;border-radius:0;position:absolute;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6464641a 4px,#6464641a 8px)}.layout_Grid>.resizing{border-style:solid;border-width:1px;border-color:gray;background-color:orange;border-radius:0;position:absolute;opacity:.3;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,orange 4px,orange 8px)}.layout_Grid>.ddCell.draggable .common_Widget.selected{border-style:solid;border-width:1px;border-color:red;background-color:gray;border-radius:0;position:absolute;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6400001a 4px,#6400001a 8px)}.layout_Grid #drag-me:before{content:\"#\" attr(id);font-weight:700}.layout_Layered{pointer-events:none}.layout_Layered>.container>.content{position:absolute}.layout_Layered>.container>.content>div>.common_Widget,.layout_Layered>.container>.content>div>svg>.common_Widget{pointer-events:all}.layout_Tabbed .tab-button{position:relative;top:1px;display:inline-block;border-left:1px solid #ddd;border-top:1px solid #ddd;border-right:1px solid #ddd;background-color:transparent;margin-right:4px;padding:2px 2px 4px;background-color:#ccc}.layout_Tabbed .tab-button.active{background-color:#fff;z-index:999}.layout_Tabbed .on_bottom .tab-button{border-bottom:1px solid #ddd;border-top:none;top:-1px}.layout_Toolbar{height:100%;background-color:#ddd;white-space:nowrap;overflow:hidden}.layout_Toolbar .toolbar-title{display:inline-block;position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%);margin-left:4px;font-weight:700;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layout_Toolbar .toolbar-child{position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%);float:right;margin-left:4px;margin-right:4px;line-height:16px}')),document.head.appendChild(o)}}catch(e){console.error(\"vite-plugin-css-injected-by-js\",e)}})();\n","import { Utility } from \"@hpcc-js/common\";\n\ndeclare const require: any;\nexport function requireWidget(classID) {\n return new Promise(function (resolve, _reject) {\n const parsedClassID = Utility.parseClassID(classID);\n if (require) {\n require([parsedClassID.package], function (Package) {\n let Widget = null;\n if (Package && Package[parsedClassID.widgetID]) {\n Widget = Package[parsedClassID.widgetID];\n }\n resolve(parsedClassID.memberWidgetID ? (Widget.prototype ? Widget.prototype[parsedClassID.memberWidgetID] : Widget[parsedClassID.memberWidgetID]) : Widget);\n });\n }\n });\n}\n\nexport function requireWidgets(classIDs) {\n return Promise.all(classIDs.map(requireWidget));\n}\n","import { IGraph, INDChart } from \"@hpcc-js/api\";\nimport { Database, HTMLWidget, Utility, Widget } from \"@hpcc-js/common\";\nimport { map as d3Map } from \"d3-collection\";\nimport { requireWidget } from \"./Utility.ts\";\n\ndeclare const require: any;\nexport class MultiChart extends HTMLWidget {\n _allCharts = {};\n _chartTypeDefaults;\n _chartTypeProperties;\n _chartMonitor;\n _switchingTo;\n\n constructor() {\n super();\n INDChart.call(this);\n IGraph.call(this);\n\n this._tag = \"div\";\n\n this._allCharts = {};\n this._allChartTypes.forEach(function (item) {\n const newItem = JSON.parse(JSON.stringify(item));\n newItem.widget = null;\n this._allCharts[item.id] = newItem;\n this._allCharts[item.display] = newItem;\n this._allCharts[item.widgetClass] = newItem;\n }, this);\n this._chartTypeDefaults = {};\n this._chartTypeProperties = {};\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): Database.Field[] | this {\n const retVal = super.fields.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().fields();\n this.chart().fields(_);\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_, asDefault?: boolean): this;\n columns(_?, asDefault?: boolean) {\n const retVal = HTMLWidget.prototype.columns.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().columns();\n this.chart().columns(_, asDefault);\n }\n return retVal;\n }\n\n data(_?) {\n const retVal = HTMLWidget.prototype.data.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().data();\n this.chart().data(_);\n }\n return retVal;\n }\n\n hasOverlay() {\n return this.chart() && this.chart().hasOverlay();\n }\n\n visible(): boolean;\n visible(_: boolean): this;\n visible(_?: boolean): boolean | this {\n if (!arguments.length) return this.chart() && this.chart().visible();\n if (this.chart()) {\n this.chart().visible(_);\n }\n return this;\n }\n\n chartTypeDefaults(): object;\n chartTypeDefaults(_: object): this;\n chartTypeDefaults(_?: object): object | this {\n if (!arguments.length) return this._chartTypeDefaults;\n this._chartTypeDefaults = _;\n return this;\n }\n\n chartTypeProperties(): object;\n chartTypeProperties(_: object): this;\n chartTypeProperties(_?: object): object | this {\n if (!arguments.length) return this._chartTypeProperties;\n this._chartTypeProperties = _;\n return this;\n }\n\n getChartDataFamily() {\n return this._allCharts[this.chartType()].family;\n }\n\n requireContent(chartType, callback) {\n const classInfo = Utility.parseClassID(this._allCharts[chartType].widgetClass);\n switch (classInfo.package) {\n case \"@hpcc-js/chart\":\n import(\"@hpcc-js/chart\").then(mod => {\n callback(new mod[classInfo.widgetID]());\n });\n break;\n case \"@hpcc-js/dgrid\":\n import(\"@hpcc-js/dgrid\").then(mod => {\n callback(new mod[classInfo.widgetID]());\n });\n break;\n default:\n requireWidget(this._allCharts[chartType].widgetClass).then(function (WidgetClass: any) {\n callback(new WidgetClass());\n });\n }\n }\n\n switchChart(callback) {\n if (this._switchingTo === this.chartType()) {\n if (callback) {\n callback(this);\n }\n return;\n } else if (this._switchingTo) {\n console.warn(\"Attempting switch to: \" + this.chartType() + \", before previous switch is complete (\" + this._switchingTo + \")\");\n }\n this._switchingTo = this.chartType();\n const oldContent = this.chart();\n const context = this;\n this.requireContent(this.chartType(), function (newContent) {\n if (newContent !== oldContent) {\n const size = context.size();\n newContent\n .fields(context.fields())\n .data(context.data())\n .size(size)\n ;\n\n context.chart(newContent);\n if (oldContent) {\n oldContent\n .size({ width: 1, height: 1 })\n .render()\n ;\n }\n }\n delete context._switchingTo;\n if (callback) {\n callback(this);\n }\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const content = element.selectAll(\".multiChart\").data(this.chart() ? [this.chart()] : [], function (d) { return d._id; });\n content.enter().append(\"div\")\n .attr(\"class\", \"multiChart\")\n .each(function (d) {\n d.target(this);\n })\n ;\n\n const currChart = this.chart();\n if (currChart) {\n for (const key in this._chartTypeDefaults) {\n if (currChart[key + \"_default\"]) {\n try {\n currChart[key + \"_default\"](this._chartTypeDefaults[key]);\n } catch (e) {\n console.warn(\"Exception Setting Default: \" + key);\n }\n } else {\n console.warn(\"Unknown Default: \" + key);\n }\n }\n this._chartTypeDefaults = {};\n for (const propKey in this._chartTypeProperties) {\n if (currChart[propKey]) {\n try {\n currChart[propKey](this._chartTypeProperties[propKey]);\n } catch (e) {\n console.warn(\"Exception Setting Property: \" + propKey);\n }\n } else {\n console.warn(\"Unknown Property: \" + propKey);\n }\n }\n this._chartTypeProperties = {};\n }\n\n const context = this;\n content\n .each(function (d) { d.resize(context.size()); })\n ;\n\n content.exit().transition()\n .each(function (d) { d.target(null); })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n if (this._chartMonitor) {\n this._chartMonitor.remove();\n delete this._chartMonitor;\n }\n if (this.chart()) {\n this.chart().target(null);\n }\n super.exit(domNode, element);\n }\n\n render(_callback?) {\n if (this.chartType() && (!this.chart() || (this.chart().classID() !== this._allCharts[this.chartType()].widgetClass))) {\n const context = this;\n const args = arguments;\n this.switchChart(function () {\n HTMLWidget.prototype.render.apply(context, args);\n });\n return this;\n }\n return HTMLWidget.prototype.render.apply(this, arguments);\n }\n}\nMultiChart.prototype._class += \" composite_MultiChart\";\nMultiChart.prototype.implements(INDChart.prototype);\nMultiChart.prototype.implements(IGraph.prototype);\nexport interface ChartMeta {\n id: string;\n display: string;\n widgetClass: string;\n widgetPath?: string;\n}\nexport interface MultiChart {\n _otherChartTypes: ChartMeta[];\n _graphChartTypes: ChartMeta[];\n _1DChartTypes: ChartMeta[];\n _2DChartTypes: ChartMeta[];\n _NDChartTypes: ChartMeta[];\n _mapChartTypes: ChartMeta[];\n _anyChartTypes: ChartMeta[];\n _allChartTypes: ChartMeta[];\n _allMap;\n _allFamilies: string[];\n _allChartTypesMap;\n _allChartTypesByClass;\n\n hideRowOnLegendClick(): boolean;\n hideRowOnLegendClick(_: boolean): this;\n chartType(): string;\n chartType(_: string): this;\n chart(): Widget;\n chart(_: Widget): this;\n chart_access(): Widget;\n chart_access(_: Widget): this;\n\n click(_row, _column, _selected): void;\n dblclick(_row, _column, _selected): void;\n vertex_click(row, column, selected, more): void;\n vertex_dblclick(row, column, selected, more): void;\n edge_click(row, column, selected, more): void;\n edge_dblclick(row, column, selected, more): void;\n}\n\nMultiChart.prototype._otherChartTypes = [\n { id: \"FORM\", display: \"Form\", widgetClass: \"form_FieldForm\" }\n].map(function (item: any) { item.family = \"other\"; return item; });\nMultiChart.prototype._graphChartTypes = [\n { id: \"GRAPH\", display: \"Graph\", widgetClass: \"graph_Graph\" },\n { id: \"ADJACENCY_GRAPH\", display: \"Graph\", widgetClass: \"graph_AdjacencyGraph\" },\n { id: \"GRAPHC\", display: \"GraphC\", widgetClass: \"graph_GraphC\" }\n].map(function (item: any) { item.family = \"GRAPH\"; return item; });\nMultiChart.prototype._1DChartTypes = [\n].map(function (item: any) { item.family = \"1D\"; return item; });\nMultiChart.prototype._2DChartTypes = [\n { id: \"SUMMARY\", display: \"Summary\", widgetClass: \"chart_Summary\" },\n { id: \"BUBBLE\", display: \"Bubble\", widgetClass: \"chart_Bubble\" },\n { id: \"PIE\", display: \"Pie\", widgetClass: \"chart_Pie\" },\n { id: \"WORD_CLOUD\", display: \"Word Cloud\", widgetClass: \"other_WordCloud\" }\n].map(function (item: any) { item.family = \"2D\"; return item; });\nMultiChart.prototype._NDChartTypes = [\n { id: \"COLUMN\", display: \"Column\", widgetClass: \"chart_Column\" },\n { id: \"BAR\", display: \"Bar\", widgetClass: \"chart_Bar\" },\n { id: \"LINE\", display: \"Line\", widgetClass: \"chart_Line\" },\n { id: \"AREA\", display: \"Area\", widgetClass: \"chart_Area\" },\n { id: \"STEP\", display: \"Step\", widgetClass: \"chart_Step\" },\n { id: \"SCATTER\", display: \"Scatter\", widgetClass: \"chart_Scatter\" },\n { id: \"HEXBIN\", display: \"Hex Bin\", widgetClass: \"chart_HexBin\" }\n].map(function (item: any) { item.family = \"ND\"; return item; });\nMultiChart.prototype._mapChartTypes = [\n { id: \"CHORO_USSTATES\", display: \"US State Choropleth\", widgetClass: \"map_ChoroplethStates\" },\n { id: \"CHORO_USCOUNTIES\", display: \"US County Choropleth\", widgetClass: \"map_ChoroplethCounties\" },\n { id: \"CHORO_COUNTRIES\", display: \"Country Choropleth\", widgetClass: \"map_ChoroplethCountries\" },\n { id: \"GMAP_CHORO_USCOUNTIES\", display: \"Google Map US County Choropleth\", widgetClass: \"map_GMapCounties\" },\n { id: \"GOOGLE_MAP\", display: \"Google Map\", widgetClass: \"map_GMapLayered\" },\n { id: \"OPENSTREET\", display: \"Open Street Map\", widgetClass: \"map_OpenStreet\" }\n].map(function (item: any) { item.family = \"map\"; return item; });\nMultiChart.prototype._anyChartTypes = [\n { id: \"TABLE\", display: \"Table\", widgetClass: \"dgrid_Table\" },\n { id: \"TABLE_LEGACY\", display: \"Table (legacy)\", widgetClass: \"other_Table\" },\n { id: \"TABLE_NESTED\", display: \"Nested Table\", widgetClass: \"other_NestedTable\" },\n { id: \"TABLE_CALENDAR\", display: \"Table driven Calendar Heat Map\", widgetClass: \"other_CalendarHeatMap\" },\n { id: \"TABLE_BULLET\", display: \"Table driven bullet chart\", widgetClass: \"chart_Bullet\" },\n { id: \"TABLE_SELECT\", display: \"Table driven select\", widgetClass: \"other_Select\" },\n { id: \"TABLE_AUTOCOMPLETE\", display: \"Table driven auto complete\", widgetClass: \"other_AutoCompleteText\" },\n { id: \"TABLE_OPPORTUNITY\", display: \"Table driven opportunity widget\", widgetClass: \"graph_Opportunity\" },\n { id: \"TABLE_TREE\", display: \"Table driven tree\", widgetClass: \"tree_Dendrogram\" },\n { id: \"TABLE_TREEMAP\", display: \"Table driven Treemap\", widgetClass: \"tree_Treemap\" },\n { id: \"TABLE_SANKEY\", display: \"Table driven Sankey\", widgetClass: \"graph_Sankey\" },\n { id: \"TABLE_GMAP_PIN\", display: \"Table driven Google Map (pins)\", widgetClass: \"map_GMapPin\" },\n { id: \"TABLE_GMAP_PINLINE\", display: \"Table driven Google Map (pins/lines)\", widgetClass: \"map_GMapPinLine\" },\n { id: \"TABLE_XML_TREE\", display: \"Table driven XML Tree\", widgetClass: \"tree_Indented\" }\n].map(function (item: any) { item.family = \"any\"; return item; });\nMultiChart.prototype._allChartTypes =\n MultiChart.prototype._otherChartTypes.concat(\n MultiChart.prototype._graphChartTypes.concat(\n MultiChart.prototype._1DChartTypes.concat(\n MultiChart.prototype._2DChartTypes.concat(\n MultiChart.prototype._NDChartTypes.concat(\n MultiChart.prototype._mapChartTypes.concat(\n MultiChart.prototype._anyChartTypes\n ))))));\nMultiChart.prototype._allMap = d3Map(MultiChart.prototype._allChartTypes, function (item: any) { return item.family; });\nMultiChart.prototype._allFamilies = MultiChart.prototype._allMap.keys();\nMultiChart.prototype._allChartTypesMap = {};\nMultiChart.prototype._allChartTypesByClass = {};\nMultiChart.prototype._allChartTypes.forEach(function (item) {\n item.widgetPath = Utility.widgetPath(item.widgetClass);\n MultiChart.prototype._allChartTypesMap[item.id] = item;\n MultiChart.prototype._allChartTypesByClass[item.widgetClass] = item;\n});\n\nMultiChart.prototype.publishReset();\nMultiChart.prototype.publish(\"hideRowOnLegendClick\", false, \"boolean\", \"Enable/Disable hiding row on legend clicks\", null, { tags: [\"Basic\"] });\nMultiChart.prototype.publish(\"chartType\", \"BUBBLE\", \"set\", \"Chart Type\", MultiChart.prototype._allChartTypes.map(function (item) { return item.id; }), { tags: [\"Basic\"] });\nMultiChart.prototype.publish(\"chart\", null, \"widget\", \"Chart\", null, { tags: [\"Basic\"] });\n\nconst _origChart = MultiChart.prototype.chart;\nMultiChart.prototype.chart = function (_?) {\n const retVal = _origChart.apply(this, arguments);\n if (arguments.length) {\n const context = this;\n if (this._allChartTypesByClass[_.classID()]) {\n this.chartType(this._allChartTypesByClass[_.classID()].id);\n } else {\n console.warn(\"Unknown Class ID: \" + _.classID());\n }\n _.click = function (_row, _column, _selected) {\n context.click.apply(context, arguments);\n };\n _.dblclick = function (_row, _column, _selected) {\n context.dblclick.apply(context, arguments);\n };\n _.vertex_click = function (row, column, selected, more) {\n context.vertex_click.apply(context, arguments);\n };\n _.vertex_dblclick = function (row, column, selected, more) {\n context.vertex_dblclick.apply(context, arguments);\n };\n _.edge_click = function (row, column, selected, more) {\n context.edge_click.apply(context, arguments);\n };\n _.edge_dblclick = function (row, column, selected, more) {\n context.edge_dblclick.apply(context, arguments);\n };\n if (this._chartMonitor) {\n this._chartMonitor.remove();\n delete this._chartMonitor;\n }\n this._chartMonitor = _.monitor(function (key, newVal, oldVal) {\n context.broadcast(key, newVal, oldVal, _);\n });\n }\n return retVal;\n};\n","import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { MultiChart } from \"./MultiChart.ts\";\n\nimport \"../src/ChartPanel.css\";\n\nclass Summary extends HTMLWidget {\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element.append(\"p\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element.select(\"p\").text(this.text());\n }\n}\ninterface Summary {\n text(): string;\n text(_: string): this;\n}\nSummary.prototype.publish(\"text\", \"\", \"string\");\n\nexport class MultiChartPanel extends ChartPanel<MultiChart> {\n\n constructor() {\n super();\n this.widget(new MultiChart().chartType(\"COLUMN\"));\n }\n\n multiChart(): MultiChart {\n return this._widget;\n }\n\n chartType(): string;\n chartType(_: string): this;\n chartType(_?: string): string | this {\n if (!arguments.length) return this._widget.chartType();\n this._widget.chartType(_);\n return this;\n }\n\n chart(): Widget;\n chart(_: Widget): this;\n chart(_?: Widget): Widget | this {\n if (!arguments.length) return this._widget.chart();\n this._widget.chart(_);\n return this;\n }\n\n chartTypeDefaults(): object;\n chartTypeDefaults(_: object): this;\n chartTypeDefaults(_?: object): this | object {\n if (!arguments.length) return this._widget.chartTypeDefaults();\n this._widget.chartTypeDefaults(_);\n return this;\n }\n\n chartTypeProperties(): object;\n chartTypeProperties(_: object): this;\n chartTypeProperties(_?: object): this | object {\n if (!arguments.length) return this._widget.chartTypeProperties();\n this._widget.chartTypeProperties(_);\n return this;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n if (this._widget instanceof MultiChart) {\n this._legend.dataFamily(this._widget.getChartDataFamily());\n }\n super.update(domNode, element);\n }\n}\nMultiChartPanel.prototype._class += \" composite_MultiChartPanel\";\n","import { OnOff } from \"@hpcc-js/form\";\nimport { Border, Toolbar } from \"@hpcc-js/layout\";\nimport { PropertyEditor } from \"@hpcc-js/other\";\n\nimport \"../src/Dermatology.css\";\n\nexport class Dermatology extends Border {\n _toolbar;\n _propEditor;\n _showProperties;\n _propsButton;\n _prevWidget;\n\n constructor() {\n super();\n\n this._toolbar = new Toolbar()\n .title(\"Dermatology\")\n ;\n this._propEditor = new PropertyEditor()\n .show_settings(true)\n ;\n }\n\n showProperties(_?) {\n if (!arguments.length) return this._showProperties;\n this._showProperties = _;\n this\n .rightPercentage(0)\n .rightSize(this._showProperties ? 360 : 0)\n .setContent(\"right\", this._showProperties ? this._propEditor : null)\n ;\n const widget = this.widget();\n if (widget && widget.designMode) {\n widget.designMode(this._showProperties);\n }\n return this;\n }\n\n toggleProperties() {\n return this.showProperties(!this.showProperties());\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this\n .topPercentage(0)\n .topSize(0)\n .setContent(\"top\", this._toolbar)\n ;\n this.getCell(\"top\").surfaceShadow(true);\n\n const context = this;\n this._propsButton = new OnOff()\n .id(this.id() + \"_props\")\n .value(\"Properties\")\n .on(\"click\", function () {\n context\n .toggleProperties()\n .render()\n ;\n })\n ;\n this._toolbar.widgets([this._propsButton]);\n }\n\n update(domNode, element) {\n this\n .topPercentage(0)\n .topSize(this.showToolbar() ? 32 : 0)\n ;\n\n super.update(domNode, element);\n\n const widget = this.widget();\n element.style(\"background-color\", widget && widget.surfaceShadow ? null : \"white\");\n }\n\n render(callback) {\n const widget = this.widget();\n if (widget !== this._prevWidget) {\n if (widget && widget.surfaceShadow) {\n widget.surfaceBackgroundColor_default(\"white\");\n }\n this.setContent(\"center\", widget);\n this._propEditor.widget(widget);\n this._prevWidget = widget;\n }\n return super.render(callback);\n }\n\n showToolbar: { (): boolean; (_: boolean): Dermatology };\n showToolbar_exists: () => boolean;\n widget: { (): any; (_: any): Dermatology };\n widget_exists: () => boolean;\n}\nDermatology.prototype._class += \" composite_Dermatology\";\n\nDermatology.prototype.publish(\"showToolbar\", true, \"boolean\", \"Show Toolbar\");\nDermatology.prototype.publish(\"widget\", null, \"widget\", \"Widget\");\n","import { Database, Text, Utility } from \"@hpcc-js/common\";\nimport { Button, Input, Select } from \"@hpcc-js/form\";\nimport { Border, Grid, Toolbar } from \"@hpcc-js/layout\";\nimport { Html, Legend } from \"@hpcc-js/other\";\nimport { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\nimport { MultiChart } from \"./MultiChart.ts\";\n\nimport \"../src/MegaChart.css\";\n\nexport class MegaChart extends Border {\n _chart = new MultiChart();\n _toolbar = new Toolbar();\n _valueTitle = new Text();\n _domainTitle = new Text();\n _legend: Legend = new Legend();\n _csvButton;\n _infoButton;\n _maximizeButton;\n _legendButton;\n _chartTypeSelect;\n _prevLegendPosition;\n _prevShowToolbar;\n _1DChartTypes;\n _2DChartTypes;\n _NDChartTypes;\n _anyChartTypes;\n _allChartTypes;\n _contentClasses;\n _dataCount;\n\n constructor() {\n super();\n this._tag = \"div\";\n const context = this;\n this._chart.click = function () {\n context.click.apply(context, arguments);\n };\n this._chart.dblclick = function () {\n context.dblclick.apply(context, arguments);\n };\n this._chart.vertex_click = function () {\n context.vertex_click.apply(context, arguments);\n };\n this._chart.vertex_dblclick = function () {\n context.vertex_dblclick.apply(context, arguments);\n };\n this._chart.edge_click = function () {\n context.edge_click.apply(context, arguments);\n };\n this._chart.edge_dblclick = function () {\n context.edge_dblclick.apply(context, arguments);\n };\n }\n\n toolbarWidgets(_?) {\n if (!arguments.length) return this._toolbar.widgets();\n this._toolbar.widgets(_);\n return this;\n }\n\n chartTypeDefaults(_?) {\n if (!arguments.length) return this._chart.chartTypeDefaults();\n this._chart.chartTypeDefaults(_);\n return this;\n }\n\n chartTypeProperties(_?) {\n if (!arguments.length) return this._chart.chartTypeProperties();\n this._chart.chartTypeProperties(_);\n return this;\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): Database.Field[] | this {\n if (!arguments.length) return this._chart.fields();\n this._chart.fields(_);\n return this;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n if (!arguments.length) return this._chart.columns();\n this._chart.columns(_, asDefault);\n return this;\n }\n\n data(_?) {\n if (!arguments.length) return this._chart.data();\n this._chart.data(_);\n return this;\n }\n\n downloadCSV() {\n Utility.downloadString(\"CSV\", this._chart.export(\"CSV\"));\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n\n this.topShrinkWrap(false).topPercentage(0).topSize(30);\n this._dataCount = new Html()\n .classed({ \"composite_MegaChart-dataCount\": true })\n .id(this.id() + \"_dataCount\")\n .html('<span class=\"MegaChart-dataCount-label\">Count:</span>&nbsp;<span class=\"MegaChart-dataCount-value\">' + (this.data() ? this.data().length : \"0\") + \"</span>\")\n .overflowX(\"visible\")\n .overflowY(\"visible\")\n ;\n\n this._csvButton = new Button()\n .classed({ \"composite_MegaChart-CSV\": true })\n .id(this.id() + \"_csv\")\n .value(\"CSV\")\n ;\n this._csvButton.click = function (a) {\n context.downloadCSV();\n };\n\n this._infoButton = new Button()\n .classed({ \"composite_MegaChart-Info\": true })\n .id(this.id() + \"_info\")\n .value(this.infoIcon())\n ;\n\n this._maximizeButton = new Button()\n .classed({ \"composite_MegaChart-Maximize\": true })\n .id(this.id() + \"_maximize\")\n .value(\"\\uf2d0\")\n ;\n this._maximizeButton.click = function (buttonWidget) {\n const target = context.target() as any;\n let node = target;\n const isMaximized = d3Select(target).classed(\"__hpccisMaximized\");\n\n // Find the layout_Grid ancestor\n const parentGrid = context.locateAncestor(\"layout_Grid\");\n if (parentGrid) {\n node = parentGrid.element().node();\n } else {\n node = document.body;\n }\n\n const targetElement = d3Select(context.target()) as any;\n if (isMaximized) {\n // Restore from maximized to natural size/position\n const targetParentBox = target.parentElement.getBoundingClientRect();\n const targetPaddingTop = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\"));\n const targetPaddingLeft = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-left\").replace(\"px\", \"\"));\n const targetPaddingRight = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-right\").replace(\"px\", \"\"));\n const targetPaddingBottom = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-bottom\").replace(\"px\", \"\"));\n context.contentDiv.style(\"opacity\", 0).transition(100);\n targetElement.transition()// .duration(3000)\n .style(\"top\", targetParentBox.top + \"px\")\n .style(\"left\", targetParentBox.left + \"px\")\n .style(\"width\", (targetParentBox.width - targetPaddingLeft - targetPaddingRight) + \"px\")\n .style(\"height\", (targetParentBox.height - targetPaddingTop - targetPaddingBottom) + \"px\")\n .each(\"end\", function () {\n targetElement.style(\"position\", target.__old_position);\n targetElement.style(\"z-index\", target.__old_zindex);\n targetElement.style(\"background-color\", target.__old_backgroundColor);\n targetElement.style(\"box-shadow\", target.__old_boxshadow);\n context\n .resize({\n width: targetParentBox.width - targetPaddingLeft - targetPaddingRight,\n height: targetParentBox.height - targetPaddingTop - targetPaddingBottom\n })\n .render(function () {\n context.contentDiv.transition()\n .style(\"opacity\", 1);\n });\n buttonWidget.value(\"\\uf2d0\").render();\n });\n } else {\n // Maximize this MegaChart\n target.__old_position = target.style.position;\n target.__old_zindex = target.style.zIndex;\n target.__old_boxshadow = target.style.boxShadow;\n target.__old_backgroundColor = context.element().style(\"background-color\");\n const grid = d3Select(node).datum() as Grid;\n const gridTarget = grid.target();\n const gridBox = grid ? gridTarget.getBoundingClientRect() : node.getBoundingClientRect();\n const gridPaddingTop = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\"));\n const gridPaddingLeft = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-left\").replace(\"px\", \"\"));\n const gridPaddingRight = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-right\").replace(\"px\", \"\"));\n const gridPaddingBottom = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-bottom\").replace(\"px\", \"\"));\n context.contentDiv.style(\"opacity\", 0).transition(100);\n targetElement\n .style(\"position\", \"fixed\")\n .style(\"z-index\", 999999)\n .style(\"box-shadow\", \"0 8px 8px 0 rgba(0,0,0,.14),0 12px 4px -8px rgba(0,0,0,.2),0 4px 20px 0 rgba(0,0,0,.12)\")\n .style(\"background-color\", target.__old_backgroundColor)\n .transition()// .duration(3000)\n .style(\"top\", (gridBox.top + gridPaddingTop) + \"px\")\n .style(\"left\", (gridBox.left + gridPaddingLeft) + \"px\")\n .style(\"width\", (gridBox.width - gridPaddingLeft - gridPaddingRight) + \"px\")\n .style(\"height\", (gridBox.height - gridPaddingTop - gridPaddingBottom) + \"px\")\n .each(\"end\", function () {\n targetElement.style(\"background-color\", context.maximizedBackgroundColor());\n context\n .resize({\n width: (gridBox.width - gridPaddingLeft - gridPaddingRight),\n height: (gridBox.height - gridPaddingTop - gridPaddingBottom)\n })\n .render(function () {\n context.contentDiv.transition()\n .style(\"opacity\", 1);\n });\n buttonWidget.value(\"\\uf2d1\").render();\n });\n }\n\n d3Select(target).classed(\"__hpccisMaximized\", !isMaximized);\n };\n\n this._legendButton = new Input()\n .classed({ \"composite_MegaChart-legend\": true })\n .id(this.id() + \"_legend\")\n .type(\"checkbox\")\n .inlineLabel(\"Legend: \")\n ;\n this._legendButton.click = function (a) {\n context.render();\n };\n\n this._chartTypeSelect = new Select()\n .classed({ \"composite_MegaChart-chartType\": true })\n .id(this.id() + \"_chartType\")\n .selectOptions(this._allChartTypes.map(function (a) { return [a.id, a.display]; }))\n .value(this.chartType())\n ;\n this._chartTypeSelect.change = function (a) {\n context.chartType(a.value()).render();\n };\n\n this.setContent(\"center\", this._chart);\n\n this._legend\n .targetWidget(this._chart)\n .orientation([\"top\", \"bottom\"].indexOf(this.legendPosition()) !== -1 ? \"horizontal\" : \"vertical\")\n .fixedSize(true)\n ;\n\n this._prevLegendPosition = this.legendPosition();\n\n if (this.valueAxisTitle()) {\n this.setContent(\"left\", this._valueTitle.rotation(-90)).leftShrinkWrap(true);\n }\n if (this.domainAxisTitle()) {\n this.setContent(\"bottom\", this._domainTitle).bottomShrinkWrap(true);\n }\n\n if (this.legendPosition() !== \"none\") {\n this.setContent(this.legendPosition(), this._legend)[this.legendPosition() + \"ShrinkWrap\"](true);\n }\n }\n\n update(domNode, element) {\n function showHideButton(twArr2, button, show) {\n if (show && twArr2.indexOf(button) === -1) {\n twArr2.push(button);\n } else if (!show) {\n const idx = twArr2.indexOf(button);\n if (idx >= 0) {\n twArr2.splice(idx, 1);\n }\n }\n }\n\n if (this._chart && typeof this._chart.hideRowOnLegendClick === \"function\") {\n this._chart.hideRowOnLegendClick(this.hideRowOnLegendClick());\n }\n\n this._dataCount.html('<span class=\"MegaChart-dataCount-label\">Count:</span>&nbsp;<span class=\"MegaChart-dataCount-value\">' + (this.data() ? this.data().length : \"0\") + \"</span>\");\n\n this._chartTypeSelect.value(this.chartType());\n const twArr = this.toolbarWidgets();\n showHideButton(twArr, this._csvButton, this.showCSV());\n showHideButton(twArr, this._maximizeButton, this.showMaximize());\n showHideButton(twArr, this._legendButton, this.toolbarShowLegend());\n showHideButton(twArr, this._chartTypeSelect, this.showChartSelect());\n showHideButton(twArr, this._infoButton, this.showInfoButton());\n showHideButton(twArr, this._dataCount, this.showCount());\n this.toolbarWidgets(twArr);\n\n if (this._prevShowToolbar !== this.showToolbar()) {\n this.setContent(\"top\", this.showToolbar() ? this._toolbar : null);\n this._prevShowToolbar = this.showToolbar();\n }\n\n // TODO: Proxy + themes not working...\n this._toolbar\n .fontSize(this.titleFontSize())\n .fontColor(this.titleFontColor())\n .fontFamily(this.titleFontFamily())\n .fontBold(this.titleFontBold())\n .backgroundColor(this.titleBackgroundColor())\n ;\n\n this._chart\n .data(this.data());\n\n if (this._chart.chartType() !== this.chartType()) {\n this._chart.chartType(this.chartType());\n }\n\n let legendPosition = this.legendPosition();\n if (this.toolbarShowLegend() && !this._legendButton.checked()) {\n legendPosition = \"none\";\n }\n if (this._prevLegendPosition !== legendPosition) {\n if (this._prevLegendPosition !== \"none\") {\n this.clearContent(this._prevLegendPosition);\n }\n this._prevLegendPosition = legendPosition;\n if (legendPosition !== \"none\") {\n this._legend = new Legend().targetWidget(this.getContent(\"center\").fixedSize(true));\n this.setContent(legendPosition, this._legend);\n this._legend.orientation([\"top\", \"bottom\"].indexOf(legendPosition) !== -1 ? \"horizontal\" : \"vertical\");\n }\n }\n this._contentClasses = this.getContentClasses();\n\n if (this.valueAxisTitle() && this._contentClasses.left !== \"common_Text\") {\n if (legendPosition !== \"left\") {\n this.setContent(\"left\", this._valueTitle.rotation(-90));\n }\n }\n if (this.domainAxisTitle() && this._contentClasses.bottom !== \"common_Text\") {\n if (legendPosition !== \"bottom\") {\n this.setContent(\"bottom\", this._domainTitle).bottomShrinkWrap(true);\n }\n }\n\n this._legend.dataFamily(this._chart.getChartDataFamily());\n\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n getContentClasses() {\n const obj: any = {};\n const t = this.getContent(\"top\");\n const r = this.getContent(\"right\");\n const b = this.getContent(\"bottom\");\n const l = this.getContent(\"left\");\n obj.top = t !== null ? t.classID() : undefined;\n obj.right = r !== null ? r.classID() : undefined;\n obj.bottom = b !== null ? b.classID() : undefined;\n obj.left = l !== null ? l.classID() : undefined;\n return obj;\n }\n\n serializeState() {\n const state: any = {\n title: this.title(),\n data: this.data()\n };\n const chart = this.chart();\n if (chart) {\n if (chart.serializeState) {\n state.chart = chart.serializeState();\n delete state.chart.data;\n }\n }\n return state;\n }\n\n deserializeState(state) {\n if (state) {\n this\n .title(state.title)\n .data(state.data)\n ;\n const chart = this.chart();\n if (chart && state.chart) {\n if (chart.serializeState) {\n chart.deserializeState(state.chart);\n }\n }\n }\n return this;\n }\n\n // Events ---\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n vertex_click(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex click: \" + more.vertex.id());\n }\n }\n\n vertex_dblclick(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex double click: \" + more.vertex.id());\n }\n }\n\n edge_click(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge click: \" + more.edge.id());\n }\n }\n\n edge_dblclick(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge double click: \" + more.edge.id());\n }\n }\n\n hideRowOnLegendClick: { (): boolean; (_: boolean): MegaChart };\n hideRowOnLegendClick_exists: () => boolean;\n showToolbar: { (): boolean; (_: boolean): MegaChart };\n showToolbar_exists: () => boolean;\n titleFontSize: { (): number; (_: number): MegaChart };\n titleFontSize_exists: () => boolean;\n titleFontColor: { (): string; (_: string): MegaChart };\n titleFontColor_exists: () => boolean;\n titleFontFamily: { (): string; (_: string): MegaChart };\n titleFontFamily_exists: () => boolean;\n titleFontBold: { (): boolean; (_: boolean): MegaChart };\n titleFontBold_exists: () => boolean;\n titleBackgroundColor: { (): string; (_: string): MegaChart };\n titleBackgroundColor_exists: () => boolean;\n maximizedBackgroundColor: { (): string; (_: string): MegaChart };\n maximizedBackgroundColor_exists: () => boolean;\n showChartSelect: { (): boolean; (_: boolean): MegaChart };\n showChartSelect_exists: () => boolean;\n showCSV: { (): boolean; (_: boolean): MegaChart };\n showCSV_exists: () => boolean;\n showCount: { (): boolean; (_: boolean): MegaChart };\n showCount_exists: () => boolean;\n showMaximize: { (): boolean; (_: boolean): MegaChart };\n showMaximize_exists: () => boolean;\n toolbarShowLegend: { (): boolean; (_: boolean): MegaChart };\n toolbarShowLegend_exists: () => boolean;\n showInfoButton: { (): boolean; (_: boolean): MegaChart };\n showInfoButton_exists: () => boolean;\n infoIcon: { (): string; (_: string): MegaChart };\n infoIcon_exists: () => boolean;\n legendPosition: { (): string; (_: string): MegaChart };\n legendPosition_exists: () => boolean;\n\n title: { (): string; (_: string): MegaChart };\n title_exists: () => boolean;\n\n domainAxisTitle: { (): string; (_: string): MegaChart };\n domainAxisTitle_exists: () => boolean;\n valueAxisTitle: { (): string; (_: string): MegaChart };\n valueAxisTitle_exists: () => boolean;\n\n chartType: { (): string; (_: string): MegaChart };\n chartType_exists: () => boolean;\n chart: { (): any; (_: any): MegaChart };\n chart_exists: () => boolean;\n}\nMegaChart.prototype._class += \" composite_MegaChart\";\n\nMegaChart.prototype._1DChartTypes = MultiChart.prototype._1DChartTypes;\nMegaChart.prototype._2DChartTypes = MultiChart.prototype._2DChartTypes;\nMegaChart.prototype._NDChartTypes = MultiChart.prototype._NDChartTypes;\nMegaChart.prototype._anyChartTypes = MultiChart.prototype._anyChartTypes;\nMegaChart.prototype._allChartTypes = MultiChart.prototype._allChartTypes;\n\nMegaChart.prototype.publishReset();\n\nMegaChart.prototype.publish(\"hideRowOnLegendClick\", false, \"boolean\", \"Enable/Disable hiding row on legend clicks\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showToolbar\", true, \"boolean\", \"Enable/Disable Toolbar widget\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publishProxy(\"title\", \"_toolbar\", \"title\");\nMegaChart.prototype.publish(\"ddlParamsFormat\", \"\", \"string\", \"DDL Param Format '{fname}, {lname}'\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleBackgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: true });\nMegaChart.prototype.publish(\"maximizedBackgroundColor\", \"#FFFFFF\", \"html-color\", \"Background Color while maximized\", null, { tags: [\"Intermediate\"], optional: true });\n\nMegaChart.prototype.publish(\"showChartSelect\", true, \"boolean\", \"Show/Hide the chartType dropdown in the toolbar\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showCSV\", true, \"boolean\", \"Show/Hide CSV button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showCount\", false, \"boolean\", \"Show/Hide Data Count\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showMaximize\", false, \"boolean\", \"Show/Hide Maximize button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"toolbarShowLegend\", false, \"boolean\", \"Show/Hide Legend button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showInfoButton\", false, \"boolean\", \"Show/Hide Info button in toolbar\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"infoIcon\", \"\\uf05a\", \"string\", \"Help Icon\", null, { tags: [\"Basic\"] });\n\nMegaChart.prototype.publish(\"legendPosition\", \"none\", \"set\", \"Position of the Legend widget\", [\"none\", \"top\", \"right\", \"bottom\", \"left\"], { tags: [\"Basic\"] });\nMegaChart.prototype.publishProxy(\"legendFormat\", \"_legend\", \"rainbowFormat\");\nMegaChart.prototype.publishProxy(\"legendBins\", \"_legend\", \"rainbowBins\");\n\nMegaChart.prototype.publishProxy(\"domainAxisTitle\", \"_domainTitle\", \"text\");\nMegaChart.prototype.publishProxy(\"valueAxisTitle\", \"_valueTitle\", \"text\");\n\nMegaChart.prototype.publishProxy(\"chartType\", \"_chart\", \"chartType\");\nMegaChart.prototype.publishProxy(\"chart\", \"_chart\", \"chart\");\n","import { Platform, Utility, Widget } from \"@hpcc-js/common\";\nimport { Persist } from \"@hpcc-js/other\";\nimport { requireWidget } from \"./Utility.ts\";\n\nexport function retrofit_114_serialization(state, replacement_version) {\n replacement_version = !replacement_version || replacement_version === \"1.14.2-dev\" ? \"1.18.0\" : replacement_version;\n if (!state.__version) return state;\n const state_version_obj = Utility.parseVersionString(state.__version);\n const target_version_obj = Utility.parseVersionString(replacement_version);\n if (state_version_obj.major === 1 && state_version_obj.minor === 14) {\n console.info(\"Upgrading old persist from \" + state.__version + \" to \" + replacement_version);\n let _json_str = JSON.stringify(state);\n _json_str = _json_str.split('\"' + state.__version).join('\"' + replacement_version);\n\n const ret_obj = JSON.parse(_json_str);\n if (ret_obj.__properties && ret_obj.__properties.content) {\n ret_obj.__properties.content.forEach(function (n) {// FOR EACH top tier layout_Cell\n if (JSON.stringify(n).split(\"graph_Graph\").length > 1 && target_version_obj.minor >= 16) {\n n.__properties.widget.__id = n.__properties.widget.__properties.widget.__id;\n n.__properties.widget.__class = \"composite_MegaChart\";\n n.__properties.widget.__properties.showCSV = false;\n n.__properties.widget.__properties.chartType = \"GRAPH\";\n n.__properties.widget.__properties.chart = n.__properties.widget.__properties.widget;\n delete n.__properties.widget.__properties.chart.__id;\n delete n.__properties.widget.__properties.widget;\n }\n if (\"undefined\" === typeof n.__properties.fields) {\n n.__properties.fields = [];\n }\n });\n }\n return ret_obj;\n } else {\n return state;\n }\n}\n\nexport function deserializeFromObject(widget, state) {\n const promises = [];\n Persist.widgetPropertyWalker(widget, null, (w, item) => {\n w[item.id + \"_reset\"]();\n if (state.__properties[item.id] !== undefined) {\n switch (item.type) {\n case \"widget\":\n const widgetKey = item.id;\n promises.push(create(state.__properties[item.id]).then((w2: any) => {\n w2._owner = w;\n w[widgetKey](w2);\n return w2;\n }));\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n const widgetArrayKey = item.id;\n const widgetStateArray = state.__properties[item.id];\n if (widgetStateArray.length) {\n const arrPromises = [];\n for (const widgetState of widgetStateArray) {\n arrPromises.push(create(widgetState).then((widgetItem: any) => {\n widgetItem._owner = w;\n return widgetItem;\n }));\n }\n promises.push(Promise.all(arrPromises).then(widgetArray => {\n w[widgetArrayKey](widgetArray);\n }));\n }\n break;\n default:\n w[item.id](state.__properties[item.id]);\n break;\n }\n }\n });\n return Promise.all(promises).then(widgets => {\n if (state.__data) {\n for (const key in state.__data) {\n if (state.__data.HasOwnProperty(key)) {\n switch (key) {\n case \"data\":\n widget.data(state.__data[key]);\n break;\n default:\n console.warn(\"Unexpected __data item: \" + key);\n widget[key](state.__data[key]);\n break;\n }\n }\n }\n }\n if (state.__state) {\n if (widget.deserializeState) {\n widget.deserializeState(state.__state);\n } else if (state.__state.data && widget.data) {\n widget.data(state.__state.data);\n }\n }\n return widget;\n });\n}\n\nexport function deserialize(widget, state) {\n if (typeof state === \"string\") {\n state = JSON.parse(state);\n }\n if (state.__id && state.__id.indexOf(widget._idSeed) !== 0 && widget._id !== state.__id) {\n console.warn(\"Deserialize: IDs do not match - \" + widget._id);\n }\n deserializeFromObject(widget, state);\n}\n\nexport function create(state: any): Promise<Widget> {\n if (typeof state === \"string\") {\n state = JSON.parse(state);\n }\n state = retrofit_114_serialization(state, Platform.version());\n return requireWidget(state.__class).then((WidgetClass: any) => {\n const widget = new WidgetClass();\n if (state.__id && state.__id.indexOf(widget._idSeed) !== 0 && state.__id.indexOf(\"_pe\") !== 0) {\n widget._id = state.__id;\n }\n return deserializeFromObject(widget, state);\n }).catch(function (e) {\n console.error(\"Persist.create: ***exception***\");\n console.error(e);\n });\n}\n\nexport function clone(widget) {\n create(Persist.serializeToObject(widget, undefined, true, true));\n}\n"],"names":["__defProp","__defNormalProp","__publicField","Utility","d3Map","Legend","Button","a","d3Select","Persist"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../layout/dist/index.js","../src/Utility.ts","../src/MultiChart.ts","../src/ChartPanel.ts","../src/Dermatology.ts","../src/MegaChart.ts","../src/Persist.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/composite\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { HTMLWidget, FAChar, select, selectAll, Utility, d3Event, Platform, drag, scaleLinear, dispatch, formatPrefix, format, formatLocale, formatSpecifier, sum, SVGWidget, Database, Palette, scaleOrdinal, ProgressBar, ToggleButton, Text, Button, Spacer, TitleBar, IconBar } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { instanceOfIHighlight } from \"@hpcc-js/api\";\nfunction _mergeNamespaces(n, m) {\n for (var i = 0; i < m.length; i++) {\n const e = m[i];\n if (typeof e !== \"string\" && !Array.isArray(e)) {\n for (const k2 in e) {\n if (k2 !== \"default\" && !(k2 in n)) {\n const d = Object.getOwnPropertyDescriptor(e, k2);\n if (d) {\n Object.defineProperty(n, k2, d.get ? d : {\n enumerable: true,\n get: /* @__PURE__ */ __name(() => e[k2], \"get\")\n });\n }\n }\n }\n }\n }\n return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: \"Module\" }));\n}\n__name(_mergeNamespaces, \"_mergeNamespaces\");\nconst PKG_NAME = \"@hpcc-js/layout\";\nconst PKG_VERSION = \"3.1.1\";\nconst BUILD_VERSION = \"3.2.1\";\nconst _AbsoluteSurface = class _AbsoluteSurface extends HTMLWidget {\n constructor() {\n super();\n this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n super.update(domNode, element);\n let xPos = 0;\n let yPos = 0;\n let width = this.clientWidth();\n let height = this.clientHeight();\n switch (this.units()) {\n case \"pixels\":\n xPos = this.widgetX();\n yPos = this.widgetY();\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth());\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight());\n break;\n case \"percent\":\n xPos = this.widgetX() * width / 100;\n yPos = this.widgetY() * height / 100;\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth()) * width / 100;\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight()) * height / 100;\n break;\n }\n element.style(\"opacity\", this.opacity());\n const widgets = element.selectAll(\"#\" + this._id + \" > .placeholder\").data(this.widget() ? [this.widget()] : [], function(d) {\n return d._id;\n });\n widgets.enter().append(\"div\").attr(\"class\", \"placeholder\").each(function(d) {\n d.target(this);\n }).merge(widgets).style(\"left\", xPos + \"px\").style(\"top\", yPos + \"px\").style(\"width\", width + \"px\").style(\"bottom\", height + \"px\").each(function(d) {\n d.resize({ width, height });\n });\n widgets.exit().each(function(d) {\n d.target(null);\n }).remove();\n }\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n};\n__name(_AbsoluteSurface, \"AbsoluteSurface\");\nlet AbsoluteSurface = _AbsoluteSurface;\nAbsoluteSurface.prototype._class += \" layout_AbsoluteSurface\";\nAbsoluteSurface.prototype.publish(\"units\", \"percent\", \"set\", \"Units\", [\"pixels\", \"percent\"]);\nAbsoluteSurface.prototype.publish(\"widgetX\", 0, \"number\", \"Widget XPos\");\nAbsoluteSurface.prototype.publish(\"widgetY\", 0, \"number\", \"Widget YPos\");\nAbsoluteSurface.prototype.publish(\"widgetWidth\", \"100\", \"string\", \"Widget Width, omit for full\");\nAbsoluteSurface.prototype.publish(\"widgetHeight\", \"100\", \"string\", \"Widget Height, omit for full\");\nAbsoluteSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nAbsoluteSurface.prototype.publish(\"opacity\", 1, \"number\", \"Opacity\");\nconst _Accordion = class _Accordion extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_isClosed\");\n __publicField(this, \"titleSpan\");\n __publicField(this, \"iconDiv\");\n __publicField(this, \"ul\");\n __publicField(this, \"icon\");\n this._tag = \"div\";\n this._isClosed = false;\n }\n pushListItem(widget, prepend = false, protect = false) {\n const contentArr = this.content();\n widget._protected = protect;\n if (prepend) {\n contentArr.unshift(widget);\n } else {\n contentArr.push(widget);\n }\n this.content(contentArr);\n return this;\n }\n clearListItems() {\n const arr = [];\n for (const i in this.content()) {\n if (this.content()[i]._protected) {\n arr.push(this.content()[i]);\n }\n }\n this.content(arr);\n return this;\n }\n collapseClick(element) {\n if (element.classed(\"closed\")) {\n this._isClosed = false;\n element.classed(\"open\", true);\n element.classed(\"closed\", false);\n } else {\n this._isClosed = true;\n element.classed(\"open\", false);\n element.classed(\"closed\", true);\n }\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n this._isClosed = this.defaultCollapsed();\n element.classed(this._isClosed ? \"closed\" : \"open\", true);\n this.titleSpan = element.append(\"span\").classed(\"collapsible-title\", true);\n this.iconDiv = element.append(\"div\").classed(\"collapsible-icon\", true);\n this.ul = element.append(\"ul\");\n this.icon = new FAChar().size({ height: 24, width: 24 }).target(this.iconDiv.node());\n this.iconDiv.on(\"click\", function() {\n context.collapseClick(element);\n context.render();\n });\n this.titleSpan.on(\"click\", function() {\n context.collapseClick(element);\n context.render();\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const this_id = \"\";\n this.titleSpan.text(context.title().length > 0 ? context.title() + this_id : \"Accordion [\" + context._id + \"]\" + this_id);\n const rows = this.ul.selectAll(\"#\" + context._id + \" > ul > li\").data(this.content(), function(d) {\n return d._id;\n });\n rows.enter().append(function(widget) {\n const li = document.createElement(\"li\");\n if (widget._target === null) {\n const wSize = widget.size();\n if (wSize.width === 0 || wSize.height === 0) {\n const cSize = context.size();\n widget.size({\n width: cSize.width,\n height: cSize.width\n });\n }\n widget.target(li);\n } else {\n return widget._target;\n }\n return li;\n });\n rows.exit().remove();\n this.icon.text_colorFill(this.titleFontColor()).char(this._isClosed ? this.closedIcon() : this.openIcon()).render();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n};\n__name(_Accordion, \"Accordion\");\nlet Accordion = _Accordion;\nAccordion.prototype._class += \" layout_Accordion\";\nAccordion.prototype.publish(\"content\", [], \"widgetArray\", \"Array of widgets\", null, { tags: [\"Basic\"] });\nAccordion.prototype.publish(\"title\", \"\", \"string\", \"Title of collapsible section\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"openIcon\", \"\", \"string\", \"Icon to display when list is open\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"closedIcon\", \"\", \"string\", \"Icon to display when list is closed\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleFontColor\", \"#FFFFFF\", \"html-color\", \"Title font color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleBackgroundColor\", \"#333333\", \"html-color\", \"Title background color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"defaultCollapsed\", false, \"boolean\", \"Collapsed by default if true\", null, { tags: [\"Private\"] });\nconst _Surface = class _Surface extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_surfaceButtons\");\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n widgetSize(titleDiv, widgetDiv) {\n let width = this.clientWidth();\n let height = this.clientHeight();\n if (this.title()) {\n height -= this.calcHeight(titleDiv);\n }\n height -= this.calcFrameHeight(widgetDiv);\n width -= this.calcFrameWidth(widgetDiv);\n return { width, height };\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element2) {\n super.update(domNode, element2);\n const context = this;\n element2.classed(\"shadow2\", this.surfaceShadow()).style(\"border-width\", this.surfaceBorderWidth_exists() ? this.surfaceBorderWidth() + \"px\" : null).style(\"border-color\", this.surfaceBorderColor()).style(\"border-radius\", this.surfaceBorderRadius_exists() ? this.surfaceBorderRadius() + \"px\" : null).style(\"background-color\", this.surfaceBackgroundColor());\n const titles = element2.selectAll(\".surfaceTitle\").data(this.title() ? [this.title()] : []);\n titles.enter().insert(\"h3\", \"div\").attr(\"class\", \"surfaceTitle\").merge(titles).text(function(d) {\n return d;\n }).style(\"text-align\", this.surfaceTitleAlignment()).style(\"color\", this.surfaceTitleFontColor()).style(\"font-size\", this.surfaceTitleFontSize_exists() ? this.surfaceTitleFontSize() + \"px\" : null).style(\"font-family\", this.surfaceTitleFontFamily()).style(\"font-weight\", this.surfaceTitleFontBold() ? \"bold\" : \"normal\").style(\"background-color\", this.surfaceTitleBackgroundColor()).style(\"padding\", this.surfaceTitlePadding_exists() ? this.surfaceTitlePadding() + \"px\" : null).style(\"title\", this.altText_exists() ? this.altText() : null);\n titles.exit().remove();\n const surfaceTitle = element2.select(\".surfaceTitle\");\n const surfaceButtons = surfaceTitle.append(\"div\").attr(\"class\", \"html-button-container\").selectAll(\".surface-button\").data(this.buttonAnnotations());\n surfaceButtons.enter().append(\"button\").classed(\"surface-button\", true).each(function(button, idx) {\n const el = context._surfaceButtons[idx] = select(this).attr(\"class\", \"surface-button\" + (button.class ? \" \" + button.class : \"\")).attr(\"id\", button.id).style(\"padding\", button.padding).style(\"width\", button.width).style(\"height\", button.height).style(\"cursor\", \"pointer\");\n if (button.font === \"FontAwesome\") {\n el.style(\"background\", \"transparent\").style(\"border\", \"none\").on(\"click\", function(d) {\n context.click(d);\n }).append(\"i\").attr(\"class\", \"fa\").text(function() {\n return button.label;\n });\n } else {\n el.text(function() {\n return button.label;\n }).on(\"click\", function(d) {\n context.click(d);\n });\n }\n });\n surfaceButtons.exit().each(function(_d, idx) {\n const element = select(this);\n delete context._surfaceButtons[idx];\n element.remove();\n });\n const widgets = element2.selectAll(\"#\" + this._id + \" > .surfaceWidget\").data(this.widget() ? [this.widget()] : [], function(d) {\n return d._id;\n });\n widgets.enter().append(\"div\").attr(\"class\", \"surfaceWidget\").each(function(d) {\n select(context.element().node().parentElement).classed(\"content-icon content-icon-\" + d.classID().split(\"_\")[1], true);\n d.target(this);\n }).merge(widgets).style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null).each(function(d) {\n const widgetSize = context.widgetSize(element2.select(\"h3\"), select(this));\n if (widgetSize.width < 0) widgetSize.width = 0;\n if (widgetSize.height < 0) widgetSize.height = 0;\n d.resize({ width: widgetSize.width, height: widgetSize.height });\n });\n widgets.exit().each(function(d) {\n d.target(null);\n }).remove();\n }\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n // Events ---\n click(obj) {\n }\n};\n__name(_Surface, \"Surface\");\nlet Surface = _Surface;\nSurface.prototype._class += \" layout_Surface\";\nSurface.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"altText\", null, \"string\", \"Alt text\", null, { optional: true });\nSurface.prototype.publish(\"surfaceTitlePadding\", null, \"number\", \"Title Padding (px)\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleBackgroundColor\", null, \"html-color\", \"Title Background Color\", null, { tags: [\"Advanced\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceTitleAlignment\", \"center\", \"set\", \"Title Alignment\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], disable: /* @__PURE__ */ __name((w) => !w.title(), \"disable\") });\nSurface.prototype.publish(\"surfaceShadow\", false, \"boolean\", \"3D Shadow\");\nSurface.prototype.publish(\"surfacePadding\", null, \"string\", \"Surface Padding (px)\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderWidth\", null, \"number\", \"Surface Border Width (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderColor\", null, \"html-color\", \"Surface Border Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderRadius\", null, \"number\", \"Surface Border Radius (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Private\"] });\nSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"] });\nconst _Cell = class _Cell extends Surface {\n constructor() {\n super();\n __publicField(this, \"_indicateTheseIds\");\n this._indicateTheseIds = [];\n }\n indicateTheseIds(_) {\n if (!arguments.length) return this._indicateTheseIds;\n this._indicateTheseIds = _;\n return this;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.classed(\"layout_Surface\", true).on(\"mouseenter\", function() {\n context.onMouseEnter();\n }).on(\"mouseleave\", function() {\n context.onMouseLeave();\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n }\n onMouseEnter() {\n const arr = this.indicateTheseIds();\n const opacity = this.indicatorOpacity();\n const indicatorBorderColor = this.indicatorBorderColor();\n const indicatorGlowColor = this.indicatorGlowColor();\n for (let i = 0; i < arr.length; i++) {\n const otherElement = select(\"#\" + arr[i]);\n const otherWidget = otherElement.datum();\n if (otherElement && otherWidget) {\n otherElement.append(\"div\").attr(\"class\", \"update-indicator\").style(\"width\", otherWidget.width() + \"px\").style(\"height\", otherWidget.height() + \"px\").style(\"opacity\", opacity).style(\"border-color\", indicatorBorderColor).style(\"-webkit-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor).style(\"-moz-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor).style(\"box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor);\n }\n }\n }\n onMouseLeave() {\n const arr = this.indicateTheseIds();\n for (let i = 0; i < arr.length; i++) {\n selectAll(\"#\" + arr[i] + \" > div.update-indicator\").remove();\n }\n }\n};\n__name(_Cell, \"Cell\");\nlet Cell = _Cell;\nCell.prototype._class += \" layout_Cell\";\nCell.prototype.publish(\"gridRow\", 0, \"number\", \"Grid Row Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridCol\", 0, \"number\", \"Grid Column Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridRowSpan\", 1, \"number\", \"Grid Row Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridColSpan\", 1, \"number\", \"Grid Column Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"indicatorGlowColor\", \"#EEEE11\", \"html-color\", \"Glow color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorBorderColor\", \"#F48A00\", \"html-color\", \"Border color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorOpacity\", 0.8, \"number\", \"Opacity of update-indicator\", null, { tags: [\"Basic\"] });\nconst _Border = class _Border extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_colCount\");\n __publicField(this, \"_rowCount\");\n __publicField(this, \"_colSize\");\n __publicField(this, \"_rowSize\");\n __publicField(this, \"_shrinkWrapBoxes\");\n __publicField(this, \"_watch\");\n __publicField(this, \"_offsetX\");\n __publicField(this, \"_offsetY\");\n __publicField(this, \"_dragCell\");\n __publicField(this, \"_dragCellSize\");\n __publicField(this, \"_dragCellStartSize\");\n __publicField(this, \"_handleTop\");\n __publicField(this, \"_handleLeft\");\n __publicField(this, \"_dragPrevX\");\n __publicField(this, \"_dragPrevY\");\n __publicField(this, \"_cellSizes\");\n __publicField(this, \"contentDiv\");\n __publicField(this, \"_scrollBarWidth\");\n __publicField(this, \"_borderHandles\");\n __publicField(this, \"_sectionTypeArr\");\n __publicField(this, \"lazyPostUpdate\", Utility.debounce(function() {\n this.postUpdate();\n }, 100));\n this._tag = \"div\";\n this._colCount = 0;\n this._rowCount = 0;\n this._colSize = 0;\n this._rowSize = 0;\n this._shrinkWrapBoxes = {};\n this.content([]);\n this.sectionTypes([]);\n }\n watchWidget(widget) {\n if (this._watch === void 0) {\n this._watch = {};\n }\n if (this._watch[widget.id()]) {\n this._watch[widget.id()].remove();\n delete this._watch[widget.id()];\n }\n if (widget) {\n const context = this;\n this._watch[widget.id()] = widget.monitor(function(paramId, newVal, oldVal) {\n if (oldVal !== newVal) {\n context.lazyPostUpdate();\n }\n });\n }\n }\n applyLayoutType() {\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function(cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = this.cellSpecificDragHandles(this.sectionTypes()[i]);\n }, this);\n }\n cellSpecificDragHandles(sectionType) {\n switch (sectionType) {\n case \"top\":\n return [\"s\"];\n case \"right\":\n return [\"w\"];\n case \"bottom\":\n return [\"n\"];\n case \"left\":\n return [\"e\"];\n case \"center\":\n return [];\n }\n }\n borderLayoutObject(layoutType) {\n const retObj = {};\n const context = this;\n let topSize;\n let topPerc;\n let bottomSize;\n let bottomPerc;\n let leftSize;\n let leftPerc;\n let rightSize;\n let rightPerc;\n const bcRect = this.target().getBoundingClientRect();\n bcRect.top;\n bcRect.left;\n bcRect.bottom;\n bcRect.right;\n if (this.target() instanceof SVGElement) {\n parseFloat(this.target().getAttribute(\"width\"));\n parseFloat(this.target().getAttribute(\"height\"));\n } else {\n bcRect.width;\n bcRect.height;\n }\n if (this.sectionTypes().indexOf(\"top\") !== -1) {\n topSize = this.topSize();\n topPerc = this.topPercentage();\n if (typeof this._shrinkWrapBoxes[\"top\"] !== \"undefined\") {\n topSize = this._shrinkWrapBoxes[\"top\"].height + this.gutter();\n topPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"bottom\") !== -1) {\n bottomSize = this.bottomSize();\n bottomPerc = this.bottomPercentage();\n if (typeof this._shrinkWrapBoxes[\"bottom\"] !== \"undefined\") {\n bottomSize = this._shrinkWrapBoxes[\"bottom\"].height + this.gutter();\n bottomPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"left\") !== -1) {\n leftSize = this.leftSize();\n leftPerc = this.leftPercentage();\n if (typeof this._shrinkWrapBoxes[\"left\"] !== \"undefined\") {\n leftSize = this._shrinkWrapBoxes[\"left\"].width + this.gutter();\n leftPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"right\") !== -1) {\n rightSize = this.rightSize();\n rightPerc = this.rightPercentage();\n if (typeof this._shrinkWrapBoxes[\"right\"] !== \"undefined\") {\n rightSize = this._shrinkWrapBoxes[\"right\"].width + this.gutter();\n rightPerc = 0;\n }\n }\n const t = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": topSize, \"%\": topPerc },\n top: { \"px\": 0, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const b = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": bottomSize, \"%\": bottomPerc },\n top: { \"px\": 0, \"%\": 100 },\n left: { \"px\": 0, \"%\": 0 }\n });\n b.top -= b.height;\n const l = _sectionPlacementObject({\n width: { \"px\": leftSize, \"%\": leftPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const r = _sectionPlacementObject({\n width: { \"px\": rightSize, \"%\": rightPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 100 }\n });\n r.left -= r.width;\n const c2 = _sectionPlacementObject({\n width: { \"px\": -r.width - l.width, \"%\": 100 },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": l.width, \"%\": 0 }\n });\n retObj[\"top\"] = t;\n retObj[\"bottom\"] = b;\n retObj[\"right\"] = r;\n retObj[\"left\"] = l;\n retObj[\"center\"] = c2;\n return retObj;\n function _sectionPlacementObject(obj) {\n obj.width[\"px\"] = typeof obj.width[\"px\"] !== \"undefined\" ? obj.width[\"px\"] : 0;\n obj.width[\"%\"] = typeof obj.width[\"%\"] !== \"undefined\" ? obj.width[\"%\"] : 0;\n obj.height[\"px\"] = typeof obj.height[\"px\"] !== \"undefined\" ? obj.height[\"px\"] : 0;\n obj.height[\"%\"] = typeof obj.height[\"%\"] !== \"undefined\" ? obj.height[\"%\"] : 0;\n const ret = {\n width: obj.width[\"px\"] + obj.width[\"%\"] / 100 * context.width(),\n height: obj.height[\"px\"] + obj.height[\"%\"] / 100 * context.height(),\n top: obj.top[\"px\"] + obj.top[\"%\"] / 100 * context.height() + context.gutter() / 2,\n left: obj.left[\"px\"] + obj.left[\"%\"] / 100 * context.width() + context.gutter() / 2\n };\n return ret;\n }\n __name(_sectionPlacementObject, \"_sectionPlacementObject\");\n }\n clearContent(sectionType) {\n if (!sectionType) {\n this.content().forEach(function(contentWidget) {\n contentWidget.target(null);\n return false;\n });\n select(\"#\" + this.id() + \" > div.borderHandle\").classed(\"borderHandleDisabled\", true);\n delete this._watch;\n this.content([]);\n this.sectionTypes([]);\n } else {\n const idx = this.sectionTypes().indexOf(sectionType);\n if (idx >= 0) {\n if (this._watch && this.content()[idx]) {\n delete this._watch[this.content()[idx].id()];\n }\n this.content()[idx].target(null);\n select(\"#\" + this.id() + \" > div.borderHandle_\" + sectionType).classed(\"borderHandleDisabled\", true);\n this.content().splice(idx, 1);\n this.sectionTypes().splice(idx, 1);\n }\n }\n }\n hasContent(sectionType, widget, title) {\n return this.sectionTypes().indexOf(sectionType) >= 0;\n }\n setContent(sectionType, widget, title) {\n this.clearContent(sectionType);\n title = typeof title !== \"undefined\" ? title : \"\";\n if (widget) {\n const cell = new Cell().surfaceBorderWidth(0).widget(widget).title(title);\n this.watchWidget(widget);\n this.content().push(cell);\n this.sectionTypes().push(sectionType);\n }\n return this;\n }\n getCell(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx];\n }\n return null;\n }\n getContent(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx].widget();\n }\n return null;\n }\n setLayoutOffsets() {\n this._offsetX = this._element.node().getBoundingClientRect().left + this.gutter() / 2;\n this._offsetY = this._element.node().getBoundingClientRect().top + this.gutter() / 2;\n }\n dragStart(handle) {\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const context = this;\n this._dragCell = handle;\n this._dragCellStartSize = this[handle + \"Size\"]();\n if (this[handle + \"ShrinkWrap\"]()) {\n this[handle + \"Percentage\"](0);\n this[handle + \"ShrinkWrap\"](false);\n }\n const handleElm = select(\"#\" + context.id() + \" > div.borderHandle_\" + handle);\n context._handleTop = parseFloat(handleElm.style(\"top\").split(\"px\")[0]);\n context._handleLeft = parseFloat(handleElm.style(\"left\").split(\"px\")[0]);\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n dragTick(handle) {\n const context = this;\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n switch (handle) {\n case \"top\":\n case \"bottom\":\n _moveHandles(handle, yDelta);\n break;\n case \"right\":\n case \"left\":\n _moveHandles(handle, xDelta);\n break;\n }\n function _moveHandles(handle2, delta) {\n if (delta === 0) return;\n const handles = selectAll(\"#\" + context.id() + \" > div.borderHandle\");\n const grabbedHandle = select(\"#\" + context.id() + \" > div.borderHandle_\" + handle2);\n if (grabbedHandle.classed(\"borderHandle_top\")) {\n grabbedHandle.style(\"top\", context._handleTop - delta + \"px\");\n context._cellSizes.topHeight = context._handleTop - delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_right\")) {\n grabbedHandle.style(\"left\", context._handleLeft - delta + \"px\");\n context._cellSizes.rightWidth = context._cellSizes.width - context._handleLeft + delta;\n } else if (grabbedHandle.classed(\"borderHandle_bottom\")) {\n grabbedHandle.style(\"top\", context._handleTop - delta + \"px\");\n context._cellSizes.bottomHeight = context._cellSizes.height - context._handleTop + delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_left\")) {\n grabbedHandle.style(\"left\", context._handleLeft - delta + \"px\");\n context._cellSizes.leftWidth = context._handleLeft - delta;\n }\n handles.each(function() {\n const handle3 = select(this);\n if (handle3.classed(\"borderHandle_top\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", context._cellSizes.topHeight - 3 + \"px\");\n } else if (handle3.classed(\"borderHandle_right\")) {\n handle3.style(\"left\", context._cellSizes.width - context._cellSizes.rightWidth + \"px\");\n handle3.style(\"top\", context._cellSizes.topHeight + 3 + \"px\");\n handle3.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle3.classed(\"borderHandle_bottom\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", context._cellSizes.height - context._cellSizes.bottomHeight - 3 + \"px\");\n } else if (handle3.classed(\"borderHandle_left\")) {\n handle3.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle3.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle3.style(\"top\", context._cellSizes.topHeight + 3 + \"px\");\n }\n });\n }\n __name(_moveHandles, \"_moveHandles\");\n }\n dragEnd(handle) {\n if (handle) {\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n switch (handle) {\n case \"top\":\n if (yDelta !== 0) {\n this.topPercentage(0);\n this.topSize(this.topSize() === 0 ? this.getContent(\"top\").getBBox().height - yDelta : this.topSize() - yDelta);\n }\n break;\n case \"right\":\n if (xDelta !== 0) {\n this.rightPercentage(0);\n this.rightSize(this.rightSize() === 0 ? this.getContent(\"right\").getBBox().width + xDelta : this.rightSize() + xDelta);\n }\n break;\n case \"bottom\":\n if (yDelta !== 0) {\n this.bottomPercentage(0);\n this.bottomSize(this.bottomSize() === 0 ? this.getContent(\"bottom\").getBBox().height + yDelta : this.bottomSize() + yDelta);\n }\n break;\n case \"left\":\n if (xDelta !== 0) {\n this.leftPercentage(0);\n this.leftSize(this.leftSize() === 0 ? this.getContent(\"left\").getBBox().width - xDelta : this.leftSize() - xDelta);\n }\n break;\n }\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n this.render();\n }\n size(_) {\n const retVal = HTMLWidget.prototype.size.apply(this, arguments);\n if (arguments.length && this.contentDiv) {\n this.contentDiv.style(\"width\", this._size.width + \"px\").style(\"height\", this._size.height + \"px\");\n }\n return retVal;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.style(\"position\", \"relative\");\n this.contentDiv = element.append(\"div\").classed(\"border-content\", true);\n this._scrollBarWidth = Platform.getScrollbarWidth();\n this._borderHandles = [\"top\", \"left\", \"right\", \"bottom\"];\n const handles = element.selectAll(\"div.borderHandle\").data(this._borderHandles);\n handles.enter().append(\"div\").classed(\"borderHandle\", true).each(function(handle) {\n const h = select(this);\n h.classed(\"borderHandle_\" + handle, true).classed(\"borderHandleDisabled\", context.getContent(handle) === null);\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n this._sectionTypeArr = this.sectionTypes();\n const context = this;\n element.classed(\"design-mode\", this.designMode());\n this.setLayoutOffsets();\n const rows = this.contentDiv.selectAll(\".cell_\" + this._id).data(this.content(), function(d) {\n return d._id;\n });\n const rowsUpdate = rows.enter().append(\"div\").classed(\"cell_\" + this._id, true).style(\"position\", \"absolute\").each(function(d, i) {\n select(this).classed(\"border-cell border-cell-\" + context._sectionTypeArr[i], true);\n d.target(this);\n select(\"#\" + context.id() + \" > div.borderHandle_\" + context._sectionTypeArr[i]).classed(\"borderHandleDisabled\", false);\n }).merge(rows);\n rowsUpdate.each(function(d, idx) {\n const sectionType = context.sectionTypes()[idx];\n if (typeof context[sectionType + \"ShrinkWrap\"] !== \"undefined\" && context[sectionType + \"ShrinkWrap\"]()) {\n d.render();\n context._shrinkWrapBoxes[sectionType] = d.widget().getBBox(true);\n } else {\n delete context._shrinkWrapBoxes[sectionType];\n }\n });\n const drag$1 = drag().on(\"start\", function(d, i) {\n context.dragStart.call(context, d, i);\n }).on(\"drag\", function(d, i) {\n context.dragTick.call(context, d, i);\n }).on(\"end\", function(d, i) {\n context.dragEnd.call(context, d, i);\n });\n if (this.designMode()) {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").call(drag$1);\n } else {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").on(\".drag\", null);\n }\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function(cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = [];\n }, this);\n rowsUpdate.style(\"left\", function(d) {\n return d._fixedLeft + \"px\";\n }).style(\"top\", function(d) {\n return d._fixedTop + \"px\";\n }).style(\"width\", function(d) {\n return d._fixedWidth - context.gutter() + \"px\";\n }).style(\"height\", function(d) {\n return d._fixedHeight - context.gutter() + \"px\";\n }).each(function(d) {\n d._placeholderElement.attr(\"draggable\", context.designMode()).selectAll(\".dragHandle\").attr(\"draggable\", context.designMode());\n d.surfacePadding(context.surfacePadding()).resize();\n });\n rows.exit().each(function(d) {\n d.target(null);\n }).remove();\n this.getCellSizes();\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").each(function() {\n const handle = select(this);\n if (handle.classed(\"borderHandle_top\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", context._cellSizes.topHeight - 3 + \"px\");\n } else if (handle.classed(\"borderHandle_right\")) {\n handle.style(\"left\", context._cellSizes.width - context._cellSizes.rightWidth + \"px\");\n handle.style(\"top\", context._cellSizes.topHeight + 3 + \"px\");\n handle.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle.classed(\"borderHandle_bottom\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", context._cellSizes.height - context._cellSizes.bottomHeight - 3 + \"px\");\n } else if (handle.classed(\"borderHandle_left\")) {\n handle.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle.style(\"top\", context._cellSizes.topHeight + 3 + \"px\");\n }\n });\n }\n getCellSizes() {\n const context = this;\n context._cellSizes = {};\n const contentRect = this.element().node().getBoundingClientRect();\n context._cellSizes.width = contentRect.width;\n context._cellSizes.height = contentRect.height;\n this.element().selectAll(\"#\" + this.id() + \" > div > div.border-cell\").each(function() {\n const cell = select(this);\n if (typeof cell.node === \"function\") {\n const rect = cell.node().getBoundingClientRect();\n if (cell.classed(\"border-cell-top\")) {\n context._cellSizes.topHeight = rect.height;\n } else if (cell.classed(\"border-cell-left\")) {\n context._cellSizes.leftWidth = rect.width;\n context._cellSizes.leftHeight = rect.height;\n } else if (cell.classed(\"border-cell-right\")) {\n context._cellSizes.rightWidth = rect.width;\n context._cellSizes.rightHeight = rect.height;\n } else if (cell.classed(\"border-cell-bottom\")) {\n context._cellSizes.bottomHeight = rect.height;\n }\n }\n });\n const sizes = [\"height\", \"width\", \"topHeight\", \"bottomHeight\", \"leftHeight\", \"rightHeight\", \"leftWidth\", \"rightWidth\"];\n sizes.forEach(function(size) {\n context._cellSizes[size] = context._cellSizes[size] === void 0 ? 0 : context._cellSizes[size];\n });\n }\n postUpdate(domNode, element) {\n const context = this;\n this.content().forEach(function(n) {\n if (n._element.node() !== null && n.widget()) {\n const prevBox = n.widget().getBBox(false, true);\n const currBox = n.widget().getBBox(true, true);\n if (prevBox.width !== currBox.width || prevBox.height !== currBox.height) {\n context.lazyRender();\n }\n }\n });\n }\n exit(domNode, element) {\n this.content().forEach((w) => w.target(null));\n super.exit(domNode, element);\n }\n};\n__name(_Border, \"Border\");\nlet Border = _Border;\nBorder.prototype._class += \" layout_Border\";\nBorder.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nBorder.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"gutter\", 0, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\nBorder.prototype.publish(\"topShrinkWrap\", false, \"boolean\", \"'Top' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"leftShrinkWrap\", false, \"boolean\", \"'Left' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"rightShrinkWrap\", false, \"boolean\", \"'Right' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"bottomShrinkWrap\", false, \"boolean\", \"'Bottom' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"topSize\", 0, \"number\", \"Height of the 'Top' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftSize\", 0, \"number\", \"Width of the 'Left' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightSize\", 0, \"number\", \"Width of the 'Right' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomSize\", 0, \"number\", \"Height of the 'Bottom' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"topPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Top' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Left' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Right' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Bottom' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"surfacePadding\", 0, \"number\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"sectionTypes\", [], \"array\", \"Section Types sharing an index with 'content' - Used to determine position/size.\", null, { tags: [\"Private\"] });\nconst _WidgetDiv = class _WidgetDiv {\n constructor(div) {\n __publicField(this, \"_div\");\n __publicField(this, \"_overlay\", false);\n __publicField(this, \"_overflowX\", \"visible\");\n __publicField(this, \"_overflowY\", \"visible\");\n __publicField(this, \"_widget\");\n this._div = div;\n }\n overlay(_) {\n if (!arguments.length) return this._overlay;\n this._overlay = _;\n return this;\n }\n overflowX(_) {\n if (!arguments.length) return this._overflowX;\n this._overflowX = _;\n this._div.style(\"overflow-x\", _);\n return this;\n }\n overflowY(_) {\n if (!arguments.length) return this._overflowY;\n this._overflowY = _;\n this._div.style(\"overflow-y\", _);\n return this;\n }\n element() {\n return this._div;\n }\n node() {\n return this._div.node();\n }\n widget(_) {\n if (!arguments.length) return this._widget;\n if (this._widget !== _) {\n if (this._widget) {\n this._widget.target(null);\n }\n this._widget = _;\n if (this._widget) {\n this._widget.target(this._div.node());\n }\n }\n return this;\n }\n resize(size) {\n if (this._widget) {\n this._div.style(\"width\", `${size.width}px`).style(\"height\", `${size.height}px`);\n this._widget.resize(size);\n }\n return this;\n }\n async render(getBBox, availableHeight, availableWidth) {\n let overflowX = this.overflowX();\n if (!this.overlay() && overflowX === \"visible\") {\n overflowX = null;\n }\n let overflowY = this.overflowY();\n if (!this.overlay() && overflowY === \"visible\") {\n overflowY = null;\n }\n this._div.style(\"height\", this.overlay() ? \"0px\" : null).style(\"overflow-x\", overflowX).style(\"overflow-y\", overflowY);\n if (this._widget) {\n return this._widget.renderPromise().then((w) => {\n if (getBBox && this._widget.visible()) {\n const retVal = this._widget.getBBox();\n retVal.width += 8;\n if (availableHeight !== void 0 && retVal.height > availableHeight) {\n retVal.width += Platform.getScrollbarWidth();\n }\n if (availableWidth !== void 0 && retVal.width > availableWidth) {\n retVal.height += Platform.getScrollbarWidth();\n }\n if (this.overlay()) {\n retVal.height = 0;\n } else {\n retVal.height += 4;\n }\n return retVal;\n }\n return getBBox ? { x: 0, y: 0, width: 0, height: 0 } : void 0;\n });\n } else {\n return Promise.resolve(getBBox ? { x: 0, y: 0, width: 0, height: 0 } : void 0);\n }\n }\n};\n__name(_WidgetDiv, \"WidgetDiv\");\nlet WidgetDiv = _WidgetDiv;\nconst _Border2 = class _Border2 extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_bodyElement\");\n __publicField(this, \"_topWA\");\n __publicField(this, \"_leftWA\");\n __publicField(this, \"_centerWA\");\n __publicField(this, \"_rightWA\");\n __publicField(this, \"_bottomWA\");\n __publicField(this, \"_topPrevOverflow\");\n __publicField(this, \"_leftPrevOverflow\");\n __publicField(this, \"_rightPrevOverflow\");\n __publicField(this, \"_bottomPrevOverflow\");\n this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const topElement = element.append(\"header\");\n this._bodyElement = element.append(\"div\").attr(\"class\", \"body\");\n const centerElement = this._bodyElement.append(\"div\").attr(\"class\", \"center\");\n const leftElement = this._bodyElement.append(\"div\").attr(\"class\", \"lhs\");\n const rightElement = this._bodyElement.append(\"div\").attr(\"class\", \"rhs\");\n const bottomElement = element.append(\"div\").attr(\"class\", \"footer\");\n this._topWA = new WidgetDiv(topElement);\n this._centerWA = new WidgetDiv(centerElement);\n this._leftWA = new WidgetDiv(leftElement);\n this._rightWA = new WidgetDiv(rightElement);\n this._bottomWA = new WidgetDiv(bottomElement);\n }\n update(domNode, element) {\n super.update(domNode, element);\n this._topWA.element().style(\"display\", this.showTop() ? null : \"none\");\n this._rightWA.element().style(\"display\", this.showRight() ? null : \"none\");\n this._bottomWA.element().style(\"display\", this.showBottom() ? null : \"none\");\n this._leftWA.element().style(\"display\", this.showLeft() ? null : \"none\");\n if (this.topOverflowX() !== this._topWA.overflowX()) {\n this._topWA.overflowX(this.topOverflowX());\n }\n if (this.rightOverflowX() !== this._rightWA.overflowX()) {\n this._rightWA.overflowX(this.rightOverflowX());\n }\n if (this.bottomOverflowX() !== this._bottomWA.overflowX()) {\n this._bottomWA.overflowX(this.bottomOverflowX());\n }\n if (this.leftOverflowX() !== this._leftWA.overflowX()) {\n this._leftWA.overflowX(this.leftOverflowX());\n }\n if (this.topOverflowY() !== this._topWA.overflowY()) {\n this._topWA.overflowY(this.topOverflowY());\n }\n if (this.rightOverflowY() !== this._rightWA.overflowY()) {\n this._rightWA.overflowY(this.rightOverflowY());\n }\n if (this.bottomOverflowY() !== this._bottomWA.overflowY()) {\n this._bottomWA.overflowY(this.bottomOverflowY());\n }\n if (this.leftOverflowY() !== this._leftWA.overflowY()) {\n this._leftWA.overflowY(this.leftOverflowY());\n }\n this.element().style(\"width\", `${this.width()}px`).style(\"height\", `${this.height()}px`);\n }\n targetNull(w) {\n if (w) {\n w.target(null);\n }\n }\n exit(domNode, element) {\n this.targetNull(this.center());\n this.targetNull(this.bottom());\n this.targetNull(this.right());\n this.targetNull(this.left());\n this.targetNull(this.top());\n super.exit(domNode, element);\n }\n swap(sectionA, sectionB) {\n const a2 = this[sectionA]();\n const b = this[sectionB]();\n this.targetNull(a2);\n this.targetNull(b);\n this[`_${sectionA}WA`].widget(null);\n this[`_${sectionB}WA`].widget(null);\n this[sectionA](b);\n this[sectionB](a2);\n return this;\n }\n render(callback) {\n const retVal = super.render((w) => {\n if (this._topWA) {\n this._topWA.widget(this.top()).overlay(this.topOverlay()).render(true).then(async (topBBox) => {\n const bottomBBox = await this._bottomWA.widget(this.bottom()).render(true, void 0, this.width());\n const availableHeight = this.height() - (topBBox.height + bottomBBox.height);\n const leftBBox = await this._leftWA.widget(this.left()).render(true, availableHeight);\n const rightBBox = await this._rightWA.widget(this.right()).render(true, availableHeight);\n if (this.bottomHeight_exists()) {\n bottomBBox.height = this.bottomHeight();\n }\n const bodyWidth = this.width() - (leftBBox.width + rightBBox.width);\n const bodyHeight = this.height() - (topBBox.height + bottomBBox.height);\n const centerOverflowX = this.centerOverflowX();\n const centerOverflowY = this.centerOverflowY();\n const scrollCenterX = [\"auto\", \"scroll\"].indexOf(centerOverflowX) !== -1;\n const scrollCenterY = [\"auto\", \"scroll\"].indexOf(centerOverflowY) !== -1;\n if (scrollCenterX || scrollCenterY) {\n this._centerWA.overflowX(this.centerOverflowX()).overflowY(this.centerOverflowY()).widget(this.center()).resize({\n width: bodyWidth,\n height: bodyHeight\n }).render();\n }\n this._bodyElement.style(\"height\", `${bodyHeight}px`);\n const promises = [\n this._topWA.overflowX(this.topOverflowX()).overflowY(this.topOverflowY()).resize({\n width: this.width(),\n height: topBBox.height\n }).render(),\n this._leftWA.overflowX(this.leftOverflowX()).overflowY(this.leftOverflowY()).resize({\n width: leftBBox.width,\n height: bodyHeight\n }).render(),\n this._rightWA.overflowX(this.rightOverflowX()).overflowY(this.rightOverflowY()).resize({\n width: rightBBox.width,\n height: bodyHeight\n }).render(),\n this._centerWA.overflowX(this.centerOverflowX()).overflowY(this.centerOverflowY()).widget(this.center()).resize({\n width: bodyWidth,\n height: bodyHeight\n }).render(),\n this._bottomWA.overflowX(this.bottomOverflowX()).overflowY(this.bottomOverflowY()).resize({\n width: this.width(),\n height: bottomBBox.height\n }).render()\n ];\n Promise.all(promises).then((promises2) => {\n if (callback) {\n callback(this);\n }\n });\n });\n } else {\n if (callback) {\n callback(this);\n }\n }\n });\n return retVal;\n }\n};\n__name(_Border2, \"Border2\");\nlet Border2 = _Border2;\nBorder2.prototype._class += \" layout_Border2\";\nBorder2.prototype.publish(\"showTop\", true, \"boolean\", \"If true, top widget adapter will display\");\nBorder2.prototype.publish(\"showRight\", true, \"boolean\", \"If true, right widget adapter will display\");\nBorder2.prototype.publish(\"showBottom\", true, \"boolean\", \"If true, bottom widget adapter will display\");\nBorder2.prototype.publish(\"showLeft\", true, \"boolean\", \"If true, left widget adapter will display\");\nBorder2.prototype.publish(\"topOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"topOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"top\", null, \"widget\", \"Top Widget\", void 0, { render: false });\nBorder2.prototype.publish(\"topOverlay\", false, \"boolean\", \"Overlay Top Widget\");\nBorder2.prototype.publish(\"left\", null, \"widget\", \"Left Widget\", void 0, { render: false });\nBorder2.prototype.publish(\"center\", null, \"widget\", \"Center Widget\", void 0, { render: false });\nBorder2.prototype.publish(\"right\", null, \"widget\", \"Right Widget\", void 0, { render: false });\nBorder2.prototype.publish(\"bottom\", null, \"widget\", \"Bottom Widget\", void 0, { render: false });\nBorder2.prototype.publish(\"bottomHeight\", null, \"number\", \"Bottom Fixed Height\", void 0, { optional: true });\nconst _Carousel = class _Carousel extends HTMLWidget {\n constructor() {\n super(...arguments);\n __publicField(this, \"_prevActive\", 0);\n __publicField(this, \"_root\");\n }\n activeWidget() {\n return this.widgets()[this.active()];\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._root = element.append(\"div\").attr(\"id\", `${this.id()}_root`);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const active = this.active();\n const width = this.width();\n this._root.style(\"width\", `${width}px`).style(\"height\", `${this.height()}px`);\n const widgetElements = this._root.selectAll(`#${this.id()}_root > .carouselItem`).data(this.widgets(), (d) => d.id());\n const update = widgetElements.enter().append(\"div\").attr(\"class\", \"carouselItem\").each(function(w) {\n w.target(this);\n }).merge(widgetElements).style(\"left\", (d, i) => `${(i - this._prevActive) * width}px`).style(\"width\", `${width}px`);\n if (this._prevActive !== active) {\n update.style(\"display\", (d, i) => i === this._prevActive || i === active ? null : \"none\").transition().duration(this.transitionDuration()).style(\"left\", (d, i) => `${(i - active) * width}px`).on(\"end\", function(d, i) {\n select(this).style(\"display\", () => i === active ? null : \"none\");\n });\n this._prevActive = active;\n }\n widgetElements.exit().each(function(w) {\n w.target(null);\n }).remove();\n }\n exit(domNode, element) {\n this.widgets().forEach((w) => w.target(null));\n super.exit(domNode, element);\n }\n render(callback) {\n return super.render((w) => {\n if (!this.visible() || this.isDOMHidden()) {\n if (callback) {\n callback(w);\n }\n } else {\n const aw = this.activeWidget();\n if (aw) {\n aw.resize(this.size()).render((w2) => {\n if (callback) {\n callback(w);\n }\n });\n }\n }\n });\n }\n};\n__name(_Carousel, \"Carousel\");\nlet Carousel = _Carousel;\nCarousel.prototype._class += \" layout_Carousel\";\nCarousel.prototype.publish(\"widgets\", [], \"widgetArray\", \"Widgets\", null, { render: false });\nCarousel.prototype.publish(\"active\", 0, \"number\", \"Active widget\");\nCarousel.prototype.publish(\"transitionDuration\", 500, \"number\", \"Transition duration\");\nvar pi$1 = Math.PI, tau$1 = 2 * pi$1, epsilon = 1e-6, tauEpsilon = tau$1 - epsilon;\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null;\n this._ = \"\";\n}\n__name(Path, \"Path\");\nfunction path() {\n return new Path();\n}\n__name(path, \"path\");\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: /* @__PURE__ */ __name(function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n }, \"moveTo\"),\n closePath: /* @__PURE__ */ __name(function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }, \"closePath\"),\n lineTo: /* @__PURE__ */ __name(function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n }, \"lineTo\"),\n quadraticCurveTo: /* @__PURE__ */ __name(function(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n }, \"quadraticCurveTo\"),\n bezierCurveTo: /* @__PURE__ */ __name(function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n }, \"bezierCurveTo\"),\n arcTo: /* @__PURE__ */ __name(function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else if (!(l01_2 > epsilon)) ;\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else {\n var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n }, \"arcTo\"),\n arc: /* @__PURE__ */ __name(function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n if (!r) return;\n if (da < 0) da = da % tau$1 + tau$1;\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi$1) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n }, \"arc\"),\n rect: /* @__PURE__ */ __name(function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n }, \"rect\"),\n toString: /* @__PURE__ */ __name(function() {\n return this._;\n }, \"toString\")\n};\nfunction constant(x) {\n return /* @__PURE__ */ __name(function constant2() {\n return x;\n }, \"constant\");\n}\n__name(constant, \"constant\");\nvar pi = Math.PI;\nvar tau = 2 * pi;\nconst d3SymbolCircle = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }, \"draw\")\n};\nconst d3SymbolCross = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }, \"draw\")\n};\nvar tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2;\nconst d3SymbolDiamond = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var y = Math.sqrt(size / tan30_2), x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }, \"draw\")\n};\nvar ka = 0.8908130915292852, kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), kx = Math.sin(tau / 10) * kr, ky = -Math.cos(tau / 10) * kr;\nconst d3SymbolStar = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var r = Math.sqrt(size * ka), x = kx * r, y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a2 = tau * i / 5, c2 = Math.cos(a2), s2 = Math.sin(a2);\n context.lineTo(s2 * r, -c2 * r);\n context.lineTo(c2 * x - s2 * y, s2 * x + c2 * y);\n }\n context.closePath();\n }, \"draw\")\n};\nconst d3SymbolSquare = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var w = Math.sqrt(size), x = -w / 2;\n context.rect(x, x, w, w);\n }, \"draw\")\n};\nvar sqrt3 = Math.sqrt(3);\nconst d3SymbolTriangle = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }, \"draw\")\n};\nvar c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3;\nconst d3SymbolWye = {\n draw: /* @__PURE__ */ __name(function(context, size) {\n var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }, \"draw\")\n};\nfunction d3Symbol() {\n var type = constant(d3SymbolCircle), size = constant(64), context = null;\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n __name(symbol, \"symbol\");\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n return symbol;\n}\n__name(d3Symbol, \"d3Symbol\");\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n} : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar d3_identity = /* @__PURE__ */ __name(function d3_identity2(d) {\n return d;\n}, \"d3_identity\");\nvar d3_reverse = /* @__PURE__ */ __name(function d3_reverse2(arr) {\n var mirror = [];\n for (var i = 0, l = arr.length; i < l; i++) {\n mirror[i] = arr[l - i - 1];\n }\n return mirror;\n}, \"d3_reverse\");\nvar d3_textWrapping = /* @__PURE__ */ __name(function d3_textWrapping2(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/\\s+/).reverse(), word, line = [], lineHeight = 1.2;\n text2.attr(\"y\");\n var dy = parseFloat(text2.attr(\"dy\")) || 0, tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"dy\", dy + \"em\");\n while (word = words.pop()) {\n line.push(word);\n tspan.text(line.join(\" \"));\n if (tspan.node().getComputedTextLength() > width && line.length > 1) {\n line.pop();\n tspan.text(line.join(\" \"));\n line = [word];\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"dy\", lineHeight + dy + \"em\").text(word);\n }\n }\n });\n}, \"d3_textWrapping\");\nvar d3_mergeLabels = /* @__PURE__ */ __name(function d3_mergeLabels2() {\n var gen = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];\n var labels = arguments[1];\n var domain = arguments[2];\n var range = arguments[3];\n var labelDelimiter = arguments[4];\n if ((typeof labels === \"undefined\" ? \"undefined\" : _typeof(labels)) === \"object\") {\n if (labels.length === 0) return gen;\n var i = labels.length;\n for (; i < gen.length; i++) {\n labels.push(gen[i]);\n }\n return labels;\n } else if (typeof labels === \"function\") {\n var customLabels = [];\n var genLength = gen.length;\n for (var _i = 0; _i < genLength; _i++) {\n customLabels.push(labels({\n i: _i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n }));\n }\n return customLabels;\n }\n return gen;\n}, \"d3_mergeLabels\");\nvar d3_linearLegend = /* @__PURE__ */ __name(function d3_linearLegend2(scale, cells, labelFormat) {\n var data = [];\n if (cells.length > 1) {\n data = cells;\n } else {\n var domain = scale.domain(), increment = (domain[domain.length - 1] - domain[0]) / (cells - 1);\n var i = 0;\n for (; i < cells; i++) {\n data.push(domain[0] + i * increment);\n }\n }\n var labels = data.map(labelFormat);\n return {\n data,\n labels,\n feature: /* @__PURE__ */ __name(function feature(d) {\n return scale(d);\n }, \"feature\")\n };\n}, \"d3_linearLegend\");\nvar d3_quantLegend = /* @__PURE__ */ __name(function d3_quantLegend2(scale, labelFormat, labelDelimiter) {\n var labels = scale.range().map(function(d) {\n var invert = scale.invertExtent(d);\n return labelFormat(invert[0]) + \" \" + labelDelimiter + \" \" + labelFormat(invert[1]);\n });\n return {\n data: scale.range(),\n labels,\n feature: d3_identity\n };\n}, \"d3_quantLegend\");\nvar d3_ordinalLegend = /* @__PURE__ */ __name(function d3_ordinalLegend2(scale) {\n return {\n data: scale.domain(),\n labels: scale.domain(),\n feature: /* @__PURE__ */ __name(function feature(d) {\n return scale(d);\n }, \"feature\")\n };\n}, \"d3_ordinalLegend\");\nvar d3_cellOver = /* @__PURE__ */ __name(function d3_cellOver2(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellover\", obj, d);\n}, \"d3_cellOver\");\nvar d3_cellOut = /* @__PURE__ */ __name(function d3_cellOut2(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellout\", obj, d);\n}, \"d3_cellOut\");\nvar d3_cellClick = /* @__PURE__ */ __name(function d3_cellClick2(cellDispatcher, d, obj) {\n cellDispatcher.call(\"cellclick\", obj, d);\n}, \"d3_cellClick\");\nvar helper = {\n d3_drawShapes: /* @__PURE__ */ __name(function d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path2) {\n if (shape === \"rect\") {\n shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth);\n } else if (shape === \"circle\") {\n shapes.attr(\"r\", shapeRadius);\n } else if (shape === \"line\") {\n shapes.attr(\"x1\", 0).attr(\"x2\", shapeWidth).attr(\"y1\", 0).attr(\"y2\", 0);\n } else if (shape === \"path\") {\n shapes.attr(\"d\", path2);\n }\n }, \"d3_drawShapes\"),\n d3_addText: /* @__PURE__ */ __name(function d3_addText(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\");\n var text = svg.selectAll(\"g.\" + classPrefix + \"cell text.\" + classPrefix + \"label\").data(labels).text(d3_identity);\n if (labelWidth) {\n svg.selectAll(\"g.\" + classPrefix + \"cell text.\" + classPrefix + \"label\").call(d3_textWrapping, labelWidth);\n }\n return text;\n }, \"d3_addText\"),\n d3_calcType: /* @__PURE__ */ __name(function d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter) {\n var type = scale.invertExtent ? d3_quantLegend(scale, labelFormat, labelDelimiter) : scale.ticks ? d3_linearLegend(scale, cells, labelFormat) : d3_ordinalLegend(scale);\n var range = scale.range && scale.range() || scale.domain();\n type.labels = d3_mergeLabels(type.labels, labels, scale.domain(), range, labelDelimiter);\n if (ascending) {\n type.labels = d3_reverse(type.labels);\n type.data = d3_reverse(type.data);\n }\n return type;\n }, \"d3_calcType\"),\n d3_filterCells: /* @__PURE__ */ __name(function d3_filterCells(type, cellFilter) {\n var filterCells = type.data.map(function(d, i) {\n return { data: d, label: type.labels[i] };\n }).filter(cellFilter);\n var dataValues = filterCells.map(function(d) {\n return d.data;\n });\n var labelValues = filterCells.map(function(d) {\n return d.label;\n });\n type.data = type.data.filter(function(d) {\n return dataValues.indexOf(d) !== -1;\n });\n type.labels = type.labels.filter(function(d) {\n return labelValues.indexOf(d) !== -1;\n });\n return type;\n }, \"d3_filterCells\"),\n d3_placement: /* @__PURE__ */ __name(function d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign) {\n cell.attr(\"transform\", cellTrans);\n text.attr(\"transform\", textTrans);\n if (orient === \"horizontal\") {\n text.style(\"text-anchor\", labelAlign);\n }\n }, \"d3_placement\"),\n d3_addEvents: /* @__PURE__ */ __name(function d3_addEvents(cells, dispatcher) {\n cells.on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this);\n }).on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this);\n }).on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this);\n });\n }, \"d3_addEvents\"),\n d3_title: /* @__PURE__ */ __name(function d3_title(svg, title, classPrefix, titleWidth) {\n if (title !== \"\") {\n var titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\");\n titleText.data([title]).enter().append(\"text\").attr(\"class\", classPrefix + \"legendTitle\");\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title);\n if (titleWidth) {\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").call(d3_textWrapping, titleWidth);\n }\n var cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\");\n var yOffset = svg.select(\".\" + classPrefix + \"legendTitle\").nodes().map(function(d) {\n return d.getBBox().height;\n })[0], xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x;\n })[0];\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\");\n }\n }, \"d3_title\"),\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n d3_defaultFormatSpecifier: \".01f\",\n d3_defaultDelimiter: \"to\"\n};\nfunction color() {\n var scale = scaleLinear(), shape = \"rect\", shapeWidth = 15, shapeHeight = 15, shapeRadius = 10, shapePadding = 2, cells = [5], cellFilter = void 0, labels = [], classPrefix = \"\", useClass = false, title = \"\", locale = helper.d3_defaultLocale, specifier = helper.d3_defaultFormatSpecifier, labelOffset = 10, labelAlign = \"middle\", labelDelimiter = helper.d3_defaultDelimiter, labelWrap = void 0, orient = \"vertical\", ascending = false, path2 = void 0, titleWidth = void 0, legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\");\n function legend(svg) {\n var type = helper.d3_calcType(scale, ascending, cells, labels, locale.format(specifier), labelDelimiter), legendG = svg.selectAll(\"g\").data([scale]);\n legendG.enter().append(\"g\").attr(\"class\", classPrefix + \"legendCells\");\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter);\n }\n var cell = svg.select(\".\" + classPrefix + \"legendCells\").selectAll(\".\" + classPrefix + \"cell\").data(type.data);\n var cellEnter = cell.enter().append(\"g\").attr(\"class\", classPrefix + \"cell\");\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\");\n var shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\").data(type.data);\n helper.d3_addEvents(cellEnter, legendDispatcher);\n cell.exit().transition().style(\"opacity\", 0).remove();\n shapes.exit().transition().style(\"opacity\", 0).remove();\n shapes = shapes.merge(shapes);\n helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path2);\n var text = helper.d3_addText(svg, cellEnter, type.labels, classPrefix, labelWrap);\n cell = cellEnter.merge(cell);\n var textSize = text.nodes().map(function(d) {\n return d.getBBox();\n }), shapeSize = shapes.nodes().map(function(d) {\n return d.getBBox();\n });\n if (!useClass) {\n if (shape == \"line\") {\n shapes.style(\"stroke\", type.feature);\n } else {\n shapes.style(\"fill\", type.feature);\n }\n } else {\n shapes.attr(\"class\", function(d) {\n return classPrefix + \"swatch \" + type.feature(d);\n });\n }\n var cellTrans = void 0, textTrans = void 0, textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1;\n if (orient === \"vertical\") {\n (function() {\n var cellSize = textSize.map(function(d, i) {\n return Math.max(d.height, shapeSize[i].height);\n });\n cellTrans = /* @__PURE__ */ __name(function cellTrans2(d, i) {\n var height = sum(cellSize.slice(0, i));\n return \"translate(0, \" + (height + i * shapePadding) + \")\";\n }, \"cellTrans\");\n textTrans = /* @__PURE__ */ __name(function textTrans2(d, i) {\n return \"translate( \" + (shapeSize[i].width + shapeSize[i].x + labelOffset) + \", \" + (shapeSize[i].y + shapeSize[i].height / 2 + 5) + \")\";\n }, \"textTrans\");\n })();\n } else if (orient === \"horizontal\") {\n cellTrans = /* @__PURE__ */ __name(function cellTrans2(d, i) {\n return \"translate(\" + i * (shapeSize[i].width + shapePadding) + \",0)\";\n }, \"cellTrans\");\n textTrans = /* @__PURE__ */ __name(function textTrans2(d, i) {\n return \"translate(\" + (shapeSize[i].width * textAlign + shapeSize[i].x) + \",\\n \" + (shapeSize[i].height + shapeSize[i].y + labelOffset + 8) + \")\";\n }, \"textTrans\");\n }\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign);\n helper.d3_title(svg, title, classPrefix, titleWidth);\n cell.transition().style(\"opacity\", 1);\n }\n __name(legend, \"legend\");\n legend.scale = function(_) {\n if (!arguments.length) return scale;\n scale = _;\n return legend;\n };\n legend.cells = function(_) {\n if (!arguments.length) return cells;\n if (_.length > 1 || _ >= 2) {\n cells = _;\n }\n return legend;\n };\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter;\n cellFilter = _;\n return legend;\n };\n legend.shape = function(_, d) {\n if (!arguments.length) return shape;\n if (_ == \"rect\" || _ == \"circle\" || _ == \"line\" || _ == \"path\" && typeof d === \"string\") {\n shape = _;\n path2 = d;\n }\n return legend;\n };\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth;\n shapeWidth = +_;\n return legend;\n };\n legend.shapeHeight = function(_) {\n if (!arguments.length) return shapeHeight;\n shapeHeight = +_;\n return legend;\n };\n legend.shapeRadius = function(_) {\n if (!arguments.length) return shapeRadius;\n shapeRadius = +_;\n return legend;\n };\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding;\n shapePadding = +_;\n return legend;\n };\n legend.labels = function(_) {\n if (!arguments.length) return labels;\n labels = _;\n return legend;\n };\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign;\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _;\n }\n return legend;\n };\n legend.locale = function(_) {\n if (!arguments.length) return locale;\n locale = formatLocale(_);\n return legend;\n };\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier);\n specifier = formatSpecifier(_);\n return legend;\n };\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset;\n labelOffset = +_;\n return legend;\n };\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter;\n labelDelimiter = _;\n return legend;\n };\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap;\n labelWrap = _;\n return legend;\n };\n legend.useClass = function(_) {\n if (!arguments.length) return useClass;\n if (_ === true || _ === false) {\n useClass = _;\n }\n return legend;\n };\n legend.orient = function(_) {\n if (!arguments.length) return orient;\n _ = _.toLowerCase();\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _;\n }\n return legend;\n };\n legend.ascending = function(_) {\n if (!arguments.length) return ascending;\n ascending = !!_;\n return legend;\n };\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix;\n classPrefix = _;\n return legend;\n };\n legend.title = function(_) {\n if (!arguments.length) return title;\n title = _;\n return legend;\n };\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth;\n titleWidth = _;\n return legend;\n };\n legend.textWrap = function(_) {\n if (!arguments.length) return textWrap;\n textWrap = _;\n return legend;\n };\n legend.on = function() {\n var value = legendDispatcher.on.apply(legendDispatcher, arguments);\n return value === legendDispatcher ? legend : value;\n };\n return legend;\n}\n__name(color, \"color\");\nconst _Legend = class _Legend extends SVGWidget {\n constructor(owner) {\n super();\n __publicField(this, \"_owner\");\n __publicField(this, \"_targetWidget\");\n __publicField(this, \"_targetWidgetMonitor\");\n __publicField(this, \"_legendOrdinal\");\n __publicField(this, \"_disabled\", []);\n __publicField(this, \"_symbolTypeMap\", {\n \"circle\": d3SymbolCircle,\n \"cross\": d3SymbolCross,\n \"diamond\": d3SymbolDiamond,\n \"square\": d3SymbolSquare,\n \"star\": d3SymbolStar,\n \"triangle\": d3SymbolTriangle,\n \"wye\": d3SymbolWye\n });\n __publicField(this, \"_g\");\n __publicField(this, \"_containerSize\");\n this._owner = owner;\n this._drawStartPos = \"origin\";\n const context = this;\n this._legendOrdinal = color().shape(\"path\", d3Symbol().type(d3SymbolCircle).size(150)()).shapePadding(10).shapeRadius(10).on(\"cellclick\", function(d) {\n context.onClick(d, this);\n }).on(\"cellover\", (d) => {\n context.onOver(d, this);\n }).on(\"cellout\", (d) => {\n context.onOut(d, this);\n });\n }\n isDisabled(d) {\n if (typeof d === \"undefined\") {\n return false;\n } else if (typeof d === \"string\") {\n return d.indexOf(\"__\") === 0 || this._disabled.indexOf(d) >= 0;\n } else if (d instanceof Database.Field) {\n return d.id().indexOf(\"__\") === 0 || this._disabled.indexOf(d.id()) >= 0;\n }\n return this._disabled.indexOf(d) >= 0;\n }\n filteredFields() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.fields();\n case \"ND\":\n return this.fields().filter((d) => !this.isDisabled(d));\n }\n return this.fields();\n }\n filteredColumns() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.columns();\n case \"ND\":\n return this.columns().filter((d) => !this.isDisabled(d));\n }\n return this.columns();\n }\n filteredData() {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.data().filter((row) => !this.isDisabled(row[0]));\n case \"ND\":\n const disabledCols = {};\n let anyDisabled = false;\n this.columns().forEach((col, idx) => {\n const disabled = this.isDisabled(col);\n disabledCols[idx] = disabled;\n if (disabled) {\n anyDisabled = true;\n }\n });\n return !anyDisabled ? this.data() : this.data().map((row) => {\n return row.filter((cell, idx) => !disabledCols[idx]);\n });\n }\n return this.data();\n }\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n targetWidget(_) {\n if (!arguments.length) return this._targetWidget;\n this._targetWidget = _;\n if (this._targetWidgetMonitor) {\n this._targetWidgetMonitor.remove();\n delete this._targetWidgetMonitor;\n }\n if (this._targetWidget) {\n const context = this;\n this._targetWidgetMonitor = this._targetWidget.monitor(function(key, newProp, oldProp, source) {\n switch (key) {\n case \"chart\":\n case \"columns\":\n case \"data\":\n case \"paletteID\":\n context.lazyRender();\n break;\n }\n });\n }\n return this;\n }\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"composite_MultiChart\":\n return this._targetWidget.chart();\n }\n }\n return this._targetWidget;\n }\n getPalette() {\n const widget = this.getWidget();\n if (widget && widget._palette) {\n switch (widget._palette.type()) {\n case \"ordinal\":\n return Palette.ordinal(widget._palette.id());\n case \"rainbow\":\n return Palette.rainbow(widget._palette.id());\n }\n }\n return Palette.ordinal(\"default\");\n }\n getPaletteType() {\n return this.getPalette().type();\n }\n fillColorFunc() {\n const widget = this.getWidget();\n if (widget && widget.fillColor) {\n if (widget._palette && widget.paletteID && widget._palette.name !== widget.paletteID()) {\n widget._palette = widget._palette.switch(widget.paletteID());\n }\n return (row, col, sel) => {\n return widget.fillColor(row, col, sel);\n };\n }\n const palette = Palette.ordinal(widget && widget.paletteID ? widget.paletteID() || \"default\" : \"default\");\n return (row, col, sel) => {\n return palette(col);\n };\n }\n fillColor(row, col, sel) {\n return this.fillColorFunc()(row, col, sel);\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._g = element.append(\"g\").attr(\"class\", \"legendOrdinal\");\n }\n calcMetaData() {\n let dataArr = [];\n let total = 0;\n let maxLabelWidth = 0;\n const colLength = this.columns().length;\n if (this._targetWidget) {\n const columns = this.columns();\n switch (this.getPaletteType()) {\n case \"ordinal\":\n const fillColor = this.fillColorFunc();\n let val = 0;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this.data().map(function(n, i) {\n val = this.data()[i].slice(1, colLength).reduce((acc, n2) => acc + n2, 0);\n const disabled = this.isDisabled(n[0]);\n if (!disabled) total += val;\n const label = n[0] + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(n, n[0], false), n[0], label];\n }, this);\n break;\n case \"ND\":\n const widgetColumns = this.columns().filter((col) => col.indexOf(\"__\") !== 0);\n dataArr = widgetColumns.filter(function(n, i) {\n return i > 0;\n }).map(function(n, i) {\n val = this.data().reduce((acc, n2) => acc + n2[i + 1], 0);\n const disabled = this.isDisabled(columns[i + 1]);\n const label = n + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n if (!disabled) total += val;\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(void 0, n, false), n, label];\n }, this);\n break;\n default:\n const widgetColumns2 = this.columns();\n dataArr = widgetColumns2.map(function(n) {\n return [fillColor(void 0, n, false), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const palette = this.getPalette();\n const format$1 = format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin = widget._dataMinWeight;\n const weightMax = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([palette(weightMin, weightMin, weightMax), format$1(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n let mid = stepWeightDiff * x;\n if (Math.floor(mid) > parseInt(dataArr[0][1])) {\n mid = Math.floor(mid);\n }\n dataArr.push([palette(mid, weightMin, weightMax), format$1(mid)]);\n }\n dataArr.push([palette(weightMax, weightMin, weightMax), format$1(weightMax)]);\n break;\n }\n }\n return {\n dataArr,\n total,\n maxLabelWidth\n };\n }\n update(domNode, element) {\n super.update(domNode, element);\n const { dataArr, maxLabelWidth, total } = this.calcMetaData();\n const radius = this.shapeRadius();\n const size = this.radiusToSymbolSize(radius);\n const strokeWidth = 1;\n let shapePadding = this.itemPadding();\n if (this.orientation() === \"horizontal\") {\n shapePadding += maxLabelWidth - radius * 2;\n }\n const ordinal = scaleOrdinal().domain(dataArr.map((row) => row[1])).range(dataArr.map((row) => row[0]));\n this._legendOrdinal.shape(\"path\", d3Symbol().type(this._symbolTypeMap[this.symbolType()]).size(size)()).orient(this.orientation()).title(this.title()).labelWrap(this.labelMaxWidth()).labelAlign(this.labelAlign()).shapePadding(shapePadding).scale(ordinal).labels((d) => dataArr[d.i][2]);\n this._g.call(this._legendOrdinal);\n this.updateDisabled(element, dataArr);\n const legendCellsBbox = this._g.select(\".legendCells\").node().getBBox();\n let offsetX = Math.abs(legendCellsBbox.x);\n let offsetY = Math.abs(legendCellsBbox.y) + strokeWidth;\n if (this.orientation() === \"horizontal\") {\n if (this.labelAlign() === \"start\") {\n offsetX += strokeWidth;\n } else if (this.labelAlign() === \"end\") {\n offsetX -= strokeWidth;\n }\n if (this.width() > legendCellsBbox.width) {\n const extraWidth = this.width() - legendCellsBbox.width;\n offsetX += extraWidth / 2;\n }\n } else if (this.orientation() === \"vertical\") {\n offsetX += strokeWidth;\n if (this._containerSize.height > legendCellsBbox.height) {\n const extraHeight = this.height() - legendCellsBbox.height;\n offsetY += extraHeight / 2;\n }\n }\n this._g.attr(\"transform\", `translate(${offsetX}, ${offsetY})`);\n this.pos({\n x: 0,\n y: 0\n });\n this._legendOrdinal.labelOffset(this.itemPadding());\n const legendTotal = this._g.selectAll(\".legendTotal\").data(dataArr.length && this.showLegendTotal() ? [total] : []);\n const totalText = `Total: ${total}`;\n const totalOffsetX = -offsetX;\n const totalOffsetY = legendCellsBbox.height + this.itemPadding() + strokeWidth;\n this.enableOverflowScroll(false);\n this.enableOverflow(true);\n legendTotal.enter().append(\"text\").classed(\"legendTotal\", true).merge(legendTotal).attr(\"transform\", `translate(${totalOffsetX}, ${totalOffsetY})`).text(totalText);\n legendTotal.exit().remove();\n }\n updateDisabled(element, dataArr) {\n element.style(\"cursor\", \"pointer\").selectAll(\"path.swatch\").filter((d, i) => i < dataArr.length).style(\"stroke\", (d, i) => dataArr[i][0]).style(\n \"fill\",\n (d, i) => this._disabled.indexOf(d) < 0 ? dataArr[i][0] : \"white\"\n );\n }\n postUpdate(domNode, element) {\n let w;\n if (this._boundingBox) {\n w = this._boundingBox.width;\n this._boundingBox.width = this._size.width;\n }\n super.postUpdate(domNode, element);\n if (w !== void 0) {\n this._boundingBox.width = w;\n }\n this._parentRelativeDiv.style(\"overflow\", \"hidden\");\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n radiusToSymbolSize(radius) {\n const circleSize = Math.pow(radius, 2) * Math.PI;\n switch (this.symbolType()) {\n case \"star\":\n return circleSize * 0.45;\n case \"triangle\":\n return circleSize * 0.65;\n case \"cross\":\n case \"diamond\":\n case \"wye\":\n return circleSize * 0.75;\n case \"circle\":\n return circleSize;\n case \"square\":\n return circleSize * 1.3;\n }\n }\n onClick(d, domNode) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n const disabledIdx = this._disabled.indexOf(d);\n if (disabledIdx < 0) {\n this._disabled.push(d);\n } else {\n this._disabled.splice(disabledIdx, 1);\n }\n this._owner.refreshColumns();\n this._owner.refreshData();\n this._owner.render();\n break;\n }\n break;\n }\n }\n onOver(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n if (this._disabled.indexOf(d) < 0) {\n this._owner.highlightColumn(d);\n }\n break;\n }\n break;\n }\n }\n }\n onOut(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n this._owner.highlightColumn();\n break;\n }\n break;\n }\n }\n }\n onDblClick(rowData, rowIdx) {\n }\n onMouseOver(rowData, rowIdx) {\n }\n resize(_size) {\n let retVal;\n if (this.fitToContent()) {\n this._containerSize = _size;\n const bbox = this.getBBox();\n if (_size.width > bbox.width) {\n bbox.width = _size.width;\n }\n if (_size.height > bbox.height) {\n bbox.height = _size.height;\n }\n retVal = super.resize.apply(this, [{ ...bbox }]);\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n};\n__name(_Legend, \"Legend\");\nlet Legend = _Legend;\nLegend.prototype._class += \" layout_Legend\";\nLegend.prototype.publish(\"title\", \"\", \"string\", \"Title\");\nLegend.prototype.publish(\"symbolType\", \"circle\", \"set\", \"Shape of each legend item\", [\"circle\", \"cross\", \"diamond\", \"square\", \"star\", \"triangle\", \"wye\"]);\nLegend.prototype.publish(\"labelMaxWidth\", null, \"number\", \"Max Label Width (pixels)\", null, { optional: true });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"graph\", \"any\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"rainbowFormat\", \",\", \"string\", \"Rainbow number formatting\", null, { tags: [\"Private\"], optional: true, disable: /* @__PURE__ */ __name((w) => !w.isRainbow(), \"disable\") });\nLegend.prototype.publish(\"rainbowBins\", 8, \"number\", \"Number of rainbow bins\", null, { tags: [\"Private\"], disable: /* @__PURE__ */ __name((w) => !w.isRainbow(), \"disable\") });\nLegend.prototype.publish(\"showSeriesTotal\", false, \"boolean\", \"Show value next to series\");\nLegend.prototype.publish(\"showLegendTotal\", false, \"boolean\", \"Show a total of the series values under the legend\", null);\nLegend.prototype.publish(\"itemPadding\", 8, \"number\", \"Padding between legend items (pixels)\");\nLegend.prototype.publish(\"shapeRadius\", 7, \"number\", \"Radius of legend shape (pixels)\");\nLegend.prototype.publish(\"fitToContent\", true, \"boolean\", \"If true, resize will simply reapply the bounding box dimensions\");\nLegend.prototype.publish(\"labelAlign\", \"start\", \"set\", \"Horizontal alignment of legend item label (for horizontal orientation only)\", [\"start\", \"middle\", \"end\"], { optional: true, disable: /* @__PURE__ */ __name((w) => w.orientation() === \"vertical\", \"disable\") });\nconst _Modal = class _Modal extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_widget\");\n __publicField(this, \"_relativeTarget\");\n __publicField(this, \"_fade\");\n __publicField(this, \"_modal\");\n __publicField(this, \"_modalHeader\");\n __publicField(this, \"_modalBody\");\n __publicField(this, \"_modalHeaderAnnotations\");\n __publicField(this, \"_modalHeaderCloseButton\");\n __publicField(this, \"_close\");\n this._tag = \"div\";\n }\n closeModal() {\n this.visible(false);\n }\n getRelativeTarget() {\n let relativeTarget;\n if (this.relativeTargetId()) {\n relativeTarget = document.getElementById(this.relativeTargetId());\n if (relativeTarget) {\n return relativeTarget;\n }\n }\n if (!relativeTarget) {\n relativeTarget = this.locateAncestor(\"layout_Grid\");\n if (relativeTarget && relativeTarget.element) {\n return relativeTarget.element().node();\n }\n }\n return document.body;\n }\n setModalSize() {\n if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal.style(\"height\", this.fixedHeight()).style(\"width\", this.fixedWidth()).style(\"min-height\", null).style(\"min-width\", null).style(\"max-height\", null).style(\"max-width\", null);\n } else if (this.minHeight() || this.minWidth()) {\n this._modal.style(\"min-height\", this.minHeight()).style(\"min-width\", this.minWidth()).style(\"max-height\", this.maxHeight()).style(\"max-width\", this.maxWidth());\n }\n const modalRect = this._modal.node().getBoundingClientRect();\n const headerRect = this._modalHeader.node().getBoundingClientRect();\n this._modalBody.style(\"height\", modalRect.height - headerRect.height + \"px\").style(\"width\", modalRect.width);\n return modalRect;\n }\n setFadePosition(rect) {\n this._fade.style(\"top\", rect.top + \"px\").style(\"left\", rect.left + \"px\").style(\"width\", rect.width + \"px\").style(\"height\", rect.height + \"px\");\n }\n setModalPosition(rect) {\n const modalRect = this.setModalSize();\n if (this.fixedTop() !== null && this.fixedLeft() !== null) {\n this._modal.style(\"top\", `calc(${this.fixedTop()} + ${rect.top}px)`).style(\"left\", `calc(${this.fixedLeft()} + ${rect.left}px)`);\n } else if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal.style(\"top\", rect.top + rect.height / 2 - modalRect.height / 2 + \"px\").style(\"left\", rect.left + rect.width / 2 - modalRect.width / 2 + \"px\");\n } else if (this.minHeight() || this.minWidth()) {\n const contentRect = this._modal.node().getBoundingClientRect();\n this._modal.style(\"top\", rect.top + rect.height / 2 - contentRect.height / 2 + \"px\").style(\"left\", rect.left + rect.width / 2 - contentRect.width / 2 + \"px\");\n }\n }\n resize(size) {\n super.resize();\n if (this._modal) this.setModalSize();\n return this;\n }\n resizeBodySync(width, height) {\n const header = this._modalHeader.node();\n const headerRect = header.getBoundingClientRect();\n this._modal.style(\"width\", width + \"px\").style(\"height\", height + headerRect.height + \"px\").style(\"min-width\", width + \"px\").style(\"min-height\", height + headerRect.height + \"px\");\n this._modalHeader.style(\"width\", width + \"px\");\n this._modalBody.style(\"width\", width + \"px\").style(\"height\", height + \"px\");\n return this.minWidth(width + \"px\").minHeight(height + headerRect.height + \"px\").resize({\n height: height + headerRect.height,\n width\n });\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._fade = element.append(\"div\").classed(\"layout_Modal-fade\", true).classed(\"layout_Modal-fadeClickable\", this.enableClickFadeToClose()).classed(\"layout_Modal-fade-hidden\", !this.showFade());\n const header_h = this.titleFontSize() * 2;\n this._modal = element.append(\"div\").classed(\"layout_Modal-content\", true);\n this._modalHeader = this._modal.append(\"div\").classed(\"layout_Modal-header\", true).style(\"color\", this.titleFontColor()).style(\"font-size\", this.titleFontSize() + \"px\").style(\"height\", header_h + \"px\");\n this._modalBody = this._modal.append(\"div\").classed(\"layout_Modal-body\", true).style(\"height\", `calc( 100% - ${header_h}px )`).style(\"overflow-x\", this.overflowX()).style(\"overflow-y\", this.overflowY());\n this._modalHeader.append(\"div\").classed(\"layout_Modal-title\", true).style(\"line-height\", this.titleFontSize() + \"px\").style(\"top\", this.titleFontSize() / 2 + \"px\").style(\"left\", this.titleFontSize() / 2 + \"px\").text(this.formattedTitle());\n this._modalHeaderAnnotations = this._modalHeader.append(\"div\").classed(\"layout_Modal-annotations\", true);\n this._modalHeaderCloseButton = this._modalHeaderAnnotations.append(\"div\").classed(\"layout_Modal-closeButton\", true).html('<i class=\"fa fa-close\"></i>');\n this._modalHeaderAnnotations.style(\"line-height\", this.titleFontSize() + \"px\").style(\"right\", this.titleFontSize() / 2 + \"px\").style(\"top\", this.titleFontSize() / 2 + \"px\");\n this._modalHeaderCloseButton.on(\"click\", () => {\n this.closeModal();\n });\n this._fade.on(\"click\", (n) => {\n if (this.enableClickFadeToClose()) {\n this.closeModal();\n }\n });\n }\n update(domNode, element) {\n super.update(domNode, element);\n element.style(\"display\", this.show() ? null : \"none\");\n this._fade.classed(\"layout_Modal-fade-hidden\", !this.showFade());\n this._relativeTarget = this.getRelativeTarget();\n this.setModalSize();\n const rect = this._relativeTarget.getBoundingClientRect();\n this.setFadePosition(rect);\n this.setModalPosition(rect);\n if (this.show()) {\n if (!this._widget.target()) {\n this._widget.target(this._modalBody.node());\n }\n this._widget.resize().render();\n } else {\n this._widget.target(null).render();\n }\n }\n exit(domNode, element) {\n if (this._widget) {\n this._widget.target(null);\n }\n super.exit(domNode, element);\n }\n formattedTitle() {\n const title = this.title_exists() ? this.title().trim() : \"\";\n if (title.length > 0 && title.slice(0, 1) === \"(\" && title.slice(-1) === \")\") {\n return title.slice(1, -1);\n }\n return this.title();\n }\n};\n__name(_Modal, \"Modal\");\nlet Modal = _Modal;\nModal.prototype._class += \" layout_Modal\";\nModal.prototype.publish(\"title\", null, \"string\", \"title\");\nModal.prototype.publish(\"widget\", null, \"widget\", \"widget\");\nModal.prototype.publish(\"titleFontSize\", 18, \"number\", \"titleFontSize (in pixels)\");\nModal.prototype.publish(\"titleFontColor\", \"#ffffff\", \"html-color\", \"titleFontColor\");\nModal.prototype.publish(\"relativeTargetId\", null, \"string\", \"relativeTargetId\");\nModal.prototype.publish(\"show\", true, \"boolean\", \"show\");\nModal.prototype.publish(\"showFade\", true, \"boolean\", \"showFade\");\nModal.prototype.publish(\"enableClickFadeToClose\", true, \"boolean\", \"enableClickFadeToClose\");\nModal.prototype.publish(\"minWidth\", \"400px\", \"string\", \"minWidth\");\nModal.prototype.publish(\"minHeight\", \"400px\", \"string\", \"minHeight\");\nModal.prototype.publish(\"maxWidth\", \"800px\", \"string\", \"maxWidth\");\nModal.prototype.publish(\"maxHeight\", \"800px\", \"string\", \"maxHeight\");\nModal.prototype.publish(\"fixedWidth\", null, \"string\", \"fixedWidth\");\nModal.prototype.publish(\"fixedHeight\", null, \"string\", \"fixedHeight\");\nModal.prototype.publish(\"fixedTop\", null, \"string\", \"fixedTop\");\nModal.prototype.publish(\"fixedLeft\", null, \"string\", \"fixedLeft\");\nModal.prototype.publish(\"overflowX\", \"hidden\", \"string\", \"overflowX\");\nModal.prototype.publish(\"overflowY\", \"scroll\", \"string\", \"overflowY\");\nconst _ChartPanel = class _ChartPanel extends Border2 {\n constructor() {\n super();\n __publicField(this, \"_legend\", new Legend(this).enableOverflow(true));\n __publicField(this, \"_progressBar\", new ProgressBar());\n __publicField(this, \"_autoScale\", false);\n __publicField(this, \"_resolutions\", {\n tiny: { width: 100, height: 100 },\n small: { width: 300, height: 300 }\n });\n __publicField(this, \"_modal\", new Modal());\n __publicField(this, \"_highlight\");\n __publicField(this, \"_scale\");\n __publicField(this, \"_orig_size\");\n __publicField(this, \"_toggleInfo\", new ToggleButton().faChar(\"fa-info-circle\").tooltip(\".Description\").selected(false).on(\"enabled\", () => {\n return this.description() !== \"\";\n }).on(\"click\", () => {\n if (this._toggleInfo.selected()) {\n this._modal.title(this.title()).widget(new Text().text(this.description())).show(true).render();\n const origCloseFunc = this._modal._close;\n this._modal._close = () => {\n this._toggleInfo.selected(false).render();\n this._modal._close = origCloseFunc;\n };\n }\n }).on(\"mouseMove\", () => {\n }).on(\"mouseOut\", () => {\n }));\n __publicField(this, \"_toggleData\", new ToggleButton().faChar(\"fa-table\").tooltip(\"Data\").on(\"click\", () => {\n this.dataVisible(this._toggleData.selected());\n this.render();\n }));\n __publicField(this, \"_buttonDownload\", new Button().faChar(\"fa-download\").tooltip(\"Download\").on(\"click\", () => {\n this.downloadCSV();\n }));\n __publicField(this, \"_buttonDownloadImage\", new Button().faChar(\"fa-image\").tooltip(\"Download Image\").on(\"click\", () => {\n this.downloadPNG();\n }));\n __publicField(this, \"_toggleLegend\", new ToggleButton().faChar(\"fa-list-ul\").tooltip(\"Legend\").selected(false).on(\"click\", () => {\n const selected = this._toggleLegend.selected();\n if (this.legendPosition() === \"bottom\") {\n this.showBottom(selected);\n } else if (this.legendPosition() === \"right\") {\n this.showRight(selected);\n }\n this.legendVisible(selected);\n this.render();\n }));\n __publicField(this, \"_spacer\", new Spacer());\n __publicField(this, \"_titleBar\", new TitleBar().buttons([this._toggleData, this._buttonDownload, this._buttonDownloadImage, this._spacer, this._toggleLegend]));\n __publicField(this, \"_carousel\", new Carousel());\n __publicField(this, \"_table\", new Table());\n __publicField(this, \"_widget\");\n __publicField(this, \"_hideLegendToggleList\", [\"dgrid_Table\"]);\n __publicField(this, \"_prevdataVisible\");\n __publicField(this, \"_prevlegendVisible\");\n __publicField(this, \"_prevLegendPosition\");\n __publicField(this, \"_prevChartDataFamily\");\n __publicField(this, \"_prevChart\");\n __publicField(this, \"_prevButtons\");\n this._tag = \"div\";\n }\n fields(_) {\n if (!arguments.length) return super.fields();\n super.fields(_);\n this._legend.fields(_);\n this.refreshFields();\n return this;\n }\n refreshFields() {\n this._widget.fields(this._legend.filteredFields());\n this._table.fields(this._legend.filteredFields());\n return this;\n }\n columns(_, asDefault) {\n if (!arguments.length) return super.columns();\n super.columns(_, asDefault);\n this._legend.columns(_, asDefault);\n this.refreshColumns();\n return this;\n }\n refreshColumns() {\n this._widget.columns(this._legend.filteredColumns());\n this._table.columns(this._legend.filteredColumns());\n return this;\n }\n data(_) {\n if (!arguments.length) return super.data();\n super.data(_);\n this._legend.data(_);\n this.refreshData();\n return this;\n }\n refreshData() {\n this._widget.data(this._legend.filteredData());\n this._table.data(this._legend.filteredData());\n return this;\n }\n highlight(_) {\n if (!arguments.length) return this._highlight;\n this._highlight = _;\n return this;\n }\n startProgress() {\n this._progressBar.start();\n }\n finishProgress() {\n this._progressBar.finish();\n }\n buttons(_) {\n if (!arguments.length) return this._titleBar.buttons();\n this._titleBar.buttons(_);\n return this;\n }\n downloadCSV() {\n const namePrefix = this.downloadTitle() ? this.downloadTitle() : this.title() ? this.title() : \"data\";\n const nameSuffix = this.downloadTimestampSuffix() ? \"_\" + Utility.timestamp() : \"\";\n Utility.downloadString(\"CSV\", this._widget.export(\"CSV\"), namePrefix + nameSuffix);\n return this;\n }\n downloadPNG() {\n const widget = this.widget();\n if (widget instanceof SVGWidget) {\n if (!this.legendVisible()) {\n widget.downloadPNG(this.title());\n } else {\n widget.downloadPNG(this.title(), void 0, this._legend);\n }\n }\n return this;\n }\n highlightColumn(column) {\n if (column) {\n const cssTag = `series-${this.cssTag(column)}`;\n this._centerWA.element().selectAll(\".series\").each(function() {\n const element = select(this);\n const highlight = element.classed(cssTag);\n element.classed(\"highlight\", highlight).classed(\"lowlight\", !highlight);\n });\n } else {\n this._centerWA.element().selectAll(\".series\").classed(\"highlight\", false).classed(\"lowlight\", false);\n }\n return this;\n }\n getResponsiveMode() {\n if (!this.enableAutoscaling()) return \"none\";\n if (!this._autoScale) return \"regular\";\n if (this.size().width <= this._resolutions.tiny.width || this.size().height <= this._resolutions.tiny.height) {\n return \"tiny\";\n } else if (this.size().width <= this._resolutions.small.width || this.size().height <= this._resolutions.small.height) {\n return \"small\";\n }\n return \"regular\";\n }\n setOrigSize() {\n this._orig_size = JSON.parse(JSON.stringify(this.size()));\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._modal.target(this.target()).relativeTargetId(this.id());\n this.top(this._titleBar);\n this.center(this._carousel);\n this._legend.targetWidget(this._widget).orientation(\"vertical\").title(\"\").visible(false);\n this._progressBar.enter(domNode, element);\n this.setOrigSize();\n }\n preUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n }\n preUpdateSmall(element) {\n const scale_x = this._orig_size.width / this._resolutions.small.width;\n const scale_y = this._orig_size.height / this._resolutions.small.height;\n this._scale = Math.min(scale_x, scale_y);\n const x_is_smaller = this._scale === scale_x;\n this.size({\n width: x_is_smaller ? this._resolutions.small.width : this._orig_size.width * (1 / this._scale),\n height: !x_is_smaller ? this._resolutions.small.height : this._orig_size.height * (1 / this._scale)\n });\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"lhs\").style(\"display\", \"none\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.style(\"transform\", `scale(${this._scale})`);\n }\n preUpdateRegular(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n }\n preUpdate(domNode, element) {\n super.preUpdate(domNode, element);\n if (this._prevLegendPosition !== this.legendPosition()) {\n if (this._legend.target() !== null) this._legend.target(null);\n if (this._prevLegendPosition !== void 0) {\n this.swap(this._prevLegendPosition, this.legendPosition());\n } else {\n this[this.legendPosition()](this._legend);\n }\n if (this.legendPosition() === \"right\") {\n this.rightOverflowX(\"hidden\");\n this.rightOverflowY(\"auto\");\n this.bottomOverflowX(\"visible\");\n this.bottomOverflowY(\"visible\");\n } else {\n this.rightOverflowX(\"visible\");\n this.rightOverflowY(\"visible\");\n this.bottomOverflowX(\"auto\");\n this.bottomOverflowY(\"hidden\");\n }\n this._prevLegendPosition = this.legendPosition();\n }\n if (this._prevdataVisible !== this.dataVisible()) {\n this._prevdataVisible = this.dataVisible();\n this._toggleData.selected(this._prevdataVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n this._carousel.active(this._prevdataVisible ? 1 : 0);\n }\n if (this._prevlegendVisible !== this.legendVisible()) {\n this._prevlegendVisible = this.legendVisible();\n this._toggleLegend.selected(this._prevlegendVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n }\n this._legend.orientation(this.legendPosition() === \"bottom\" ? \"horizontal\" : \"vertical\");\n this.showLeft(!this.left());\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.preUpdateTiny(element);\n break;\n case \"small\":\n this.preUpdateSmall(element);\n break;\n case \"regular\":\n this.preUpdateRegular(element);\n break;\n }\n const chart = this._widget.classID() === \"composite_MultiChart\" ? this._widget[\"chart\"]() : this._widget;\n this._legend.dataFamily(chart._dataFamily || \"any\");\n if (this._prevChartDataFamily !== this._legend.dataFamily()) {\n this._prevChartDataFamily = this._legend.dataFamily();\n switch (this._prevChartDataFamily) {\n case \"any\":\n this._toggleLegend.selected(false);\n this._legend.visible(false);\n break;\n }\n }\n element.style(\"box-shadow\", this.highlight() ? `inset 0px 0px 0px ${this.highlightSize()}px ${this.highlightColor()}` : \"none\");\n if (this._hideLegendToggleList.indexOf(chart.classID()) !== -1) {\n this._spacer.visible(false);\n this._toggleLegend.visible(false);\n } else {\n this._spacer.visible(true);\n this._toggleLegend.visible(true);\n }\n if (this._prevChart !== chart) {\n this._prevChart = chart;\n const widgetIconBar = chart ? chart[\"_titleBar\"] || chart[\"_iconBar\"] : void 0;\n if (widgetIconBar && widgetIconBar instanceof IconBar) {\n this._prevButtons = this._prevButtons || [...this.buttons()];\n const buttons = [\n ...widgetIconBar.buttons(),\n new Spacer(),\n ...this._prevButtons\n ];\n widgetIconBar.buttons([]).render();\n this.buttons(buttons);\n } else if (this._prevButtons) {\n this.buttons(this._prevButtons);\n }\n }\n const hiddenButtons = [];\n if (!this.dataButtonVisible()) hiddenButtons.push(this._toggleData);\n if (!this.downloadButtonVisible()) hiddenButtons.push(this._buttonDownload);\n if (!this.downloadImageButtonVisible()) hiddenButtons.push(this._buttonDownloadImage);\n if (!this.legendButtonVisible()) hiddenButtons.push(this._toggleLegend);\n this._buttonDownloadImage.enabled(this.widget() instanceof SVGWidget);\n this._titleBar.hiddenButtons(hiddenButtons).visible(this.titleVisible());\n this.topOverlay(this.titleOverlay() || !this.titleVisible());\n }\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.postUpdateTiny(element);\n break;\n case \"small\":\n this.postUpdateSmall(element);\n break;\n case \"regular\":\n this.postUpdateRegular(element);\n break;\n }\n }\n postUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"visible\").style(\"font-size\", this.titleIconFontSize() / 3 + \"px\").style(\"line-height\", this.titleIconFontSize() / 3 + \"px\").style(\"left\", this.titleIconFontSize() + \"px\").text(this.data().length);\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n const iconDiv = element.selectAll(\"div.title-icon\");\n const _node = iconDiv.node();\n const _container = element.node().parentElement;\n const containerRect = _container.getBoundingClientRect();\n if (_node) {\n const rect = iconDiv.node().getBoundingClientRect();\n const icon_top = containerRect.height / 2;\n iconDiv.style(\"position\", \"absolute\").style(\"left\", `calc(50% - ${rect.width / 2}px)`).style(\"top\", `${icon_top - rect.height / 2}px`);\n element.selectAll(\"div.data-count\").style(\"position\", \"absolute\").style(\"left\", `calc(50% + ${rect.width / 2}px)`).style(\"top\", `${icon_top - rect.height / 2}px`);\n }\n }\n postUpdateSmall(element) {\n element.selectAll(\"lhs\").style(\"display\", \"none\");\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n const rect = element.node().getBoundingClientRect();\n const parentRect = element.node().parentElement.getBoundingClientRect();\n element.style(\"transform\", `translate(${parentRect.x - rect.x}px, ${parentRect.y - rect.y}px) scale(${this._scale})`);\n }\n postUpdateRegular(element) {\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n }\n exit(domNode, element) {\n this._progressBar.exit(domNode, element);\n this.right(null);\n this._legend.target(null);\n this.center(null);\n this._carousel.target(null);\n this.top(null);\n this._titleBar.target(null);\n this._modal.target(null);\n delete this._prevChart;\n delete this._prevButtons;\n delete this._prevChartDataFamily;\n delete this._prevPos;\n delete this._prevdataVisible;\n delete this._prevlegendVisible;\n super.exit(domNode, element);\n }\n // Event Handlers ---\n // Events ---\n click(row, column, selected) {\n }\n dblclick(row, column, selected) {\n }\n vertex_click(row, col, sel, more) {\n if (more && more.vertex) ;\n }\n vertex_dblclick(row, col, sel, more) {\n if (more && more.vertex) ;\n }\n edge_click(row, col, sel, more) {\n if (more && more.edge) ;\n }\n edge_dblclick(row, col, sel, more) {\n if (more && more.edge) ;\n }\n};\n__name(_ChartPanel, \"ChartPanel\");\nlet ChartPanel = _ChartPanel;\nChartPanel.prototype._class += \" layout_ChartPanel\";\nChartPanel.prototype.publishReset();\nChartPanel.prototype.publishProxy(\"title\", \"_titleBar\");\nChartPanel.prototype.publish(\"titleVisible\", true, \"boolean\");\nChartPanel.prototype.publish(\"titleOverlay\", false, \"boolean\");\nChartPanel.prototype.publishProxy(\"titleIcon\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"description\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFontSize\", \"_titleBar\");\nChartPanel.prototype.publish(\"dataVisible\", false, \"boolean\", \"Show data table\");\nChartPanel.prototype.publish(\"dataButtonVisible\", true, \"boolean\", \"Show data table button\");\nChartPanel.prototype.publish(\"downloadButtonVisible\", true, \"boolean\", \"Show data download button\");\nChartPanel.prototype.publish(\"downloadImageButtonVisible\", false, \"boolean\", \"Show image download button\");\nChartPanel.prototype.publish(\"downloadTitle\", \"\", \"string\", \"File name when downloaded\");\nChartPanel.prototype.publish(\"downloadTimestampSuffix\", true, \"boolean\", \"Use timestamp as file name suffix\");\nChartPanel.prototype.publish(\"legendVisible\", false, \"boolean\", \"Show legend\");\nChartPanel.prototype.publish(\"legendButtonVisible\", true, \"boolean\", \"Show legend button\");\nChartPanel.prototype.publish(\"legendPosition\", \"right\", \"set\", \"Position of legend\", [\"right\", \"bottom\"]);\nChartPanel.prototype.publishProxy(\"legend_labelMaxWidth\", \"_legend\", \"labelMaxWidth\");\nChartPanel.prototype.publishProxy(\"legend_showSeriesTotal\", \"_legend\", \"showSeriesTotal\");\nChartPanel.prototype.publishProxy(\"legend_showLegendTotal\", \"_legend\", \"showLegendTotal\");\nChartPanel.prototype.publishProxy(\"legend_itemPadding\", \"_legend\", \"itemPadding\");\nChartPanel.prototype.publishProxy(\"legend_shapeRadius\", \"_legend\", \"shapeRadius\");\nChartPanel.prototype.publishProxy(\"legend_symbolType\", \"_legend\", \"symbolType\");\nChartPanel.prototype.publishProxy(\"legend_labelAlign\", \"_legend\", \"labelAlign\");\nChartPanel.prototype.publish(\"widget\", null, \"widget\", \"Widget\", void 0, { render: false });\nChartPanel.prototype.publish(\"enableAutoscaling\", false, \"boolean\");\nChartPanel.prototype.publish(\"highlightSize\", 4, \"number\");\nChartPanel.prototype.publish(\"highlightColor\", \"#e67e22\", \"html-color\");\nChartPanel.prototype.publishProxy(\"progress_halfLife\", \"_progressBar\", \"halfLife\");\nChartPanel.prototype.publishProxy(\"progress_decay\", \"_progressBar\", \"decay\");\nChartPanel.prototype.publishProxy(\"progress_size\", \"_progressBar\", \"size\");\nChartPanel.prototype.publishProxy(\"progress_color\", \"_progressBar\", \"color\");\nChartPanel.prototype.publishProxy(\"progress_blurBar\", \"_progressBar\", \"blurBar\");\nChartPanel.prototype.publishProxy(\"progress_blurSize\", \"_progressBar\", \"blurSize\");\nChartPanel.prototype.publishProxy(\"progress_blurColor\", \"_progressBar\", \"blurColor\");\nChartPanel.prototype.publishProxy(\"progress_blurOpacity\", \"_progressBar\", \"blurOpacity\");\nChartPanel.prototype.widget = function(_) {\n if (!arguments.length) return this._widget;\n this._carousel.widgets([_, this._table]);\n this._widget = _;\n this._widget.fields(this._legend.filteredFields()).data(this._legend.filteredData());\n const context = this;\n const tmpAny = this._widget;\n tmpAny.click = function() {\n context.click.apply(context, arguments);\n };\n tmpAny.dblclick = function() {\n context.dblclick.apply(context, arguments);\n };\n tmpAny.vertex_click = function() {\n context.vertex_click.apply(context, arguments);\n };\n tmpAny.vertex_dblclick = function() {\n context.vertex_dblclick.apply(context, arguments);\n };\n tmpAny.edge_click = function() {\n context.edge_click.apply(context, arguments);\n };\n tmpAny.edge_dblclick = function() {\n context.edge_dblclick.apply(context, arguments);\n };\n return this;\n};\nconst _FlexGrid = class _FlexGrid extends HTMLWidget {\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n select(domNode.parentNode).style(\"height\", \"100%\").style(\"width\", \"100%\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const cachedSizes = [];\n this.updateFlexParent(element);\n const listItems = element.selectAll(\".FlexGrid-list-item\").data(this.widgets(), (w) => w.id());\n listItems.enter().append(\"div\").classed(\"FlexGrid-list-item\", true).each(function(w) {\n w.target(this);\n }).merge(listItems).style(\"min-height\", this.itemMinHeight() + \"px\").style(\"min-width\", this.itemMinWidth() + \"px\").style(\"flex-basis\", (n, i) => {\n const flexBasis = this.widgetsFlexBasis()[i];\n return typeof flexBasis !== \"undefined\" ? flexBasis : this.flexBasis();\n }).style(\"flex-grow\", (n, i) => {\n const flexGrow = this.widgetsFlexGrow()[i];\n return typeof flexGrow !== \"undefined\" ? flexGrow : this.flexGrow();\n }).style(\"border-width\", this.borderWidth() + \"px\").style(\"border-color\", this.itemBorderColor()).each(function() {\n this.firstChild.style.display = \"none\";\n }).each(function() {\n const rect = this.getBoundingClientRect();\n cachedSizes.push([\n rect.width,\n rect.height\n ]);\n }).each(function(w, i) {\n this.firstChild.style.display = \"block\";\n w.resize({\n width: cachedSizes[i][0] - 2 * context.borderWidth(),\n height: cachedSizes[i][1] - 2 * context.borderWidth()\n });\n });\n listItems.exit().remove();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n updateFlexParent(element) {\n element.style(\"height\", \"100%\").style(\"flex-direction\", this.orientation() === \"horizontal\" ? \"row\" : \"column\").style(\"flex-wrap\", this.flexWrap()).style(\"align-items\", this.alignItems()).style(\"align-content\", this.alignContent()).style(\"overflow-x\", () => {\n if (this.forceXScroll() || this.orientation() === \"horizontal\" && this.flexWrap() === \"nowrap\" && !this.disableScroll()) {\n return \"scroll\";\n }\n return \"hidden\";\n }).style(\"overflow-y\", () => {\n if (this.forceYScroll() || this.orientation() === \"vertical\" && this.flexWrap() === \"nowrap\" && !this.disableScroll()) {\n return \"scroll\";\n }\n return \"hidden\";\n });\n }\n};\n__name(_FlexGrid, \"FlexGrid\");\nlet FlexGrid = _FlexGrid;\nFlexGrid.prototype._class += \" layout_FlexGrid\";\nFlexGrid.prototype.publish(\"itemBorderColor\", \"transparent\", \"html-color\", \"Color of list item borders\");\nFlexGrid.prototype.publish(\"borderWidth\", 0, \"number\", \"Width of list item borders (pixels)\");\nFlexGrid.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Controls the flex-direction of the list items\", [\"horizontal\", \"vertical\"]);\nFlexGrid.prototype.publish(\"flexWrap\", \"wrap\", \"set\", \"Controls the line wrap when overflow occurs\", [\"nowrap\", \"wrap\", \"wrap-reverse\"]);\nFlexGrid.prototype.publish(\"disableScroll\", false, \"boolean\", \"If false, scrollbar will show (when flexWrap is set to 'nowrap')\", null, { disable: /* @__PURE__ */ __name((w) => w.flexWrap() !== \"nowrap\", \"disable\") });\nFlexGrid.prototype.publish(\"forceXScroll\", false, \"boolean\", \"If true, horzontal scrollbar will show\");\nFlexGrid.prototype.publish(\"forceYScroll\", false, \"boolean\", \"If true, vertical scrollbar will show\");\nFlexGrid.prototype.publish(\"itemMinHeight\", 64, \"number\", \"Minimum height of a list item (pixels)\");\nFlexGrid.prototype.publish(\"itemMinWidth\", 64, \"number\", \"Minimum width of a list item (pixels)\");\nFlexGrid.prototype.publish(\"alignItems\", \"stretch\", \"set\", \"Controls normal alignment of items\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\"]);\nFlexGrid.prototype.publish(\"alignContent\", \"stretch\", \"set\", \"Controls normal alignment of item rows\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"space-between\", \"space-around\"]);\nFlexGrid.prototype.publish(\"flexGrow\", 1, \"number\", \"Default flex-grow style for all list items\");\nFlexGrid.prototype.publish(\"flexBasis\", \"10%\", \"string\", \"Default flex-basis style for all list items\");\nFlexGrid.prototype.publish(\"widgetsFlexGrow\", [], \"array\", \"Array of flex-grow values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgetsFlexBasis\", [], \"array\", \"Array of flex-basis values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgets\", [], \"widgetArray\", \"Array of widgets to be rendered as list items\");\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\n__name(getDefaultExportFromCjs, \"getDefaultExportFromCjs\");\nvar gridList$1 = { exports: {} };\n(function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory();\n }\n })(commonjsGlobal, function() {\n var GridList2 = /* @__PURE__ */ __name(function(items, options) {\n this._options = options;\n for (var k2 in this.defaults) {\n if (!this._options.hasOwnProperty(k2)) {\n this._options[k2] = this.defaults[k2];\n }\n }\n this.items = items;\n this._adjustSizeOfItems();\n this.generateGrid();\n }, \"GridList\");\n GridList2.cloneItems = function(items, _items) {\n var i, k2;\n if (_items === void 0) {\n _items = [];\n }\n for (i = 0; i < items.length; i++) {\n if (!_items[i]) {\n _items[i] = {};\n }\n for (k2 in items[i]) {\n _items[i][k2] = items[i][k2];\n }\n }\n return _items;\n };\n GridList2.prototype = {\n defaults: {\n lanes: 5,\n direction: \"horizontal\"\n },\n /**\n * Illustates grid as text-based table, using a number identifier for each\n * item. E.g.\n *\n * #| 0 1 2 3 4 5 6 7 8 9 10 11 12 13\n * --------------------------------------------\n * 0| 00 02 03 04 04 06 08 08 08 12 12 13 14 16\n * 1| 01 -- 03 05 05 07 09 10 11 11 -- 13 15 --\n *\n * Warn: Does not work if items don't have a width or height specified\n * besides their position in the grid.\n */\n toString: /* @__PURE__ */ __name(function() {\n var widthOfGrid = this.grid.length, output = \"\\n #|\", border = \"\\n --\", item, i, j;\n for (i = 0; i < widthOfGrid; i++) {\n output += \" \" + this._padNumber(i, \" \");\n border += \"---\";\n }\n output += border;\n for (i = 0; i < this._options.lanes; i++) {\n output += \"\\n\" + this._padNumber(i, \" \") + \"|\";\n for (j = 0; j < widthOfGrid; j++) {\n output += \" \";\n item = this.grid[j][i];\n output += item ? this._padNumber(this.items.indexOf(item), \"0\") : \"--\";\n }\n }\n output += \"\\n\";\n return output;\n }, \"toString\"),\n generateGrid: /* @__PURE__ */ __name(function() {\n var i;\n this._resetGrid();\n for (i = 0; i < this.items.length; i++) {\n this._markItemPositionToGrid(this.items[i]);\n }\n }, \"generateGrid\"),\n resizeGrid: /* @__PURE__ */ __name(function(lanes) {\n var currentColumn = 0;\n this._options.lanes = lanes;\n this._adjustSizeOfItems();\n this._sortItemsByPosition();\n this._resetGrid();\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i], position = this._getItemPosition(item);\n this._updateItemPosition(\n item,\n this.findPositionForItem(item, { x: currentColumn, y: 0 })\n );\n currentColumn = Math.max(currentColumn, position.x);\n }\n this._pullItemsToLeft();\n }, \"resizeGrid\"),\n findPositionForItem: /* @__PURE__ */ __name(function(item, start, fixedRow) {\n var x, y, position;\n for (x = start.x; x < this.grid.length; x++) {\n if (fixedRow !== void 0) {\n position = [x, fixedRow];\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n } else {\n for (y = start.y; y < this._options.lanes; y++) {\n position = [x, y];\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n }\n }\n }\n var newCol = this.grid.length, newRow = 0;\n if (fixedRow !== void 0 && this._itemFitsAtPosition(item, [newCol, fixedRow])) {\n newRow = fixedRow;\n }\n return [newCol, newRow];\n }, \"findPositionForItem\"),\n moveItemToPosition: /* @__PURE__ */ __name(function(item, newPosition) {\n var position = this._getItemPosition({\n x: newPosition[0],\n y: newPosition[1],\n w: item.w,\n h: item.h\n });\n this._updateItemPosition(item, [position.x, position.y]);\n this._resolveCollisions(item);\n }, \"moveItemToPosition\"),\n resizeItem: /* @__PURE__ */ __name(function(item, size) {\n var width = size.w || item.w, height = size.h || item.h;\n this._updateItemSize(item, width, height);\n this._resolveCollisions(item);\n this._pullItemsToLeft();\n }, \"resizeItem\"),\n getChangedItems: /* @__PURE__ */ __name(function(initialItems, idAttribute) {\n var changedItems = [];\n for (var i = 0; i < initialItems.length; i++) {\n var item = this._getItemByAttribute(\n idAttribute,\n initialItems[i][idAttribute]\n );\n if (item.x !== initialItems[i].x || item.y !== initialItems[i].y || item.w !== initialItems[i].w || item.h !== initialItems[i].h) {\n changedItems.push(item);\n }\n }\n return changedItems;\n }, \"getChangedItems\"),\n _sortItemsByPosition: /* @__PURE__ */ __name(function() {\n this.items.sort((function(item1, item2) {\n var position1 = this._getItemPosition(item1), position2 = this._getItemPosition(item2);\n if (position1.x != position2.x) {\n return position1.x - position2.x;\n }\n if (position1.y != position2.y) {\n return position1.y - position2.y;\n }\n return 0;\n }).bind(this));\n }, \"_sortItemsByPosition\"),\n _adjustSizeOfItems: /* @__PURE__ */ __name(function() {\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.autoSize === void 0) {\n item.autoSize = item.w === 0 || item.h === 0;\n }\n if (item.autoSize) {\n if (this._options.direction === \"horizontal\") {\n item.h = this._options.lanes;\n } else {\n item.w = this._options.lanes;\n }\n }\n }\n }, \"_adjustSizeOfItems\"),\n _resetGrid: /* @__PURE__ */ __name(function() {\n this.grid = [];\n }, \"_resetGrid\"),\n _itemFitsAtPosition: /* @__PURE__ */ __name(function(item, newPosition) {\n var position = this._getItemPosition(item), x, y;\n if (newPosition[0] < 0 || newPosition[1] < 0) {\n return false;\n }\n if (newPosition[1] + position.h > this._options.lanes) {\n return false;\n }\n for (x = newPosition[0]; x < newPosition[0] + position.w; x++) {\n var col = this.grid[x];\n if (!col) {\n continue;\n }\n for (y = newPosition[1]; y < newPosition[1] + position.h; y++) {\n if (col[y] && col[y] !== item) {\n return false;\n }\n }\n }\n return true;\n }, \"_itemFitsAtPosition\"),\n _updateItemPosition: /* @__PURE__ */ __name(function(item, position) {\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n this._setItemPosition(item, position);\n this._markItemPositionToGrid(item);\n }, \"_updateItemPosition\"),\n _updateItemSize: /* @__PURE__ */ __name(function(item, width, height) {\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n item.w = width;\n item.h = height;\n this._markItemPositionToGrid(item);\n }, \"_updateItemSize\"),\n _markItemPositionToGrid: /* @__PURE__ */ __name(function(item) {\n var position = this._getItemPosition(item), x, y;\n this._ensureColumns(position.x + position.w);\n for (x = position.x; x < position.x + position.w; x++) {\n for (y = position.y; y < position.y + position.h; y++) {\n this.grid[x][y] = item;\n }\n }\n }, \"_markItemPositionToGrid\"),\n _deleteItemPositionFromGrid: /* @__PURE__ */ __name(function(item) {\n var position = this._getItemPosition(item), x, y;\n for (x = position.x; x < position.x + position.w; x++) {\n if (!this.grid[x]) {\n continue;\n }\n for (y = position.y; y < position.y + position.h; y++) {\n if (this.grid[x][y] == item) {\n this.grid[x][y] = null;\n }\n }\n }\n }, \"_deleteItemPositionFromGrid\"),\n _ensureColumns: /* @__PURE__ */ __name(function(N) {\n var i;\n for (i = 0; i < N; i++) {\n if (!this.grid[i]) {\n this.grid.push(new GridCol(this._options.lanes));\n }\n }\n }, \"_ensureColumns\"),\n _getItemsCollidingWithItem: /* @__PURE__ */ __name(function(item) {\n var collidingItems = [];\n for (var i = 0; i < this.items.length; i++) {\n if (item != this.items[i] && this._itemsAreColliding(item, this.items[i])) {\n collidingItems.push(i);\n }\n }\n return collidingItems;\n }, \"_getItemsCollidingWithItem\"),\n _itemsAreColliding: /* @__PURE__ */ __name(function(item1, item2) {\n var position1 = this._getItemPosition(item1), position2 = this._getItemPosition(item2);\n return !(position2.x >= position1.x + position1.w || position2.x + position2.w <= position1.x || position2.y >= position1.y + position1.h || position2.y + position2.h <= position1.y);\n }, \"_itemsAreColliding\"),\n _resolveCollisions: /* @__PURE__ */ __name(function(item) {\n if (!this._tryToResolveCollisionsLocally(item)) {\n this._pullItemsToLeft(item);\n }\n this._pullItemsToLeft();\n }, \"_resolveCollisions\"),\n _tryToResolveCollisionsLocally: /* @__PURE__ */ __name(function(item) {\n var collidingItems = this._getItemsCollidingWithItem(item);\n if (!collidingItems.length) {\n return true;\n }\n var _gridList = new GridList2([], this._options), leftOfItem, rightOfItem, aboveOfItem, belowOfItem;\n GridList2.cloneItems(this.items, _gridList.items);\n _gridList.generateGrid();\n for (var i = 0; i < collidingItems.length; i++) {\n var collidingItem = _gridList.items[collidingItems[i]], collidingPosition = this._getItemPosition(collidingItem);\n var position = this._getItemPosition(item);\n leftOfItem = [position.x - collidingPosition.w, collidingPosition.y];\n rightOfItem = [position.x + position.w, collidingPosition.y];\n aboveOfItem = [collidingPosition.x, position.y - collidingPosition.h];\n belowOfItem = [collidingPosition.x, position.y + position.h];\n if (_gridList._itemFitsAtPosition(collidingItem, leftOfItem)) {\n _gridList._updateItemPosition(collidingItem, leftOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, aboveOfItem)) {\n _gridList._updateItemPosition(collidingItem, aboveOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, belowOfItem)) {\n _gridList._updateItemPosition(collidingItem, belowOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, rightOfItem)) {\n _gridList._updateItemPosition(collidingItem, rightOfItem);\n } else {\n return false;\n }\n }\n GridList2.cloneItems(_gridList.items, this.items);\n this.generateGrid();\n return true;\n }, \"_tryToResolveCollisionsLocally\"),\n _pullItemsToLeft: /* @__PURE__ */ __name(function(fixedItem) {\n this._sortItemsByPosition();\n this._resetGrid();\n if (fixedItem) {\n var fixedPosition = this._getItemPosition(fixedItem);\n this._updateItemPosition(fixedItem, [fixedPosition.x, fixedPosition.y]);\n }\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i], position = this._getItemPosition(item);\n if (fixedItem && item == fixedItem) {\n continue;\n }\n var x = this._findLeftMostPositionForItem(item), newPosition = this.findPositionForItem(\n item,\n { x, y: 0 },\n position.y\n );\n this._updateItemPosition(item, newPosition);\n }\n }, \"_pullItemsToLeft\"),\n _findLeftMostPositionForItem: /* @__PURE__ */ __name(function(item) {\n var tail = 0, position = this._getItemPosition(item);\n for (var i = 0; i < this.grid.length; i++) {\n for (var j = position.y; j < position.y + position.h; j++) {\n var otherItem = this.grid[i][j];\n if (!otherItem) {\n continue;\n }\n var otherPosition = this._getItemPosition(otherItem);\n if (this.items.indexOf(otherItem) < this.items.indexOf(item)) {\n tail = otherPosition.x + otherPosition.w;\n }\n }\n }\n return tail;\n }, \"_findLeftMostPositionForItem\"),\n _getItemByAttribute: /* @__PURE__ */ __name(function(key, value) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i][key] === value) {\n return this.items[i];\n }\n }\n return null;\n }, \"_getItemByAttribute\"),\n _padNumber: /* @__PURE__ */ __name(function(nr, prefix) {\n return nr >= 10 ? nr : prefix + nr;\n }, \"_padNumber\"),\n _getItemPosition: /* @__PURE__ */ __name(function(item) {\n if (this._options.direction === \"horizontal\") {\n return item;\n } else {\n return {\n x: item.y,\n y: item.x,\n w: item.h,\n h: item.w\n };\n }\n }, \"_getItemPosition\"),\n _setItemPosition: /* @__PURE__ */ __name(function(item, position) {\n if (this._options.direction === \"horizontal\") {\n item.x = position[0];\n item.y = position[1];\n } else {\n item.x = position[1];\n item.y = position[0];\n }\n }, \"_setItemPosition\")\n };\n var GridCol = /* @__PURE__ */ __name(function(lanes) {\n for (var i = 0; i < lanes; i++) {\n this.push(null);\n }\n }, \"GridCol\");\n GridCol.prototype = [];\n return GridList2;\n });\n})(gridList$1);\nvar gridListExports = gridList$1.exports;\nconst gridList = /* @__PURE__ */ getDefaultExportFromCjs(gridListExports);\nconst _GridList = /* @__PURE__ */ _mergeNamespaces({\n __proto__: null,\n default: gridList\n}, [gridListExports]);\nconst GridList = _GridList && gridList || _GridList;\nconst _Grid = class _Grid extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"divItems\");\n __publicField(this, \"gridList\");\n __publicField(this, \"items\");\n __publicField(this, \"itemsMap\");\n __publicField(this, \"origItems\");\n __publicField(this, \"cellWidth\");\n __publicField(this, \"cellHeight\");\n __publicField(this, \"dragItem\");\n __publicField(this, \"dragItemPos\");\n __publicField(this, \"_d3Drag\");\n __publicField(this, \"_d3DragResize\");\n __publicField(this, \"_selectionBag\");\n __publicField(this, \"_scrollBarWidth\");\n this._tag = \"div\";\n this._selectionBag = new Utility.Selection(this);\n this.content([]);\n }\n getDimensions() {\n const size = { width: 0, height: 0 };\n this.content().forEach(function(cell) {\n if (size.width < cell.gridCol() + cell.gridColSpan()) {\n size.width = cell.gridCol() + cell.gridColSpan();\n }\n if (size.height < cell.gridRow() + cell.gridRowSpan()) {\n size.height = cell.gridRow() + cell.gridRowSpan();\n }\n }, this);\n return size;\n }\n clearContent(widget) {\n this.content(this.content().filter(function(contentWidget) {\n if (!widget) {\n contentWidget.target(null);\n return false;\n }\n let w = contentWidget;\n while (w) {\n if (widget === w) {\n contentWidget.target(null);\n return false;\n }\n w = w.widget ? w.widget() : null;\n }\n return true;\n }));\n }\n setContent(row, col, widget, title, rowSpan, colSpan) {\n rowSpan = rowSpan || 1;\n colSpan = colSpan || 1;\n title = title || \"\";\n this.content(this.content().filter(function(contentWidget) {\n if (contentWidget.gridRow() === row && contentWidget.gridCol() === col) {\n contentWidget.target(null);\n return false;\n }\n return true;\n }));\n if (widget) {\n const cell = new Cell().gridRow(row).gridCol(col).widget(widget).title(title).gridRowSpan(rowSpan).gridColSpan(colSpan);\n this.content().push(cell);\n }\n return this;\n }\n sortedContent() {\n return this.content().sort(function(l, r) {\n if (l.gridRow() === r.gridRow()) {\n return l.gridCol() - r.gridCol();\n }\n return l.gridRow() - r.gridRow();\n });\n }\n getCell(row, col) {\n let retVal = null;\n this.content().some(function(cell) {\n if (row >= cell.gridRow() && row < cell.gridRow() + cell.gridRowSpan() && col >= cell.gridCol() && col < cell.gridCol() + cell.gridColSpan()) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n getWidgetCell(id) {\n let retVal = null;\n this.content().some(function(cell) {\n if (cell.widget().id() === id) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n getContent(id) {\n let retVal = null;\n this.content().some(function(cell) {\n if (cell.widget().id() === id) {\n retVal = cell.widget();\n return true;\n }\n return false;\n });\n return retVal;\n }\n cellToGridItem(cell) {\n return {\n x: cell.gridCol(),\n y: cell.gridRow(),\n w: cell.gridColSpan(),\n h: cell.gridRowSpan(),\n id: cell.id(),\n cell\n };\n }\n gridItemToCell(item) {\n item.cell.gridCol(item.x).gridRow(item.y).gridColSpan(item.w).gridRowSpan(item.h);\n }\n resetItemsPos() {\n this.origItems.forEach(function(origItem) {\n const item = this.itemsMap[origItem.id];\n item.x = origItem.x;\n item.y = origItem.y;\n }, this);\n }\n initGridList() {\n this.itemsMap = {};\n this.items = this.content().map(function(cell) {\n const retVal = this.cellToGridItem(cell);\n this.itemsMap[retVal.id] = retVal;\n return retVal;\n }, this);\n this.origItems = this.content().map(this.cellToGridItem);\n this.gridList = new GridList(this.items, {\n direction: this.snapping(),\n lanes: this.snapping() === \"horizontal\" ? this.snappingRows() : this.snappingColumns()\n });\n }\n killGridList() {\n this.gridList = null;\n delete this.items;\n delete this.itemsMap;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._scrollBarWidth = Platform.getScrollbarWidth();\n const context = this;\n this._d3Drag = drag().subject(function(_d) {\n const d = context.cellToGridItem(_d);\n return { x: d.x * context.cellWidth, y: d.y * context.cellHeight };\n }).on(\"start\", function(_d) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\").attr(\"class\", \"dragging\").style(\"transform\", function() {\n return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight - context.gutter() + \"px\";\n });\n context.selectionBagClick(_d);\n }).on(\"drag\", function(_d) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n if (event.x < 0) {\n event.x = 0;\n }\n if (event.x + d.w * context.cellWidth > context.snappingColumns() * context.cellWidth) {\n event.x = context.snappingColumns() * context.cellWidth - d.w * context.cellWidth;\n }\n if (event.y < 0) {\n event.y = 0;\n }\n if (event.y + d.h * context.cellWidth > context.snappingRows() * context.cellWidth) {\n event.y = context.snappingRows() * context.cellWidth - d.h * context.cellWidth;\n }\n const pos = [Math.max(0, Math.floor((event.x + context.cellWidth / 2) / context.cellWidth)), Math.max(0, Math.floor((event.y + context.cellHeight / 2) / context.cellHeight))];\n if (d.x !== pos[0] || d.y !== pos[1]) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.moveItemToPosition(d, pos);\n } else {\n d.x = pos[0];\n d.y = pos[1];\n }\n if (_d.gridCol() !== d.x || _d.gridRow() !== d.y) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(false, 100);\n }\n }\n context.dragItem.style(\"transform\", function() {\n return \"translate(\" + event.x + \"px, \" + event.y + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight + \"px\";\n });\n }).on(\"end\", function() {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n });\n this._d3DragResize = drag().subject(function(_d) {\n const d = context.cellToGridItem(_d);\n return { x: (d.x + d.w - 1) * context.cellWidth, y: (d.y + d.h - 1) * context.cellHeight };\n }).on(\"start\", function(_d) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\").attr(\"class\", \"resizing\").style(\"transform\", function() {\n return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\";\n }).style(\"width\", function() {\n return d.w * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return d.h * context.cellHeight - context.gutter() + \"px\";\n });\n context.dragItemPos = { x: d.x, y: d.y };\n }).on(\"drag\", function(_d) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n const pos = [Math.max(0, Math.round(event.x / context.cellWidth)), Math.max(0, Math.round(event.y / context.cellHeight))];\n const size = {\n w: Math.max(1, pos[0] - d.x + 1),\n h: Math.max(1, pos[1] - d.y + 1)\n };\n if (d.w !== size.w || d.h !== size.h) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.resizeItem(d, size);\n } else {\n d.w = size.w;\n d.h = size.h;\n }\n if (_d.gridColSpan() !== d.w || _d.gridRowSpan() !== d.h) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id, 100);\n }\n }\n context.dragItem.style(\"width\", function() {\n return (-d.x + 1) * context.cellWidth + event.x - context.gutter() + \"px\";\n }).style(\"height\", function() {\n return (-d.y + 1) * context.cellHeight + event.y - context.gutter() + \"px\";\n });\n }).on(\"end\", function() {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n });\n }\n updateGrid(resize, transitionDuration = 0, _noRender = false) {\n transitionDuration = transitionDuration || 0;\n const context = this;\n this.divItems.classed(\"draggable\", this.designMode()).transition().duration(transitionDuration).style(\"left\", function(d) {\n return d.gridCol() * context.cellWidth + context.gutter() / 2 + \"px\";\n }).style(\"top\", function(d) {\n return d.gridRow() * context.cellHeight + context.gutter() / 2 + \"px\";\n }).style(\"width\", function(d) {\n return d.gridColSpan() * context.cellWidth - context.gutter() + \"px\";\n }).style(\"height\", function(d) {\n return d.gridRowSpan() * context.cellHeight - context.gutter() + \"px\";\n }).on(\"end\", function(d) {\n d.surfaceShadow_default(context.surfaceShadow()).surfacePadding_default(context.surfacePadding()).surfaceBorderWidth_default(context.surfaceBorderWidth()).surfaceBackgroundColor_default(context.surfaceBackgroundColor());\n if (resize === true || resize === d.id()) {\n d.resize().lazyRender();\n }\n });\n }\n update(domNode, element2) {\n super.update(domNode, element2);\n this._placeholderElement.style(\"overflow-x\", this.fitTo() === \"width\" ? \"hidden\" : null);\n this._placeholderElement.style(\"overflow-y\", this.fitTo() === \"width\" ? \"scroll\" : null);\n const dimensions = this.getDimensions();\n const clientWidth = this.width() - (this.fitTo() === \"width\" ? this._scrollBarWidth : 0);\n this.cellWidth = clientWidth / dimensions.width;\n this.cellHeight = this.fitTo() === \"all\" ? this.height() / dimensions.height : this.cellWidth;\n if (this.designMode()) {\n const cellLaneRatio = Math.min(this.width() / this.snappingColumns(), this.height() / this.snappingRows());\n const laneWidth = Math.floor(cellLaneRatio);\n this.cellWidth = laneWidth;\n this.cellHeight = this.cellWidth;\n }\n const context = this;\n const divItems = element2.selectAll(\"#\" + this.id() + \" > .ddCell\").data(this.content(), function(d) {\n return d.id();\n });\n this.divItems = divItems.enter().append(\"div\").attr(\"class\", \"ddCell\").each(function(d) {\n d.target(this);\n d.__grid_watch = d.monitor(function(key, newVal, oldVal) {\n if (context._renderCount && (key === \"snapping\" || key.indexOf(\"grid\") === 0) && newVal !== oldVal) {\n if (!context.gridList) {\n context.initGridList();\n if (context.snapping() !== \"none\") {\n context.gridList.resizeGrid(context.snapping() === \"horizontal\" ? context.snappingRows() : context.snappingColumns());\n }\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id(), 100);\n context.killGridList();\n }\n }\n });\n const element = select(this);\n element.append(\"div\").attr(\"class\", \"resizeHandle\").call(context._d3DragResize).append(\"div\").attr(\"class\", \"resizeHandleDisplay\");\n }).merge(divItems);\n this.divItems.each(function(d) {\n const element = select(this);\n if (context.designMode()) {\n element.call(context._d3Drag);\n } else {\n element.on(\"mousedown.drag\", null).on(\"touchstart.drag\", null);\n }\n });\n this.divItems.select(\".resizeHandle\").style(\"display\", this.designMode() ? null : \"none\");\n this.updateGrid(true);\n divItems.exit().each(function(d) {\n d.target(null);\n if (d.__grid_watch) {\n d.__grid_watch.remove();\n }\n }).remove();\n const lanesBackground = element2.selectAll(\"#\" + this.id() + \" > .laneBackground\").data(this.designMode() ? [\"\"] : []);\n lanesBackground.enter().insert(\"div\", \":first-child\").attr(\"class\", \"laneBackground\").style(\"left\", \"1px\").style(\"top\", \"1px\").on(\"click\", function() {\n context.selectionBagClear();\n }).merge(lanesBackground).style(\"width\", this.snappingColumns() * this.cellWidth + \"px\").style(\"height\", this.snappingRows() * this.cellHeight + \"px\");\n lanesBackground.exit().each(function() {\n context.selectionBagClear();\n }).remove();\n const lanes = element2.selectAll(\"#\" + this.id() + \" > .lane\").data(this.designMode() ? [\"\"] : []);\n lanes.enter().append(\"div\").attr(\"class\", \"lane\").style(\"left\", \"1px\").style(\"top\", \"1px\");\n lanes.style(\"display\", this.showLanes() ? null : \"none\").style(\"width\", this.snappingColumns() * this.cellWidth + \"px\").style(\"height\", this.snappingRows() * this.cellHeight + \"px\").style(\"background-image\", \"linear-gradient(to right, grey 1px, transparent 1px), linear-gradient(to bottom, grey 1px, transparent 1px)\").style(\"background-size\", this.cellWidth + \"px \" + this.cellHeight + \"px\");\n lanes.exit().remove();\n }\n exit(domNode, element) {\n this.content().forEach((w) => w.target(null));\n super.exit(domNode, element);\n }\n _createSelectionObject(d) {\n return {\n _id: d._id,\n element: /* @__PURE__ */ __name(() => {\n return d._element;\n }, \"element\"),\n widget: d\n };\n }\n selection(_) {\n if (!arguments.length) return this._selectionBag.get().map(function(d) {\n return d._id;\n });\n this._selectionBag.set(_.map(function(row) {\n return this._createSelectionObject(row);\n }, this));\n return this;\n }\n selectionBagClear() {\n if (!this._selectionBag.isEmpty()) {\n this._selectionBag.clear();\n this.postSelectionChange();\n }\n }\n selectionBagClick(d) {\n if (d !== null) {\n const selectionObj = this._createSelectionObject(d);\n if (d3Event().sourceEvent.ctrlKey) {\n if (this._selectionBag.isSelected(selectionObj)) {\n this._selectionBag.remove(selectionObj);\n this.postSelectionChange();\n } else {\n this._selectionBag.append(selectionObj);\n this.postSelectionChange();\n }\n } else {\n const selected = this._selectionBag.get();\n if (selected.length === 1 && selected[0]._id === selectionObj._id) {\n this.selectionBagClear();\n } else {\n this._selectionBag.set([selectionObj]);\n }\n this.postSelectionChange();\n }\n }\n }\n postSelectionChange() {\n }\n applyLayout(layoutArr) {\n this.divItems.each((d, i) => {\n if (layoutArr[i]) {\n const [x, y, w, h] = layoutArr[i];\n d.gridCol(x).gridRow(y).gridColSpan(w).gridRowSpan(h);\n }\n });\n this.updateGrid(true);\n }\n vizActivation(elem) {\n }\n};\n__name(_Grid, \"Grid\");\nlet Grid = _Grid;\nGrid.prototype._class += \" layout_Grid\";\nGrid.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"showLanes\", true, \"boolean\", \"Show snapping lanes when in design mode\", null, { tags: [\"Basic\"], disable: /* @__PURE__ */ __name((w) => !w.designMode(), \"disable\") });\nGrid.prototype.publish(\"fitTo\", \"all\", \"set\", \"Sizing Strategy\", [\"all\", \"width\"], { tags: [\"Basic\"] });\nGrid.prototype.publish(\"snapping\", \"vertical\", \"set\", \"Snapping Strategy\", [\"vertical\", \"horizontal\", \"none\"]);\nGrid.prototype.publish(\"snappingColumns\", 12, \"number\", \"Snapping Columns\");\nGrid.prototype.publish(\"snappingRows\", 16, \"number\", \"Snapping Rows\");\nGrid.prototype.publish(\"gutter\", 6, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"surfaceShadow\", true, \"boolean\", \"3D Shadow\");\nGrid.prototype.publish(\"surfacePadding\", null, \"string\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBorderWidth\", 1, \"number\", \"Width (px) of Cell Border\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nGrid.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Basic\"], render: false });\nconst _HorizontalList = class _HorizontalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"horizontal\");\n this.flexWrap_default(\"nowrap\");\n }\n};\n__name(_HorizontalList, \"HorizontalList\");\nlet HorizontalList = _HorizontalList;\nHorizontalList.prototype._class += \" layout_HorizontalList\";\nconst _Layered = class _Layered extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_contentContainer\");\n __publicField(this, \"_widgetPlacements\");\n __publicField(this, \"_widgetRatios\");\n this._tag = \"div\";\n this._widgetPlacements = [];\n this._widgetRatios = [];\n }\n addLayer(widget, placement = \"default\", widthRatio = 1, heightRatio = 1) {\n const widgets = this.widgets();\n widgets.push(widget ? widget : new Text().text(\"No widget defined for layer.\"));\n this.widgets(widgets);\n this._widgetPlacements.push(placement);\n this._widgetRatios.push([widthRatio, heightRatio]);\n return this;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._contentContainer = element.append(\"div\").attr(\"class\", \"container\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.style(\"padding\", this.surfacePadding() + \"px\");\n const content = this._contentContainer.selectAll(\".content.id\" + this.id()).data(this.widgets(), function(d) {\n return d.id();\n });\n content.enter().append(\"div\").attr(\"class\", \"content id\" + this.id()).each(function(widget, idx) {\n widget.target(this);\n }).merge(content).each(function(widget, idx) {\n const clientSize = {\n width: context.clientWidth(),\n height: context.clientHeight()\n };\n const widgetSize = context.widgetSize(idx, clientSize);\n const widgetPosition = context.widgetPosition(idx, clientSize, widgetSize);\n this.style.top = widgetPosition.y + \"px\";\n this.style.left = widgetPosition.x + \"px\";\n widget.resize(widgetSize).render();\n });\n content.exit().each(function(widget, idx) {\n widget.target(null);\n }).remove();\n content.order();\n }\n widgetSize(idx, clientSize) {\n if (this._widgetPlacements[idx] === \"default\") {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n } else {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n }\n }\n widgetPosition(idx, clientSize, widgetSize) {\n switch (this._widgetPlacements[idx]) {\n default:\n return {\n x: 0,\n y: 0\n };\n case \"top\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: 0\n };\n case \"bottom\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: clientSize.height - widgetSize.height\n };\n case \"left\":\n return {\n x: 0,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n case \"right\":\n return {\n x: clientSize.width - widgetSize.width,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n case \"center\":\n return {\n x: clientSize.width / 2 - widgetSize.width / 2,\n y: clientSize.height / 2 - widgetSize.height / 2\n };\n }\n }\n};\n__name(_Layered, \"Layered\");\nlet Layered = _Layered;\nLayered.prototype._class += \" layout_Layered\";\nLayered.prototype.publish(\"surfacePadding\", 0, \"number\", \"Padding\");\nLayered.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\nconst _Popup = class _Popup extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_surfaceButtons\");\n __publicField(this, \"_originalPosition\");\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n updateState(visible) {\n visible = visible || !this.popupState();\n this.popupState(visible).render();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this.widget().target(domNode);\n this._originalPosition = this.position();\n }\n update(domNode, element) {\n super.update(domNode, element);\n element.style(\"visibility\", this.popupState() ? null : \"hidden\").style(\"opacity\", this.popupState() ? null : 0).style(\"width\", this.shrinkWrap() ? this.widget().width() + \"px\" : this._size.width + \"px\").style(\"height\", this.shrinkWrap() ? this.widget().height() + \"px\" : this._size.height + \"px\");\n if (this.widget().size().height === 0) {\n this.widget().resize(this.size());\n }\n }\n postUpdate(domNode, element) {\n let left;\n let top;\n switch (this.centerPopup()) {\n case \"container\":\n if (this._placeholderElement) {\n left = parseInt(this._placeholderElement.style(\"width\")) / 2 - this.widget().width() / 2;\n top = parseInt(this._placeholderElement.style(\"height\")) / 2 - this.widget().height() / 2;\n }\n this.position(\"absolute\");\n break;\n case \"window\":\n left = window.innerWidth / 2 - this.widget().width() / 2;\n top = window.innerHeight / 2 - this.widget().height() / 2;\n this.position(\"fixed\");\n break;\n default:\n left = 0;\n top = 0;\n this.position(this._originalPosition);\n break;\n }\n this.pos({ x: left, y: top });\n super.postUpdate(domNode, element);\n element.style(\"position\", this.position()).style(\"left\", this.left() + \"px\").style(\"right\", this.right() + \"px\").style(\"top\", this.top() + \"px\").style(\"bottom\", this.bottom() + \"px\");\n }\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n click(obj) {\n }\n};\n__name(_Popup, \"Popup\");\nlet Popup = _Popup;\nPopup.prototype._class += \" layout_Popup\";\nPopup.prototype.publish(\"popupState\", false, \"boolean\", \"State of the popup, visible (true) or hidden (false)\", null, {});\nPopup.prototype.publish(\"shrinkWrap\", false, \"boolean\", \"The popup parent container either shrinks to the size of its contents (true) or expands to fit thge popup's parentDiv (false)\", null, {});\nPopup.prototype.publish(\"centerPopup\", \"none\", \"set\", \"Center the widget in its container element (target) or in the window\", [\"none\", \"container\", \"window\"], {});\nPopup.prototype.publish(\"top\", null, \"number\", \"Top position property of popup\", null, {});\nPopup.prototype.publish(\"bottom\", null, \"number\", \"Bottom position property of popup\", null, {});\nPopup.prototype.publish(\"left\", null, \"number\", \"Left position property of popup\", null, {});\nPopup.prototype.publish(\"right\", null, \"number\", \"Right position property of popup\", null, {});\nPopup.prototype.publish(\"position\", \"relative\", \"set\", \"Value of the 'position' property\", [\"absolute\", \"relative\", \"fixed\", \"static\", \"initial\", \"inherit\"], { tags: [\"Private\"] });\nPopup.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nconst _Tabbed = class _Tabbed extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_tabContainer\");\n __publicField(this, \"_contentContainer\");\n this._tag = \"div\";\n }\n clearTabs() {\n this.labels([]);\n this.widgets([]);\n return this;\n }\n addTab(widget, label, isActive, callback) {\n const widgetSize = widget.size();\n if (widgetSize.width === 0 && widgetSize.height === 0) {\n widget.size({ width: \"100%\", height: \"100%\" });\n }\n const labels = this.labels();\n const widgets = this.widgets();\n if (isActive) {\n this.activeTabIdx(this.widgets().length);\n }\n labels.push(label);\n const surface = new Surface().widget(widget ? widget : new Text().text(\"No widget defined for tab\"));\n widgets.push(surface);\n this.labels(labels);\n this.widgets(widgets);\n if (callback) {\n callback(surface);\n }\n return this;\n }\n widgetSize(widgetDiv) {\n const width = this.clientWidth();\n let height = this.clientHeight();\n const tcBox = this._tabContainer.node().getBoundingClientRect();\n if (typeof tcBox.height !== \"undefined\") {\n height -= tcBox.height;\n }\n return { width, height };\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tabContainer = element.append(\"div\");\n this._contentContainer = element.append(\"div\");\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null);\n const tabs = this._tabContainer.selectAll(\".tab-button.id\" + this.id()).data(this.showTabs() ? this.labels() : [], function(d) {\n return d;\n });\n tabs.enter().append(\"span\").attr(\"class\", \"tab-button id\" + this.id()).style(\"cursor\", \"pointer\").on(\"click\", function(d, idx) {\n context.click(context.widgets()[idx].widget(), d, idx);\n context.activeTabIdx(idx).render();\n }).merge(tabs).classed(\"active\", function(d, idx) {\n return context.activeTabIdx() === idx;\n }).text(function(d) {\n return d;\n });\n tabs.exit().remove();\n const content = this._contentContainer.selectAll(\".tab-content.id\" + this.id()).data(this.widgets(), function(d) {\n return d.id();\n });\n content.enter().append(\"div\").attr(\"class\", \"tab-content id\" + this.id()).each(function(widget, idx) {\n widget.target(this);\n }).merge(content).classed(\"active\", function(d, idx) {\n return context.activeTabIdx() === idx;\n }).style(\"display\", function(d, idx) {\n return context.activeTabIdx() === idx ? \"block\" : \"none\";\n }).each(function(surface, idx) {\n surface.visible(context.activeTabIdx() === idx);\n if (context.activeTabIdx() === idx) {\n const wSize = context.widgetSize(select(this));\n surface.surfaceBorderWidth(context.showTabs() ? null : 0).surfacePadding(context.showTabs() ? null : 0).resize(wSize);\n }\n });\n content.exit().each(function(widget, idx) {\n widget.target(null);\n }).remove();\n switch (this.tabLocation()) {\n case \"bottom\":\n this._tabContainer.attr(\"class\", \"on_bottom\").style(\"top\", this._contentContainer.node().offsetHeight + this.surfacePadding() + \"px\").style(\"position\", \"absolute\");\n this._contentContainer.style(\"top\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null).style(\"position\", \"absolute\");\n break;\n default:\n this._tabContainer.attr(\"class\", \"on_top\").style(\"top\", null).style(\"position\", \"relative\");\n this._contentContainer.style(\"top\", this._tabContainer.node().offsetHeight + this.surfacePadding() + \"px\").style(\"position\", \"absolute\");\n break;\n }\n }\n click(widget, column, idx) {\n }\n};\n__name(_Tabbed, \"Tabbed\");\nlet Tabbed = _Tabbed;\nTabbed.prototype._class += \" layout_Tabbed\";\nTabbed.prototype.publish(\"showTabs\", true, \"boolean\", \"Show Tabs\", null, {});\nTabbed.prototype.publish(\"surfacePadding\", 4, \"number\", \"Padding\");\nTabbed.prototype.publish(\"activeTabIdx\", 0, \"number\", \"Index of active tab\", null, {});\nTabbed.prototype.publish(\"labels\", [], \"array\", \"Array of tab labels sharing an index with \", null, { tags: [\"Private\"] });\nTabbed.prototype.publish(\"tabLocation\", \"top\", \"set\", \"Position the tabs at the bottom of the widget\", [\"top\", \"bottom\"], { tags: [\"Private\"] });\nTabbed.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\nconst _Toolbar = class _Toolbar extends HTMLWidget {\n constructor() {\n super();\n this._tag = \"div\";\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n element.attr(\"title\", context.title()).style(\"background-color\", this.backgroundColor());\n const title = element.selectAll(\"div.toolbar-title\").data(this.title() ? [this.title()] : []);\n title.enter().append(\"div\").classed(\"toolbar-title\", true).append(\"span\");\n title.selectAll(\"div.toolbar-title > span\").style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null).style(\"color\", this.fontColor_exists() ? this.fontColor() : null).style(\"font-family\", this.fontFamily_exists() ? this.fontFamily() : null).style(\"font-weight\", this.fontBold_exists() ? this.fontBold() ? \"bold\" : \"normal\" : null).style(\"background-color\", this.backgroundColor_exists() ? this.backgroundColor() : null).text(context.title());\n title.exit().remove();\n const childWidgets = element.selectAll(\"div.toolbar-child\").data(this.widgets() !== null ? this.widgets() : [], function(d) {\n return d.id();\n });\n childWidgets.enter().insert(\"div\", \"div.toolbar-title\").each(function(d, i) {\n const widgetClass = context.widgetClasses()[i] ? context.widgetClasses()[i] + \" toolbar-child\" : \"toolbar-child\";\n select(this).classed(widgetClass, true);\n d.target(this);\n });\n childWidgets.exit().each(function(d) {\n d.target(null);\n }).remove();\n childWidgets.order();\n }\n render(callback) {\n const context = this;\n return super.render(function(w) {\n const toolbarBBox = context.element().node().getBoundingClientRect();\n let minX = toolbarBBox.left + toolbarBBox.width;\n context.element().selectAll(\"div.toolbar-child\").each(function(d, i) {\n const childBBox = this.getBoundingClientRect();\n if (minX > childBBox.left)\n minX = childBBox.left;\n });\n context.element().select(\".toolbar-title\").style(\"width\", minX - toolbarBBox.left - 4 + \"px\");\n if (callback) {\n callback(w);\n }\n });\n }\n exit(domNode, element) {\n this.widgets().forEach(function(w) {\n w.target(null);\n });\n super.exit(domNode, element);\n }\n};\n__name(_Toolbar, \"Toolbar\");\nlet Toolbar = _Toolbar;\nToolbar.prototype._class += \" layout_Toolbar\";\nToolbar.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nToolbar.prototype.publish(\"fontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"backgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: true });\nToolbar.prototype.publish(\"responsive\", true, \"boolean\", \"Adapts to pixel width\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgets\", [], \"widgetArray\", \"Child widgets of the toolbar\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgetClasses\", [], \"array\", \"Array of Html Element classes to be assigned to the child widgets (shares index with widgets param)\", null, { tags: [\"Basic\"] });\nconst _VerticalList = class _VerticalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"vertical\");\n this.flexWrap_default(\"nowrap\");\n }\n};\n__name(_VerticalList, \"VerticalList\");\nlet VerticalList = _VerticalList;\nVerticalList.prototype._class += \" layout_VerticalList\";\nexport {\n AbsoluteSurface,\n Accordion,\n BUILD_VERSION,\n Border,\n Border2,\n Carousel,\n Cell,\n ChartPanel,\n FlexGrid,\n Grid,\n HorizontalList,\n Layered,\n Legend,\n Modal,\n PKG_NAME,\n PKG_VERSION,\n Popup,\n Surface,\n Tabbed,\n Toolbar,\n VerticalList,\n WidgetDiv\n};\n//# sourceMappingURL=index.js.map\n!function(){\"use strict\";try{if(\"undefined\"!=typeof document){var o=document.createElement(\"style\");o.appendChild(document.createTextNode('.layout_AbsoluteSurface{pointer-events:none!important}.layout_AbsoluteSurface>.placeholder{position:relative;overflow:hidden;pointer-events:all}.layout_Accordion>ul{position:relative}.layout_Accordion.open>span{font-style:italic}.layout_Accordion.closed>ul{height:0px;overflow:hidden}.layout_Accordion.open>ul{display:block}.layout_Accordion>.collapsible-icon,.layout_Accordion>.collapsible-title{cursor:pointer;box-sizing:border-box}.layout_Accordion>.collapsible-title{display:block;width:100%}.layout_Accordion>.collapsible-title{font-size:13px;color:#fff;padding:4px 8px;height:26px;-webkit-box-shadow:inset 0px -1px 1px 0px rgba(0,0,0,.2);-moz-box-shadow:inset 0px -1px 1px 0px rgba(0,0,0,.2);box-shadow:inset 0 -1px 1px #0003}.layout_Accordion li{background-color:#fff}.layout_Accordion>ul,.layout_Accordion>.collapsible-title{background-color:#333}.layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion>.collapsible-title{background-color:#555}.layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#777}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#999}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#bbb}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#ccc}.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion>.collapsible-title{background-color:#ddd}.layout_Accordion>ul,.layout_Accordion>span{padding-left:0}.layout_Accordion .layout_Accordion>ul,.layout_Accordion .layout_Accordion>span{padding-left:12px}.layout_Accordion>.collapsible-title:before{padding:4px 8px;position:absolute;left:0;top:0}.layout_Accordion>.collapsible-icon{position:absolute;top:0;right:0;width:24px;height:24px;color:#fff}.layout_Surface{box-sizing:border-box;margin:0;border:1px solid #e5e5e5;overflow:hidden;height:100%;width:100%}.layout_Surface.shadow2{box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f}.layout_Surface>h3{margin:0;padding:2px;background-color:#e5e5e5}.layout_Surface .html-button-container{position:absolute;right:0;top:3px}.layout_Surface>div{padding:8px}.layout_Surface .html-button-container .surface-button{margin-right:5px}.layout_Surface .html-button-container .surface-button i{opacity:.8}.layout_Surface .html-button-container .surface-button:hover{opacity:1}.layout_Surface .html-button-container .surface-button:active{opacity:.5}div[draggable=true].hideDragCellContent.content-icon:before{content:\"\";font-family:FontAwesome;position:absolute;top:calc(50% - 74px);left:calc(50% - 56px);font-size:100px}div[draggable=true].hideDragCellContent.content-icon-Line:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Pie:before{top:calc(50% - 72px);left:calc(50% - 45px);content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Area:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Gauge:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Table:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Form:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Grid:before,div[draggable=true].hideDragCellContent.content-icon-Graph:before,div[draggable=true].hideDragCellContent.content-icon-Border:before,div[draggable=true].hideDragCellContent.content-icon-Tabbed:before,div[draggable=true].hideDragCellContent.content-icon-Accordion:before,div[draggable=true].hideDragCellContent.content-icon-MultiChart:before,div[draggable=true].hideDragCellContent.content-icon-MultiChartSurface:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-ChoroplethStates:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethStatesHeat:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethCounties:before,div[draggable=true].hideDragCellContent.content-icon-ChoroplethCountries:before,div[draggable=true].hideDragCellContent.content-icon-GMap:before,div[draggable=true].hideDragCellContent.content-icon-GMapHeat:before,div[draggable=true].hideDragCellContent.content-icon-GMapGraph:before{content:\"\"}div[draggable=true].hideDragCellContent.content-icon-Text:before,div[draggable=true].hideDragCellContent.content-icon-TextBox:before,div[draggable=true].hideDragCellContent.content-icon-FAChar:before{content:\"\"}.layout_Cell .update-indicator{box-sizing:border-box;position:absolute;top:0;left:0;padding:0;z-index:1000;border-width:0px;border-style:solid;pointer-events:none}.layout_Border{width:100%;height:100%}.layout_Border>.border-content{width:100%;height:100%;position:relative}.layout_Border>.borderHandle{width:6px;height:6px;background-color:#444;opacity:.3;position:absolute;visibility:hidden}.layout_Border.design-mode>.borderHandle{visibility:visible}.layout_Border>.borderHandle:hover{background-color:#666}.layout_Border>.borderHandle.borderHandleDisabled{display:none}.layout_Border>.borderHandle_top,.layout_Border>.borderHandle_bottom{cursor:ns-resize}.layout_Border>.borderHandle_left,.layout_Border>.borderHandle_right{cursor:ew-resize}.layout_Border .cell{border-radius:5px;border:1px solid #e5e5e5;display:inline-block;overflow:hidden}.layout_Border .cell h2{margin:0;padding-top:4px;-webkit-margin:0px;text-align:center}.layout_Border .layout_BorderCell.over{border:2px dashed #000}.layout_Border .dragItem{z-index:-1;opacity:.33}.layout_Border .notDragItem{z-index:-1;opacity:1}.layout_Border div[draggable=true]{opacity:.75;cursor:default}.layout_Border div[draggable=true] .dragHandle{opacity:1}.layout_Border div[draggable=true] .dragHandle_n,.layout_Border div[draggable=true] .dragHandle_e,.layout_Border div[draggable=true] .dragHandle_s,.layout_Border div[draggable=true] .dragHandle_w{background-color:#aaa}.layout_Border div[draggable=true] .dragHandle_nw,.layout_Border div[draggable=true] .dragHandle_ne,.layout_Border div[draggable=true] .dragHandle_se,.layout_Border div[draggable=true] .dragHandle_sw{background-color:#333}.layout_Border div[draggable=true] .dragHandle_nw{cursor:nw-resize}.layout_Border div[draggable=true] .dragHandle_n{cursor:n-resize}.layout_Border div[draggable=true] .dragHandle_ne{cursor:ne-resize}.layout_Border div[draggable=true] .dragHandle_e{cursor:e-resize}.layout_Border div[draggable=true] .dragHandle_se{cursor:se-resize}.layout_Border div[draggable=true] .dragHandle_s{cursor:s-resize}.layout_Border div[draggable=true] .dragHandle_sw{cursor:sw-resize}.layout_Border div[draggable=true] .dragHandle_w{cursor:w-resize}.layout_Border div[draggable=false]>div>.dragHandle{display:none}.layout_Border .grid-drop-target{position:fixed;box-sizing:border-box;border:2px dashed #7f8c8d;border-radius:0;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6464641a 4px,#6464641a 8px)}.layout_Border .grid-drop-target.drop-target-over{border:2px dashed #179BD7;background:repeating-linear-gradient(-45deg,#0000,#0000 6px,#119bd71a 6px,#119bd71a 12px)}.layout_Border2{display:flex;flex-direction:column}.layout_Border2>.body{margin:0;padding:0;display:flex;flex-flow:row}.layout_Border2>.body>.center{flex:1}.layout_Border2>.header{display:block}.layout_Border2>.footer{display:block}.layout_Carousel>div{position:relative;overflow:hidden}.layout_Carousel>div>.carouselItem{position:absolute}.layout_Modal-header{background-color:#3f51b5;overflow:hidden}.layout_Modal-body{background-color:#fff;overflow-y:scroll;overflow-x:hidden}.layout_Modal-title,.layout_Modal-annotations{position:absolute}.layout_Modal-closeButton{cursor:pointer}.layout_Modal-closeButton:hover{opacity:.7}.layout_Modal-closeButton:active{opacity:.5}.layout_Modal-fade{position:fixed;background-color:#000;opacity:.5;z-index:10000}.layout_Modal-content{position:fixed;background-color:#fff;z-index:10100}.layout_Modal-fade-hidden{display:none}.layout_Modal-fadeClickable{cursor:pointer}.layout_ChartPanel .series.highlight{stroke-width:2px;opacity:1}.layout_ChartPanel .series.lowlight{opacity:.3!important}.layout_FlexGrid{display:flex}.FlexGrid-list-item{overflow:hidden;border-style:solid;flex-grow:1}.layout_Grid>.ddCell{position:absolute}.layout_Grid>.laneBackground{position:absolute;border-style:solid;border-width:1px;background:#f5f5f5}.layout_Grid>.lane{position:absolute;border-style:none;opacity:.25;border-radius:0;pointer-events:none}.layout_Grid>.ddCell.draggable{border-style:solid;border-width:1px;background-color:#f8f8ff;border-radius:0;cursor:move}.layout_Grid>.ddCell.draggable>.resizeHandle{bottom:0;right:0;width:8px;height:8px;border-style:none;position:absolute;cursor:nwse-resize}.layout_Grid>.ddCell.draggable .resizeHandleDisplay{bottom:2px;right:2px;width:4px;height:4px;border-style:solid;border-left-width:0px;border-top-width:0px;border-right-width:2px;border-bottom-width:2px;border-color:#a9a9a9;background-color:none;position:absolute}.layout_Grid>.ddCell.draggable .resizeHandleDisplay:hover{border-color:orange}.layout_Grid>.dragging{border-style:solid;border-width:1px;border-color:gray;border-radius:0;position:absolute;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6464641a 4px,#6464641a 8px)}.layout_Grid>.resizing{border-style:solid;border-width:1px;border-color:gray;background-color:orange;border-radius:0;position:absolute;opacity:.3;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,orange 4px,orange 8px)}.layout_Grid>.ddCell.draggable .common_Widget.selected{border-style:solid;border-width:1px;border-color:red;background-color:gray;border-radius:0;position:absolute;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#6400001a 4px,#6400001a 8px)}.layout_Grid #drag-me:before{content:\"#\" attr(id);font-weight:700}.layout_Layered{pointer-events:none}.layout_Layered>.container>.content{position:absolute}.layout_Layered>.container>.content>div>.common_Widget,.layout_Layered>.container>.content>div>svg>.common_Widget{pointer-events:all}.layout_Tabbed .tab-button{position:relative;top:1px;display:inline-block;border-left:1px solid #ddd;border-top:1px solid #ddd;border-right:1px solid #ddd;background-color:transparent;margin-right:4px;padding:2px 2px 4px;background-color:#ccc}.layout_Tabbed .tab-button.active{background-color:#fff;z-index:999}.layout_Tabbed .on_bottom .tab-button{border-bottom:1px solid #ddd;border-top:none;top:-1px}.layout_Toolbar{height:100%;background-color:#ddd;white-space:nowrap;overflow:hidden}.layout_Toolbar .toolbar-title{display:inline-block;position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%);margin-left:4px;font-weight:700;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layout_Toolbar .toolbar-child{position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%);float:right;margin-left:4px;margin-right:4px;line-height:16px}')),document.head.appendChild(o)}}catch(e){console.error(\"vite-plugin-css-injected-by-js\",e)}}();\n","import { Utility } from \"@hpcc-js/common\";\n\ndeclare const require: any;\nexport function requireWidget(classID) {\n return new Promise(function (resolve, _reject) {\n const parsedClassID = Utility.parseClassID(classID);\n if (require) {\n require([parsedClassID.package], function (Package) {\n let Widget = null;\n if (Package && Package[parsedClassID.widgetID]) {\n Widget = Package[parsedClassID.widgetID];\n }\n resolve(parsedClassID.memberWidgetID ? (Widget.prototype ? Widget.prototype[parsedClassID.memberWidgetID] : Widget[parsedClassID.memberWidgetID]) : Widget);\n });\n }\n });\n}\n\nexport function requireWidgets(classIDs) {\n return Promise.all(classIDs.map(requireWidget));\n}\n","import { IGraph, INDChart } from \"@hpcc-js/api\";\nimport { Database, HTMLWidget, Utility, Widget } from \"@hpcc-js/common\";\nimport { map as d3Map } from \"d3-collection\";\nimport { requireWidget } from \"./Utility.ts\";\n\ndeclare const require: any;\nexport class MultiChart extends HTMLWidget {\n _allCharts = {};\n _chartTypeDefaults;\n _chartTypeProperties;\n _chartMonitor;\n _switchingTo;\n\n constructor() {\n super();\n INDChart.call(this);\n IGraph.call(this);\n\n this._tag = \"div\";\n\n this._allCharts = {};\n this._allChartTypes.forEach(function (item) {\n const newItem = JSON.parse(JSON.stringify(item));\n newItem.widget = null;\n this._allCharts[item.id] = newItem;\n this._allCharts[item.display] = newItem;\n this._allCharts[item.widgetClass] = newItem;\n }, this);\n this._chartTypeDefaults = {};\n this._chartTypeProperties = {};\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): Database.Field[] | this {\n const retVal = super.fields.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().fields();\n this.chart().fields(_);\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_, asDefault?: boolean): this;\n columns(_?, asDefault?: boolean) {\n const retVal = HTMLWidget.prototype.columns.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().columns();\n this.chart().columns(_, asDefault);\n }\n return retVal;\n }\n\n data(_?) {\n const retVal = HTMLWidget.prototype.data.apply(this, arguments);\n if (this.chart()) {\n if (!arguments.length) return this.chart().data();\n this.chart().data(_);\n }\n return retVal;\n }\n\n hasOverlay() {\n return this.chart() && this.chart().hasOverlay();\n }\n\n visible(): boolean;\n visible(_: boolean): this;\n visible(_?: boolean): boolean | this {\n if (!arguments.length) return this.chart() && this.chart().visible();\n if (this.chart()) {\n this.chart().visible(_);\n }\n return this;\n }\n\n chartTypeDefaults(): object;\n chartTypeDefaults(_: object): this;\n chartTypeDefaults(_?: object): object | this {\n if (!arguments.length) return this._chartTypeDefaults;\n this._chartTypeDefaults = _;\n return this;\n }\n\n chartTypeProperties(): object;\n chartTypeProperties(_: object): this;\n chartTypeProperties(_?: object): object | this {\n if (!arguments.length) return this._chartTypeProperties;\n this._chartTypeProperties = _;\n return this;\n }\n\n getChartDataFamily() {\n return this._allCharts[this.chartType()].family;\n }\n\n requireContent(chartType, callback) {\n const classInfo = Utility.parseClassID(this._allCharts[chartType].widgetClass);\n switch (classInfo.package) {\n case \"@hpcc-js/chart\":\n import(\"@hpcc-js/chart\").then(mod => {\n callback(new mod[classInfo.widgetID]());\n });\n break;\n case \"@hpcc-js/dgrid\":\n import(\"@hpcc-js/dgrid\").then(mod => {\n callback(new mod[classInfo.widgetID]());\n });\n break;\n default:\n requireWidget(this._allCharts[chartType].widgetClass).then(function (WidgetClass: any) {\n callback(new WidgetClass());\n });\n }\n }\n\n switchChart(callback) {\n if (this._switchingTo === this.chartType()) {\n if (callback) {\n callback(this);\n }\n return;\n } else if (this._switchingTo) {\n console.warn(\"Attempting switch to: \" + this.chartType() + \", before previous switch is complete (\" + this._switchingTo + \")\");\n }\n this._switchingTo = this.chartType();\n const oldContent = this.chart();\n const context = this;\n this.requireContent(this.chartType(), function (newContent) {\n if (newContent !== oldContent) {\n const size = context.size();\n newContent\n .fields(context.fields())\n .data(context.data())\n .size(size)\n ;\n\n context.chart(newContent);\n if (oldContent) {\n oldContent\n .size({ width: 1, height: 1 })\n .render()\n ;\n }\n }\n delete context._switchingTo;\n if (callback) {\n callback(this);\n }\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const content = element.selectAll(\".multiChart\").data(this.chart() ? [this.chart()] : [], function (d) { return d._id; });\n content.enter().append(\"div\")\n .attr(\"class\", \"multiChart\")\n .each(function (d) {\n d.target(this);\n })\n ;\n\n const currChart = this.chart();\n if (currChart) {\n for (const key in this._chartTypeDefaults) {\n if (currChart[key + \"_default\"]) {\n try {\n currChart[key + \"_default\"](this._chartTypeDefaults[key]);\n } catch (e) {\n console.warn(\"Exception Setting Default: \" + key);\n }\n } else {\n console.warn(\"Unknown Default: \" + key);\n }\n }\n this._chartTypeDefaults = {};\n for (const propKey in this._chartTypeProperties) {\n if (currChart[propKey]) {\n try {\n currChart[propKey](this._chartTypeProperties[propKey]);\n } catch (e) {\n console.warn(\"Exception Setting Property: \" + propKey);\n }\n } else {\n console.warn(\"Unknown Property: \" + propKey);\n }\n }\n this._chartTypeProperties = {};\n }\n\n const context = this;\n content\n .each(function (d) { d.resize(context.size()); })\n ;\n\n content.exit().transition()\n .each(function (d) { d.target(null); })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n if (this._chartMonitor) {\n this._chartMonitor.remove();\n delete this._chartMonitor;\n }\n if (this.chart()) {\n this.chart().target(null);\n }\n super.exit(domNode, element);\n }\n\n render(_callback?) {\n if (this.chartType() && (!this.chart() || (this.chart().classID() !== this._allCharts[this.chartType()].widgetClass))) {\n const context = this;\n const args = arguments;\n this.switchChart(function () {\n HTMLWidget.prototype.render.apply(context, args);\n });\n return this;\n }\n return HTMLWidget.prototype.render.apply(this, arguments);\n }\n}\nMultiChart.prototype._class += \" composite_MultiChart\";\nMultiChart.prototype.implements(INDChart.prototype);\nMultiChart.prototype.implements(IGraph.prototype);\nexport interface ChartMeta {\n id: string;\n display: string;\n widgetClass: string;\n widgetPath?: string;\n}\nexport interface MultiChart {\n _otherChartTypes: ChartMeta[];\n _graphChartTypes: ChartMeta[];\n _1DChartTypes: ChartMeta[];\n _2DChartTypes: ChartMeta[];\n _NDChartTypes: ChartMeta[];\n _mapChartTypes: ChartMeta[];\n _anyChartTypes: ChartMeta[];\n _allChartTypes: ChartMeta[];\n _allMap;\n _allFamilies: string[];\n _allChartTypesMap;\n _allChartTypesByClass;\n\n hideRowOnLegendClick(): boolean;\n hideRowOnLegendClick(_: boolean): this;\n chartType(): string;\n chartType(_: string): this;\n chart(): Widget;\n chart(_: Widget): this;\n chart_access(): Widget;\n chart_access(_: Widget): this;\n\n click(_row, _column, _selected): void;\n dblclick(_row, _column, _selected): void;\n vertex_click(row, column, selected, more): void;\n vertex_dblclick(row, column, selected, more): void;\n edge_click(row, column, selected, more): void;\n edge_dblclick(row, column, selected, more): void;\n}\n\nMultiChart.prototype._otherChartTypes = [\n { id: \"FORM\", display: \"Form\", widgetClass: \"form_FieldForm\" }\n].map(function (item: any) { item.family = \"other\"; return item; });\nMultiChart.prototype._graphChartTypes = [\n { id: \"GRAPH\", display: \"Graph\", widgetClass: \"graph_Graph\" },\n { id: \"ADJACENCY_GRAPH\", display: \"Graph\", widgetClass: \"graph_AdjacencyGraph\" },\n { id: \"GRAPHC\", display: \"GraphC\", widgetClass: \"graph_GraphC\" }\n].map(function (item: any) { item.family = \"GRAPH\"; return item; });\nMultiChart.prototype._1DChartTypes = [\n].map(function (item: any) { item.family = \"1D\"; return item; });\nMultiChart.prototype._2DChartTypes = [\n { id: \"SUMMARY\", display: \"Summary\", widgetClass: \"chart_Summary\" },\n { id: \"BUBBLE\", display: \"Bubble\", widgetClass: \"chart_Bubble\" },\n { id: \"PIE\", display: \"Pie\", widgetClass: \"chart_Pie\" },\n { id: \"WORD_CLOUD\", display: \"Word Cloud\", widgetClass: \"other_WordCloud\" }\n].map(function (item: any) { item.family = \"2D\"; return item; });\nMultiChart.prototype._NDChartTypes = [\n { id: \"COLUMN\", display: \"Column\", widgetClass: \"chart_Column\" },\n { id: \"BAR\", display: \"Bar\", widgetClass: \"chart_Bar\" },\n { id: \"LINE\", display: \"Line\", widgetClass: \"chart_Line\" },\n { id: \"AREA\", display: \"Area\", widgetClass: \"chart_Area\" },\n { id: \"STEP\", display: \"Step\", widgetClass: \"chart_Step\" },\n { id: \"SCATTER\", display: \"Scatter\", widgetClass: \"chart_Scatter\" },\n { id: \"HEXBIN\", display: \"Hex Bin\", widgetClass: \"chart_HexBin\" }\n].map(function (item: any) { item.family = \"ND\"; return item; });\nMultiChart.prototype._mapChartTypes = [\n { id: \"CHORO_USSTATES\", display: \"US State Choropleth\", widgetClass: \"map_ChoroplethStates\" },\n { id: \"CHORO_USCOUNTIES\", display: \"US County Choropleth\", widgetClass: \"map_ChoroplethCounties\" },\n { id: \"CHORO_COUNTRIES\", display: \"Country Choropleth\", widgetClass: \"map_ChoroplethCountries\" },\n { id: \"GMAP_CHORO_USCOUNTIES\", display: \"Google Map US County Choropleth\", widgetClass: \"map_GMapCounties\" },\n { id: \"GOOGLE_MAP\", display: \"Google Map\", widgetClass: \"map_GMapLayered\" },\n { id: \"OPENSTREET\", display: \"Open Street Map\", widgetClass: \"map_OpenStreet\" }\n].map(function (item: any) { item.family = \"map\"; return item; });\nMultiChart.prototype._anyChartTypes = [\n { id: \"TABLE\", display: \"Table\", widgetClass: \"dgrid_Table\" },\n { id: \"TABLE_LEGACY\", display: \"Table (legacy)\", widgetClass: \"other_Table\" },\n { id: \"TABLE_NESTED\", display: \"Nested Table\", widgetClass: \"other_NestedTable\" },\n { id: \"TABLE_CALENDAR\", display: \"Table driven Calendar Heat Map\", widgetClass: \"other_CalendarHeatMap\" },\n { id: \"TABLE_BULLET\", display: \"Table driven bullet chart\", widgetClass: \"chart_Bullet\" },\n { id: \"TABLE_SELECT\", display: \"Table driven select\", widgetClass: \"other_Select\" },\n { id: \"TABLE_AUTOCOMPLETE\", display: \"Table driven auto complete\", widgetClass: \"other_AutoCompleteText\" },\n { id: \"TABLE_OPPORTUNITY\", display: \"Table driven opportunity widget\", widgetClass: \"graph_Opportunity\" },\n { id: \"TABLE_TREE\", display: \"Table driven tree\", widgetClass: \"tree_Dendrogram\" },\n { id: \"TABLE_TREEMAP\", display: \"Table driven Treemap\", widgetClass: \"tree_Treemap\" },\n { id: \"TABLE_SANKEY\", display: \"Table driven Sankey\", widgetClass: \"graph_Sankey\" },\n { id: \"TABLE_GMAP_PIN\", display: \"Table driven Google Map (pins)\", widgetClass: \"map_GMapPin\" },\n { id: \"TABLE_GMAP_PINLINE\", display: \"Table driven Google Map (pins/lines)\", widgetClass: \"map_GMapPinLine\" },\n { id: \"TABLE_XML_TREE\", display: \"Table driven XML Tree\", widgetClass: \"tree_Indented\" }\n].map(function (item: any) { item.family = \"any\"; return item; });\nMultiChart.prototype._allChartTypes =\n MultiChart.prototype._otherChartTypes.concat(\n MultiChart.prototype._graphChartTypes.concat(\n MultiChart.prototype._1DChartTypes.concat(\n MultiChart.prototype._2DChartTypes.concat(\n MultiChart.prototype._NDChartTypes.concat(\n MultiChart.prototype._mapChartTypes.concat(\n MultiChart.prototype._anyChartTypes\n ))))));\nMultiChart.prototype._allMap = d3Map(MultiChart.prototype._allChartTypes, function (item: any) { return item.family; });\nMultiChart.prototype._allFamilies = MultiChart.prototype._allMap.keys();\nMultiChart.prototype._allChartTypesMap = {};\nMultiChart.prototype._allChartTypesByClass = {};\nMultiChart.prototype._allChartTypes.forEach(function (item) {\n item.widgetPath = Utility.widgetPath(item.widgetClass);\n MultiChart.prototype._allChartTypesMap[item.id] = item;\n MultiChart.prototype._allChartTypesByClass[item.widgetClass] = item;\n});\n\nMultiChart.prototype.publishReset();\nMultiChart.prototype.publish(\"hideRowOnLegendClick\", false, \"boolean\", \"Enable/Disable hiding row on legend clicks\", null, { tags: [\"Basic\"] });\nMultiChart.prototype.publish(\"chartType\", \"BUBBLE\", \"set\", \"Chart Type\", MultiChart.prototype._allChartTypes.map(function (item) { return item.id; }), { tags: [\"Basic\"] });\nMultiChart.prototype.publish(\"chart\", null, \"widget\", \"Chart\", null, { tags: [\"Basic\"] });\n\nconst _origChart = MultiChart.prototype.chart;\nMultiChart.prototype.chart = function (_?) {\n const retVal = _origChart.apply(this, arguments);\n if (arguments.length) {\n const context = this;\n if (this._allChartTypesByClass[_.classID()]) {\n this.chartType(this._allChartTypesByClass[_.classID()].id);\n } else {\n console.warn(\"Unknown Class ID: \" + _.classID());\n }\n _.click = function (_row, _column, _selected) {\n context.click.apply(context, arguments);\n };\n _.dblclick = function (_row, _column, _selected) {\n context.dblclick.apply(context, arguments);\n };\n _.vertex_click = function (row, column, selected, more) {\n context.vertex_click.apply(context, arguments);\n };\n _.vertex_dblclick = function (row, column, selected, more) {\n context.vertex_dblclick.apply(context, arguments);\n };\n _.edge_click = function (row, column, selected, more) {\n context.edge_click.apply(context, arguments);\n };\n _.edge_dblclick = function (row, column, selected, more) {\n context.edge_dblclick.apply(context, arguments);\n };\n if (this._chartMonitor) {\n this._chartMonitor.remove();\n delete this._chartMonitor;\n }\n this._chartMonitor = _.monitor(function (key, newVal, oldVal) {\n context.broadcast(key, newVal, oldVal, _);\n });\n }\n return retVal;\n};\n","import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { MultiChart } from \"./MultiChart.ts\";\n\nimport \"../src/ChartPanel.css\";\n\nclass Summary extends HTMLWidget {\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element.append(\"p\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element.select(\"p\").text(this.text());\n }\n}\ninterface Summary {\n text(): string;\n text(_: string): this;\n}\nSummary.prototype.publish(\"text\", \"\", \"string\");\n\nexport class MultiChartPanel extends ChartPanel<MultiChart> {\n\n constructor() {\n super();\n this.widget(new MultiChart().chartType(\"COLUMN\"));\n }\n\n multiChart(): MultiChart {\n return this._widget;\n }\n\n chartType(): string;\n chartType(_: string): this;\n chartType(_?: string): string | this {\n if (!arguments.length) return this._widget.chartType();\n this._widget.chartType(_);\n return this;\n }\n\n chart(): Widget;\n chart(_: Widget): this;\n chart(_?: Widget): Widget | this {\n if (!arguments.length) return this._widget.chart();\n this._widget.chart(_);\n return this;\n }\n\n chartTypeDefaults(): object;\n chartTypeDefaults(_: object): this;\n chartTypeDefaults(_?: object): this | object {\n if (!arguments.length) return this._widget.chartTypeDefaults();\n this._widget.chartTypeDefaults(_);\n return this;\n }\n\n chartTypeProperties(): object;\n chartTypeProperties(_: object): this;\n chartTypeProperties(_?: object): this | object {\n if (!arguments.length) return this._widget.chartTypeProperties();\n this._widget.chartTypeProperties(_);\n return this;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n if (this._widget instanceof MultiChart) {\n this._legend.dataFamily(this._widget.getChartDataFamily());\n }\n super.update(domNode, element);\n }\n}\nMultiChartPanel.prototype._class += \" composite_MultiChartPanel\";\n","import { OnOff } from \"@hpcc-js/form\";\nimport { Border, Toolbar } from \"@hpcc-js/layout\";\nimport { PropertyEditor } from \"@hpcc-js/other\";\n\nimport \"../src/Dermatology.css\";\n\nexport class Dermatology extends Border {\n _toolbar;\n _propEditor;\n _showProperties;\n _propsButton;\n _prevWidget;\n\n constructor() {\n super();\n\n this._toolbar = new Toolbar()\n .title(\"Dermatology\")\n ;\n this._propEditor = new PropertyEditor()\n .show_settings(true)\n ;\n }\n\n showProperties(_?) {\n if (!arguments.length) return this._showProperties;\n this._showProperties = _;\n this\n .rightPercentage(0)\n .rightSize(this._showProperties ? 360 : 0)\n .setContent(\"right\", this._showProperties ? this._propEditor : null)\n ;\n const widget = this.widget();\n if (widget && widget.designMode) {\n widget.designMode(this._showProperties);\n }\n return this;\n }\n\n toggleProperties() {\n return this.showProperties(!this.showProperties());\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this\n .topPercentage(0)\n .topSize(0)\n .setContent(\"top\", this._toolbar)\n ;\n this.getCell(\"top\").surfaceShadow(true);\n\n const context = this;\n this._propsButton = new OnOff()\n .id(this.id() + \"_props\")\n .value(\"Properties\")\n .on(\"click\", function () {\n context\n .toggleProperties()\n .render()\n ;\n })\n ;\n this._toolbar.widgets([this._propsButton]);\n }\n\n update(domNode, element) {\n this\n .topPercentage(0)\n .topSize(this.showToolbar() ? 32 : 0)\n ;\n\n super.update(domNode, element);\n\n const widget = this.widget();\n element.style(\"background-color\", widget && widget.surfaceShadow ? null : \"white\");\n }\n\n render(callback) {\n const widget = this.widget();\n if (widget !== this._prevWidget) {\n if (widget && widget.surfaceShadow) {\n widget.surfaceBackgroundColor_default(\"white\");\n }\n this.setContent(\"center\", widget);\n this._propEditor.widget(widget);\n this._prevWidget = widget;\n }\n return super.render(callback);\n }\n\n showToolbar: { (): boolean; (_: boolean): Dermatology };\n showToolbar_exists: () => boolean;\n widget: { (): any; (_: any): Dermatology };\n widget_exists: () => boolean;\n}\nDermatology.prototype._class += \" composite_Dermatology\";\n\nDermatology.prototype.publish(\"showToolbar\", true, \"boolean\", \"Show Toolbar\");\nDermatology.prototype.publish(\"widget\", null, \"widget\", \"Widget\");\n","import { Database, Text, Utility } from \"@hpcc-js/common\";\nimport { Button, Input, Select } from \"@hpcc-js/form\";\nimport { Border, Grid, Toolbar } from \"@hpcc-js/layout\";\nimport { Html, Legend } from \"@hpcc-js/other\";\nimport { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\nimport { MultiChart } from \"./MultiChart.ts\";\n\nimport \"../src/MegaChart.css\";\n\nexport class MegaChart extends Border {\n _chart = new MultiChart();\n _toolbar = new Toolbar();\n _valueTitle = new Text();\n _domainTitle = new Text();\n _legend: Legend = new Legend();\n _csvButton;\n _infoButton;\n _maximizeButton;\n _legendButton;\n _chartTypeSelect;\n _prevLegendPosition;\n _prevShowToolbar;\n _1DChartTypes;\n _2DChartTypes;\n _NDChartTypes;\n _anyChartTypes;\n _allChartTypes;\n _contentClasses;\n _dataCount;\n\n constructor() {\n super();\n this._tag = \"div\";\n const context = this;\n this._chart.click = function () {\n context.click.apply(context, arguments);\n };\n this._chart.dblclick = function () {\n context.dblclick.apply(context, arguments);\n };\n this._chart.vertex_click = function () {\n context.vertex_click.apply(context, arguments);\n };\n this._chart.vertex_dblclick = function () {\n context.vertex_dblclick.apply(context, arguments);\n };\n this._chart.edge_click = function () {\n context.edge_click.apply(context, arguments);\n };\n this._chart.edge_dblclick = function () {\n context.edge_dblclick.apply(context, arguments);\n };\n }\n\n toolbarWidgets(_?) {\n if (!arguments.length) return this._toolbar.widgets();\n this._toolbar.widgets(_);\n return this;\n }\n\n chartTypeDefaults(_?) {\n if (!arguments.length) return this._chart.chartTypeDefaults();\n this._chart.chartTypeDefaults(_);\n return this;\n }\n\n chartTypeProperties(_?) {\n if (!arguments.length) return this._chart.chartTypeProperties();\n this._chart.chartTypeProperties(_);\n return this;\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): Database.Field[] | this {\n if (!arguments.length) return this._chart.fields();\n this._chart.fields(_);\n return this;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n if (!arguments.length) return this._chart.columns();\n this._chart.columns(_, asDefault);\n return this;\n }\n\n data(_?) {\n if (!arguments.length) return this._chart.data();\n this._chart.data(_);\n return this;\n }\n\n downloadCSV() {\n Utility.downloadString(\"CSV\", this._chart.export(\"CSV\"));\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n\n this.topShrinkWrap(false).topPercentage(0).topSize(30);\n this._dataCount = new Html()\n .classed({ \"composite_MegaChart-dataCount\": true })\n .id(this.id() + \"_dataCount\")\n .html('<span class=\"MegaChart-dataCount-label\">Count:</span>&nbsp;<span class=\"MegaChart-dataCount-value\">' + (this.data() ? this.data().length : \"0\") + \"</span>\")\n .overflowX(\"visible\")\n .overflowY(\"visible\")\n ;\n\n this._csvButton = new Button()\n .classed({ \"composite_MegaChart-CSV\": true })\n .id(this.id() + \"_csv\")\n .value(\"CSV\")\n ;\n this._csvButton.click = function (a) {\n context.downloadCSV();\n };\n\n this._infoButton = new Button()\n .classed({ \"composite_MegaChart-Info\": true })\n .id(this.id() + \"_info\")\n .value(this.infoIcon())\n ;\n\n this._maximizeButton = new Button()\n .classed({ \"composite_MegaChart-Maximize\": true })\n .id(this.id() + \"_maximize\")\n .value(\"\\uf2d0\")\n ;\n this._maximizeButton.click = function (buttonWidget) {\n const target = context.target() as any;\n let node = target;\n const isMaximized = d3Select(target).classed(\"__hpccisMaximized\");\n\n // Find the layout_Grid ancestor\n const parentGrid = context.locateAncestor(\"layout_Grid\");\n if (parentGrid) {\n node = parentGrid.element().node();\n } else {\n node = document.body;\n }\n\n const targetElement = d3Select(context.target()) as any;\n if (isMaximized) {\n // Restore from maximized to natural size/position\n const targetParentBox = target.parentElement.getBoundingClientRect();\n const targetPaddingTop = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\"));\n const targetPaddingLeft = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-left\").replace(\"px\", \"\"));\n const targetPaddingRight = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-right\").replace(\"px\", \"\"));\n const targetPaddingBottom = parseInt(getComputedStyle(target, null).getPropertyValue(\"padding-bottom\").replace(\"px\", \"\"));\n context.contentDiv.style(\"opacity\", 0).transition(100);\n targetElement.transition()// .duration(3000)\n .style(\"top\", targetParentBox.top + \"px\")\n .style(\"left\", targetParentBox.left + \"px\")\n .style(\"width\", (targetParentBox.width - targetPaddingLeft - targetPaddingRight) + \"px\")\n .style(\"height\", (targetParentBox.height - targetPaddingTop - targetPaddingBottom) + \"px\")\n .each(\"end\", function () {\n targetElement.style(\"position\", target.__old_position);\n targetElement.style(\"z-index\", target.__old_zindex);\n targetElement.style(\"background-color\", target.__old_backgroundColor);\n targetElement.style(\"box-shadow\", target.__old_boxshadow);\n context\n .resize({\n width: targetParentBox.width - targetPaddingLeft - targetPaddingRight,\n height: targetParentBox.height - targetPaddingTop - targetPaddingBottom\n })\n .render(function () {\n context.contentDiv.transition()\n .style(\"opacity\", 1);\n });\n buttonWidget.value(\"\\uf2d0\").render();\n });\n } else {\n // Maximize this MegaChart\n target.__old_position = target.style.position;\n target.__old_zindex = target.style.zIndex;\n target.__old_boxshadow = target.style.boxShadow;\n target.__old_backgroundColor = context.element().style(\"background-color\");\n const grid = d3Select(node).datum() as Grid;\n const gridTarget = grid.target();\n const gridBox = grid ? gridTarget.getBoundingClientRect() : node.getBoundingClientRect();\n const gridPaddingTop = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\"));\n const gridPaddingLeft = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-left\").replace(\"px\", \"\"));\n const gridPaddingRight = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-right\").replace(\"px\", \"\"));\n const gridPaddingBottom = parseInt(getComputedStyle(gridTarget, null).getPropertyValue(\"padding-bottom\").replace(\"px\", \"\"));\n context.contentDiv.style(\"opacity\", 0).transition(100);\n targetElement\n .style(\"position\", \"fixed\")\n .style(\"z-index\", 999999)\n .style(\"box-shadow\", \"0 8px 8px 0 rgba(0,0,0,.14),0 12px 4px -8px rgba(0,0,0,.2),0 4px 20px 0 rgba(0,0,0,.12)\")\n .style(\"background-color\", target.__old_backgroundColor)\n .transition()// .duration(3000)\n .style(\"top\", (gridBox.top + gridPaddingTop) + \"px\")\n .style(\"left\", (gridBox.left + gridPaddingLeft) + \"px\")\n .style(\"width\", (gridBox.width - gridPaddingLeft - gridPaddingRight) + \"px\")\n .style(\"height\", (gridBox.height - gridPaddingTop - gridPaddingBottom) + \"px\")\n .each(\"end\", function () {\n targetElement.style(\"background-color\", context.maximizedBackgroundColor());\n context\n .resize({\n width: (gridBox.width - gridPaddingLeft - gridPaddingRight),\n height: (gridBox.height - gridPaddingTop - gridPaddingBottom)\n })\n .render(function () {\n context.contentDiv.transition()\n .style(\"opacity\", 1);\n });\n buttonWidget.value(\"\\uf2d1\").render();\n });\n }\n\n d3Select(target).classed(\"__hpccisMaximized\", !isMaximized);\n };\n\n this._legendButton = new Input()\n .classed({ \"composite_MegaChart-legend\": true })\n .id(this.id() + \"_legend\")\n .type(\"checkbox\")\n .inlineLabel(\"Legend: \")\n ;\n this._legendButton.click = function (a) {\n context.render();\n };\n\n this._chartTypeSelect = new Select()\n .classed({ \"composite_MegaChart-chartType\": true })\n .id(this.id() + \"_chartType\")\n .selectOptions(this._allChartTypes.map(function (a) { return [a.id, a.display]; }))\n .value(this.chartType())\n ;\n this._chartTypeSelect.change = function (a) {\n context.chartType(a.value()).render();\n };\n\n this.setContent(\"center\", this._chart);\n\n this._legend\n .targetWidget(this._chart)\n .orientation([\"top\", \"bottom\"].indexOf(this.legendPosition()) !== -1 ? \"horizontal\" : \"vertical\")\n .fixedSize(true)\n ;\n\n this._prevLegendPosition = this.legendPosition();\n\n if (this.valueAxisTitle()) {\n this.setContent(\"left\", this._valueTitle.rotation(-90)).leftShrinkWrap(true);\n }\n if (this.domainAxisTitle()) {\n this.setContent(\"bottom\", this._domainTitle).bottomShrinkWrap(true);\n }\n\n if (this.legendPosition() !== \"none\") {\n this.setContent(this.legendPosition(), this._legend)[this.legendPosition() + \"ShrinkWrap\"](true);\n }\n }\n\n update(domNode, element) {\n function showHideButton(twArr2, button, show) {\n if (show && twArr2.indexOf(button) === -1) {\n twArr2.push(button);\n } else if (!show) {\n const idx = twArr2.indexOf(button);\n if (idx >= 0) {\n twArr2.splice(idx, 1);\n }\n }\n }\n\n if (this._chart && typeof this._chart.hideRowOnLegendClick === \"function\") {\n this._chart.hideRowOnLegendClick(this.hideRowOnLegendClick());\n }\n\n this._dataCount.html('<span class=\"MegaChart-dataCount-label\">Count:</span>&nbsp;<span class=\"MegaChart-dataCount-value\">' + (this.data() ? this.data().length : \"0\") + \"</span>\");\n\n this._chartTypeSelect.value(this.chartType());\n const twArr = this.toolbarWidgets();\n showHideButton(twArr, this._csvButton, this.showCSV());\n showHideButton(twArr, this._maximizeButton, this.showMaximize());\n showHideButton(twArr, this._legendButton, this.toolbarShowLegend());\n showHideButton(twArr, this._chartTypeSelect, this.showChartSelect());\n showHideButton(twArr, this._infoButton, this.showInfoButton());\n showHideButton(twArr, this._dataCount, this.showCount());\n this.toolbarWidgets(twArr);\n\n if (this._prevShowToolbar !== this.showToolbar()) {\n this.setContent(\"top\", this.showToolbar() ? this._toolbar : null);\n this._prevShowToolbar = this.showToolbar();\n }\n\n // TODO: Proxy + themes not working...\n this._toolbar\n .fontSize(this.titleFontSize())\n .fontColor(this.titleFontColor())\n .fontFamily(this.titleFontFamily())\n .fontBold(this.titleFontBold())\n .backgroundColor(this.titleBackgroundColor())\n ;\n\n this._chart\n .data(this.data());\n\n if (this._chart.chartType() !== this.chartType()) {\n this._chart.chartType(this.chartType());\n }\n\n let legendPosition = this.legendPosition();\n if (this.toolbarShowLegend() && !this._legendButton.checked()) {\n legendPosition = \"none\";\n }\n if (this._prevLegendPosition !== legendPosition) {\n if (this._prevLegendPosition !== \"none\") {\n this.clearContent(this._prevLegendPosition);\n }\n this._prevLegendPosition = legendPosition;\n if (legendPosition !== \"none\") {\n this._legend = new Legend().targetWidget(this.getContent(\"center\").fixedSize(true));\n this.setContent(legendPosition, this._legend);\n this._legend.orientation([\"top\", \"bottom\"].indexOf(legendPosition) !== -1 ? \"horizontal\" : \"vertical\");\n }\n }\n this._contentClasses = this.getContentClasses();\n\n if (this.valueAxisTitle() && this._contentClasses.left !== \"common_Text\") {\n if (legendPosition !== \"left\") {\n this.setContent(\"left\", this._valueTitle.rotation(-90));\n }\n }\n if (this.domainAxisTitle() && this._contentClasses.bottom !== \"common_Text\") {\n if (legendPosition !== \"bottom\") {\n this.setContent(\"bottom\", this._domainTitle).bottomShrinkWrap(true);\n }\n }\n\n this._legend.dataFamily(this._chart.getChartDataFamily());\n\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n getContentClasses() {\n const obj: any = {};\n const t = this.getContent(\"top\");\n const r = this.getContent(\"right\");\n const b = this.getContent(\"bottom\");\n const l = this.getContent(\"left\");\n obj.top = t !== null ? t.classID() : undefined;\n obj.right = r !== null ? r.classID() : undefined;\n obj.bottom = b !== null ? b.classID() : undefined;\n obj.left = l !== null ? l.classID() : undefined;\n return obj;\n }\n\n serializeState() {\n const state: any = {\n title: this.title(),\n data: this.data()\n };\n const chart = this.chart();\n if (chart) {\n if (chart.serializeState) {\n state.chart = chart.serializeState();\n delete state.chart.data;\n }\n }\n return state;\n }\n\n deserializeState(state) {\n if (state) {\n this\n .title(state.title)\n .data(state.data)\n ;\n const chart = this.chart();\n if (chart && state.chart) {\n if (chart.serializeState) {\n chart.deserializeState(state.chart);\n }\n }\n }\n return this;\n }\n\n // Events ---\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n vertex_click(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex click: \" + more.vertex.id());\n }\n }\n\n vertex_dblclick(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex double click: \" + more.vertex.id());\n }\n }\n\n edge_click(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge click: \" + more.edge.id());\n }\n }\n\n edge_dblclick(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge double click: \" + more.edge.id());\n }\n }\n\n hideRowOnLegendClick: { (): boolean; (_: boolean): MegaChart };\n hideRowOnLegendClick_exists: () => boolean;\n showToolbar: { (): boolean; (_: boolean): MegaChart };\n showToolbar_exists: () => boolean;\n titleFontSize: { (): number; (_: number): MegaChart };\n titleFontSize_exists: () => boolean;\n titleFontColor: { (): string; (_: string): MegaChart };\n titleFontColor_exists: () => boolean;\n titleFontFamily: { (): string; (_: string): MegaChart };\n titleFontFamily_exists: () => boolean;\n titleFontBold: { (): boolean; (_: boolean): MegaChart };\n titleFontBold_exists: () => boolean;\n titleBackgroundColor: { (): string; (_: string): MegaChart };\n titleBackgroundColor_exists: () => boolean;\n maximizedBackgroundColor: { (): string; (_: string): MegaChart };\n maximizedBackgroundColor_exists: () => boolean;\n showChartSelect: { (): boolean; (_: boolean): MegaChart };\n showChartSelect_exists: () => boolean;\n showCSV: { (): boolean; (_: boolean): MegaChart };\n showCSV_exists: () => boolean;\n showCount: { (): boolean; (_: boolean): MegaChart };\n showCount_exists: () => boolean;\n showMaximize: { (): boolean; (_: boolean): MegaChart };\n showMaximize_exists: () => boolean;\n toolbarShowLegend: { (): boolean; (_: boolean): MegaChart };\n toolbarShowLegend_exists: () => boolean;\n showInfoButton: { (): boolean; (_: boolean): MegaChart };\n showInfoButton_exists: () => boolean;\n infoIcon: { (): string; (_: string): MegaChart };\n infoIcon_exists: () => boolean;\n legendPosition: { (): string; (_: string): MegaChart };\n legendPosition_exists: () => boolean;\n\n title: { (): string; (_: string): MegaChart };\n title_exists: () => boolean;\n\n domainAxisTitle: { (): string; (_: string): MegaChart };\n domainAxisTitle_exists: () => boolean;\n valueAxisTitle: { (): string; (_: string): MegaChart };\n valueAxisTitle_exists: () => boolean;\n\n chartType: { (): string; (_: string): MegaChart };\n chartType_exists: () => boolean;\n chart: { (): any; (_: any): MegaChart };\n chart_exists: () => boolean;\n}\nMegaChart.prototype._class += \" composite_MegaChart\";\n\nMegaChart.prototype._1DChartTypes = MultiChart.prototype._1DChartTypes;\nMegaChart.prototype._2DChartTypes = MultiChart.prototype._2DChartTypes;\nMegaChart.prototype._NDChartTypes = MultiChart.prototype._NDChartTypes;\nMegaChart.prototype._anyChartTypes = MultiChart.prototype._anyChartTypes;\nMegaChart.prototype._allChartTypes = MultiChart.prototype._allChartTypes;\n\nMegaChart.prototype.publishReset();\n\nMegaChart.prototype.publish(\"hideRowOnLegendClick\", false, \"boolean\", \"Enable/Disable hiding row on legend clicks\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showToolbar\", true, \"boolean\", \"Enable/Disable Toolbar widget\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publishProxy(\"title\", \"_toolbar\", \"title\");\nMegaChart.prototype.publish(\"ddlParamsFormat\", \"\", \"string\", \"DDL Param Format '{fname}, {lname}'\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: true });\nMegaChart.prototype.publish(\"titleBackgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: true });\nMegaChart.prototype.publish(\"maximizedBackgroundColor\", \"#FFFFFF\", \"html-color\", \"Background Color while maximized\", null, { tags: [\"Intermediate\"], optional: true });\n\nMegaChart.prototype.publish(\"showChartSelect\", true, \"boolean\", \"Show/Hide the chartType dropdown in the toolbar\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showCSV\", true, \"boolean\", \"Show/Hide CSV button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showCount\", false, \"boolean\", \"Show/Hide Data Count\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showMaximize\", false, \"boolean\", \"Show/Hide Maximize button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"toolbarShowLegend\", false, \"boolean\", \"Show/Hide Legend button\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"showInfoButton\", false, \"boolean\", \"Show/Hide Info button in toolbar\", null, { tags: [\"Basic\"] });\nMegaChart.prototype.publish(\"infoIcon\", \"\\uf05a\", \"string\", \"Help Icon\", null, { tags: [\"Basic\"] });\n\nMegaChart.prototype.publish(\"legendPosition\", \"none\", \"set\", \"Position of the Legend widget\", [\"none\", \"top\", \"right\", \"bottom\", \"left\"], { tags: [\"Basic\"] });\nMegaChart.prototype.publishProxy(\"legendFormat\", \"_legend\", \"rainbowFormat\");\nMegaChart.prototype.publishProxy(\"legendBins\", \"_legend\", \"rainbowBins\");\n\nMegaChart.prototype.publishProxy(\"domainAxisTitle\", \"_domainTitle\", \"text\");\nMegaChart.prototype.publishProxy(\"valueAxisTitle\", \"_valueTitle\", \"text\");\n\nMegaChart.prototype.publishProxy(\"chartType\", \"_chart\", \"chartType\");\nMegaChart.prototype.publishProxy(\"chart\", \"_chart\", \"chart\");\n","import { Platform, Utility, Widget } from \"@hpcc-js/common\";\nimport { Persist } from \"@hpcc-js/other\";\nimport { requireWidget } from \"./Utility.ts\";\n\nexport function retrofit_114_serialization(state, replacement_version) {\n replacement_version = !replacement_version || replacement_version === \"1.14.2-dev\" ? \"1.18.0\" : replacement_version;\n if (!state.__version) return state;\n const state_version_obj = Utility.parseVersionString(state.__version);\n const target_version_obj = Utility.parseVersionString(replacement_version);\n if (state_version_obj.major === 1 && state_version_obj.minor === 14) {\n console.info(\"Upgrading old persist from \" + state.__version + \" to \" + replacement_version);\n let _json_str = JSON.stringify(state);\n _json_str = _json_str.split('\"' + state.__version).join('\"' + replacement_version);\n\n const ret_obj = JSON.parse(_json_str);\n if (ret_obj.__properties && ret_obj.__properties.content) {\n ret_obj.__properties.content.forEach(function (n) {// FOR EACH top tier layout_Cell\n if (JSON.stringify(n).split(\"graph_Graph\").length > 1 && target_version_obj.minor >= 16) {\n n.__properties.widget.__id = n.__properties.widget.__properties.widget.__id;\n n.__properties.widget.__class = \"composite_MegaChart\";\n n.__properties.widget.__properties.showCSV = false;\n n.__properties.widget.__properties.chartType = \"GRAPH\";\n n.__properties.widget.__properties.chart = n.__properties.widget.__properties.widget;\n delete n.__properties.widget.__properties.chart.__id;\n delete n.__properties.widget.__properties.widget;\n }\n if (\"undefined\" === typeof n.__properties.fields) {\n n.__properties.fields = [];\n }\n });\n }\n return ret_obj;\n } else {\n return state;\n }\n}\n\nexport function deserializeFromObject(widget, state) {\n const promises = [];\n Persist.widgetPropertyWalker(widget, null, (w, item) => {\n w[item.id + \"_reset\"]();\n if (state.__properties[item.id] !== undefined) {\n switch (item.type) {\n case \"widget\":\n const widgetKey = item.id;\n promises.push(create(state.__properties[item.id]).then((w2: any) => {\n w2._owner = w;\n w[widgetKey](w2);\n return w2;\n }));\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n const widgetArrayKey = item.id;\n const widgetStateArray = state.__properties[item.id];\n if (widgetStateArray.length) {\n const arrPromises = [];\n for (const widgetState of widgetStateArray) {\n arrPromises.push(create(widgetState).then((widgetItem: any) => {\n widgetItem._owner = w;\n return widgetItem;\n }));\n }\n promises.push(Promise.all(arrPromises).then(widgetArray => {\n w[widgetArrayKey](widgetArray);\n }));\n }\n break;\n default:\n w[item.id](state.__properties[item.id]);\n break;\n }\n }\n });\n return Promise.all(promises).then(widgets => {\n if (state.__data) {\n for (const key in state.__data) {\n if (state.__data.HasOwnProperty(key)) {\n switch (key) {\n case \"data\":\n widget.data(state.__data[key]);\n break;\n default:\n console.warn(\"Unexpected __data item: \" + key);\n widget[key](state.__data[key]);\n break;\n }\n }\n }\n }\n if (state.__state) {\n if (widget.deserializeState) {\n widget.deserializeState(state.__state);\n } else if (state.__state.data && widget.data) {\n widget.data(state.__state.data);\n }\n }\n return widget;\n });\n}\n\nexport function deserialize(widget, state) {\n if (typeof state === \"string\") {\n state = JSON.parse(state);\n }\n if (state.__id && state.__id.indexOf(widget._idSeed) !== 0 && widget._id !== state.__id) {\n console.warn(\"Deserialize: IDs do not match - \" + widget._id);\n }\n deserializeFromObject(widget, state);\n}\n\nexport function create(state: any): Promise<Widget> {\n if (typeof state === \"string\") {\n state = JSON.parse(state);\n }\n state = retrofit_114_serialization(state, Platform.version());\n return requireWidget(state.__class).then((WidgetClass: any) => {\n const widget = new WidgetClass();\n if (state.__id && state.__id.indexOf(widget._idSeed) !== 0 && state.__id.indexOf(\"_pe\") !== 0) {\n widget._id = state.__id;\n }\n return deserializeFromObject(widget, state);\n }).catch(function (e) {\n console.error(\"Persist.create: ***exception***\");\n console.error(e);\n });\n}\n\nexport function clone(widget) {\n create(Persist.serializeToObject(widget, undefined, true, true));\n}\n"],"names":["__defProp","__defNormalProp","__name","__publicField","_d","Utility","_i","d3Map","Legend","Button","a","d3Select","Persist"],"mappings":"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"}